Belgeleri Kaydetme ve Dışa Aktarma
Belgeleri Kaydetme ve Dışa Aktarma
Document.Save bir belgeyi hedef formatta bir dosyaya veya akışa yazar. Format ya bir dosya uzantısından çıkarılır, SaveFormat değeri olarak açıkça verilir ya da bir SaveOptions alt sınıfı — OoxmlSaveOptions, MarkdownSaveOptions veya TxtSaveOptions — tarafından format-özel kontrol için yönlendirilir. Bu kılavuz Save aşırı yüklemelerini, SaveFormat enumunu, OOXML kaydetme seçeneklerini, Markdown ve düz metin dışa aktarmayı ve dönüştürmeden önce bir formatın tespit edilmesini kapsar.
Document.Save ile Kaydetme
En basit çağrı, Document.Save(fileName), hedef formatı dosyanın uzantısından çıkarır. Save(fileName, saveFormat), uzantı ne olursa olsun formatı açıkça belirler ve Save(fileName, saveOptions) (veya eşleşen Stream aşırı yüklemeleri) format-özel ayarlar için bir SaveOptions alt sınıfını kabul eder. SaveOptions.CreateSaveOptions(saveFormat), verilen bir SaveFormat için varsayılanları zaten ayarlanmış doğru seçenekler alt sınıfını döndüren statik bir fabrikadır.
SaveFormat ile Bir Format Seçme
SaveFormat enumu, kütüphanenin tanıdığı her kaydetme-formatı tanımlayıcısını listeler. Document.Save, bu sürümün temel belge formatlarına — DOCX, DOCM, DOTX, DOTM ve Düz OPC (makro-etkin ve şablon varyantları dahil) — ayrıca Markdown ve düz metne tam olarak hem okur hem yazar. FileFormatUtil.SaveFormatToExtension(saveFormat) ve ExtensionToSaveFormat(extension), enum ile bir dosya uzantısı dizesi arasında dönüşüm yapar.
SaveFormat değerlerinden bazıları API bütünlüğü için enumda bulunur ancak bu sınırlı, açık kaynak sürümünün çalışır bir okuyucu veya yazar uygulamadığı formatlara karşılık gelir — bunlardan birine kaydetmeye çalışmak, kaynak belgeyle eşdeğer olmayan bir çıktı üretir. Güvenilir çift yönlü (round-tripping) işlem için yukarıda adlandırılan formatları kullanın.
OOXML Seçenekleri: DOCX, DOCM, DOTX, DOTM ve Flat OPC
OoxmlSaveOptions, Open XML formatlarından herhangi birine kaydetmeyi yapılandırır. SaveFormat özelliği, hangi belirli varyantın yazılacağını seçer; Password, kaydedilen dosyaya bir açma parolası ayarlar (Document.Protect‘ün düzenleme kısıtlamalarından bağımsız olarak); Compliance, OOXML katılık seviyesini seçer; ve CompressionLevel / Zip64Mode, temel ZIP paketlemesini kontrol eder. new OoxmlSaveOptions(saveFormat) ile ya da SaveOptions.CreateSaveOptions(saveFormat) aracılığıyla bir tane oluşturun.
Markdown’a Dışa Aktarma
MarkdownSaveOptions, bir Markdown dışa aktarımını kontrol eder: ListExportMode ve LinkExportMode, listelerin ve köprülerin nasıl oluşturulacağını yönetir, ImagesFolder / ImagesFolderAlias, çıkarılan görsellerin nereye yazılacağını ve nasıl referans verileceğini kontrol eder, ExportImagesAsBase64 onları satır içi gömer, ve TableContentAlignment, oluşturulan tablo işaretlemesini etkiler. Bir MarkdownSaveOptions örneğini Document.Save(fileName, saveOptions)‘e .md dosya adıyla iletin, ya da SaveFormat‘unu açıkça ayarlayın.
Düz Metne Dışa Aktarma
TxtSaveOptions (temel TxtSaveOptionsBase aracılığıyla, MarkdownSaveOptions ile paylaşılır) düz metin dışa aktarımını kontrol eder: Encoding karakter kodlamasını ayarlar, ParagraphBreak satır sonu dizgisini ayarlar, MaxCharactersPerLine uzun satırları kaydırır, SimplifyListLabels liste işaretlerini/sayılarını düz karakterlere normalleştirir, ve PreserveTableLayout tablo sütunlarını boşluklarla hizalı tutmaya çalışır.
Dönüştürmeden Önce Bir Biçim Tespit Etme
Biçimini henüz bilmediğiniz bir dosyayı dönüştürmeden önce, FileFormatUtil.DetectFileFormat(fileName) tespit edilen LoadFormat ile bir FileFormatInfo döndürür. FileFormatUtil.LoadFormatToSaveFormat(loadFormat) ile birleştirerek, Document.Save‘e girişmeden önce bu sürümün desteklediği biçimler arasında bir tur dönüşünün mümkün olup olmadığını belirleyin.
İpuçları ve En İyi Uygulamalar
- Biçim-özel davranışı, örneğin Markdown liste render’ı veya OOXML sıkıştırması gibi, kontrol etmeniz gerektiğinde, yalın
Save(fileName, saveFormat)aşırı yüklemesi yerineSave(fileName, saveOptions)kullanın. - Açık şifre korumalı bir dosya için
OoxmlSaveOptions.Passwordayarlayın; bu, düzenlemeyi kısıtlayan ancak dosyayı şifrelemeyenDocument.Protectöğesinden farklıdır. - Tek bir bütünleşik Markdown dosyası için
MarkdownSaveOptions.ExportImagesAsBase64seçin, ya da Markdown ile birlikte çıkarılmış resim dosyalarından oluşan bir klasör istediğinizdeImagesFolderseçin. - Hedef biçim çalışma zamanında belirlendiğinde, somut seçenek sınıfını manuel olarak seçmek yerine
SaveOptions.CreateSaveOptions(saveFormat)çağırın. - Dönüştürmeden önce hedef biçimi
FileFormatUtilile doğrulayın; yalnızca dosya uzantısına dayanmak yerine, çünkü uzantı yanlış veya yanıltıcı olabilir.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
Save(fileName) yanlış formatı seçiyor | Dosya uzantısı hedeflenen formatla eşleşmiyor | Formatı açıkça belirtmek için Save(fileName, saveFormat) veya Save(fileName, saveOptions) kullanın |
| Kaydedilen OOXML dosyası şifreyle açılamıyor | OoxmlSaveOptions.Password kaydetmeden önce ayarlanmamıştı | Bir OoxmlSaveOptions oluşturun, Password‘i ayarlayın ve Save‘ye iletin |
| Markdown dışa aktarımı görüntü dosyalarını beklenmedik biçimde dağıtır | Varsayılan MarkdownSaveOptions davranışı görüntüleri dosyalara çıkarır | ExportImagesAsBase64 = true‘ı tek bir bağımsız dosya için ayarlayın, ya da görüntülerin nereye gideceğini kontrol etmek için ImagesFolder‘ı ayarlayın |
| Düz metin dışa aktarımı tablo sütun hizalamasını kaybeder | TxtSaveOptions.PreserveTableLayout varsayılan ayarında bırakılmıştır | Kaydetmeden önce PreserveTableLayout = true ayarlayın. |
FAQ
Belgeyi dosya uzantısı ne olursa olsun belirli bir biçimde nasıl kaydederim?
Açık bir SaveFormat değeriyle Save(fileName, saveFormat)‘ı çağırın veya eşleşen bir SaveOptions alt sınıfı ile Save(fileName, saveOptions)‘yi kullanın.
Bu sürüm hangi formatları hem okuyup hem de yazabilir?
DOCX, DOCM, DOTX, DOTM, Düz OPC (makro etkin ve şablon varyantları dahil), Markdown ve düz metin.
Kaydedilen bir dosyayı şifreyle nasıl korurum?
Password‘ı bir OoxmlSaveOptions örneğine ayarlayın ve Document.Save(fileName, saveOptions)‘ye geçirin.
Dışa aktarılan bir metin dosyasında satır sonlarını nasıl kontrol ederim?
Kaydetmeden önce bir TxtSaveOptions örneğine ParagraphBreak‘ı ayarlayın.
Bir dosyanın formatını dönüştürmeden önce nasıl kontrol edebilirim?
FileFormatUtil.DetectFileFormat(fileName)‘ı çağırın ve dönen FileFormatInfo.LoadFormat‘i okuyun.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
Document.Save | Belgeyi seçilen bir formatta dosyaya, akışa veya çıktı hedefine yazar. |
SaveFormat | Kaydetme işlemi için hedef formatı tanımlayan enum. |
SaveOptions | Biçim-özelinde kaydetme yapılandırması için soyut temel sınıf; CreateSaveOptions(saveFormat) eşleşen alt sınıfı döndürür. |
OoxmlSaveOptions | DOCX, DOCM, DOTX, DOTM ve Flat OPC için seçenekler — parola, uyumluluk, sıkıştırma. |
MarkdownSaveOptions | Markdown dışa aktarma seçenekleri — liste/bağlantı işleme, görsel işleme. |
TxtSaveOptions / TxtSaveOptionsBase | Düz metin dışa aktarma seçenekleri — kodlama, satır sonları, tablo düzeni. |
FileFormatUtil.DetectFileFormat | Bir dosyanın formatını, yüklemeden veya dönüştürmeden önce algılar. |
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormat | Bir SaveFormat değeri ile dosya uzantısı arasında dönüştürür. |