Menyimpan dan Mengekspor Dokumen

Menyimpan dan Mengekspor Dokumen

Menyimpan dan Mengekspor Dokumen

Document.Save menulis dokumen ke file atau aliran dalam format target. Format tersebut dapat diperkirakan dari ekstensi file, diberikan secara eksplisit sebagai nilai SaveFormat, atau dipengaruhi oleh subclass SaveOptions — OoxmlSaveOptions, MarkdownSaveOptions, atau TxtSaveOptions — untuk kontrol khusus format. Panduan ini mencakup overload Save, enum SaveFormat, opsi penyimpanan OOXML, ekspor Markdown dan teks biasa, serta mendeteksi format sebelum mengkonversi.


Menyimpan dengan Document.Save

Pemanggilan paling sederhana, Document.Save(fileName), memperkirakan format target dari ekstensi file. Save(fileName, saveFormat) menjadikan format eksplisit terlepas dari ekstensi, dan Save(fileName, saveOptions) (atau overload Stream yang cocok) menerima subclass SaveOptions untuk pengaturan khusus format. SaveOptions.CreateSaveOptions(saveFormat) adalah pabrik statis yang mengembalikan subclass opsi yang tepat untuk SaveFormat tertentu dengan nilai defaultnya sudah disetel.


Memilih Format dengan SaveFormat

Enum SaveFormat mencantumkan setiap pengidentifikasi format penyimpanan yang dikenali oleh perpustakaan. Document.Save menulis sepenuhnya baik ke maupun dari format dokumen inti edisi ini — DOCX, DOCM, DOTX, DOTM, dan Flat OPC (beserta varian makro-aktif dan templatnya) — serta Markdown dan teks biasa. FileFormatUtil.SaveFormatToExtension(saveFormat) dan ExtensionToSaveFormat(extension) mengonversi antara enum dan string ekstensi file.

Beberapa nilai SaveFormat ada dalam enum untuk melengkapi API tetapi berhubungan dengan format yang tidak diimplementasikan pembaca atau penulis yang berfungsi pada edisi terbatas, open-source ini — mencoba menyimpan ke salah satu format tersebut menghasilkan output yang tidak setara dengan dokumen sumber. Tetap gunakan format yang disebutkan di atas untuk proses round-tripping yang dapat diandalkan.


Opsi OOXML: DOCX, DOCM, DOTX, DOTM, dan Flat OPC

OoxmlSaveOptions mengonfigurasi penyimpanan ke salah satu format Open XML. Properti SaveFormat-nya memilih varian spesifik yang akan ditulis; Password menetapkan kata sandi terbuka pada file yang disimpan (terlepas dari pembatasan penyuntingan Document.Protect); Compliance memilih tingkat ketatnya OOXML; dan CompressionLevel / Zip64Mode mengendalikan pengemasan ZIP yang mendasarinya. Buat satu dengan new OoxmlSaveOptions(saveFormat) atau melalui SaveOptions.CreateSaveOptions(saveFormat).


Mengekspor ke Markdown

MarkdownSaveOptions mengontrol ekspor Markdown: ListExportMode dan LinkExportMode mengatur bagaimana daftar dan tautan hiperteks dirender, ImagesFolder / ImagesFolderAlias mengendalikan tempat gambar yang diekstrak ditulis dan bagaimana mereka direferensikan, ExportImagesAsBase64 menyematkannya secara inline sebagai gantinya, dan TableContentAlignment memengaruhi markup tabel yang dihasilkan. Berikan sebuah instance MarkdownSaveOptions ke Document.Save(fileName, saveOptions) dengan nama file .md, atau atur SaveFormatnya secara eksplisit.


Mengekspor ke Teks Biasa

TxtSaveOptions (melalui TxtSaveOptionsBase dasarnya, yang dibagi dengan MarkdownSaveOptions) mengontrol ekspor teks biasa: Encoding menetapkan pengkodean karakter, ParagraphBreak menetapkan string akhir baris, MaxCharactersPerLine membungkus baris panjang, SimplifyListLabels menormalkan peluru/nomor daftar menjadi karakter polos, dan PreserveTableLayout berusaha menjaga kolom tabel tetap rata menggunakan spasi.


Mendeteksi Format Sebelum Mengkonversi

Sebelum mengkonversi file yang formatnya belum Anda ketahui, FileFormatUtil.DetectFileFormat(fileName) mengembalikan FileFormatInfo dengan LoadFormat yang terdeteksi. Gabungkan ini dengan FileFormatUtil.LoadFormatToSaveFormat(loadFormat) untuk memutuskan apakah perjalanan bolak-balik melalui format yang didukung edisi ini memungkinkan sebelum mencoba Document.Save.


Tips dan Praktik Terbaik

  • Gunakan Save(fileName, saveOptions) alih-alih overload Save(fileName, saveFormat) biasa setiap kali Anda perlu mengontrol perilaku spesifik format seperti rendering daftar Markdown atau kompresi OOXML.
  • Setel OoxmlSaveOptions.Password untuk file yang dilindungi kata sandi terbuka; itu terpisah dari Document.Protect, yang membatasi penyuntingan tetapi tidak mengenkripsi file.
  • Pilih MarkdownSaveOptions.ExportImagesAsBase64 untuk satu file Markdown yang berdiri sendiri, atau ImagesFolder ketika Anda menginginkan folder berisi file gambar yang diekstrak bersamaan dengan Markdown.
  • Panggil SaveOptions.CreateSaveOptions(saveFormat) alih-alih memilih kelas opsi konkret secara manual ketika format target ditentukan pada waktu berjalan.
  • Verifikasi format target dengan FileFormatUtil sebelum konversi daripada mengandalkan ekstensi file saja, yang dapat salah atau menyesatkan.

Masalah Umum

MasalahPenyebabPerbaikan
Save(fileName) memilih format yang salahEkstensi file tidak cocok dengan format yang dimaksudGunakan Save(fileName, saveFormat) atau Save(fileName, saveOptions) untuk membuat format menjadi eksplisit
File OOXML yang disimpan tidak dapat dibuka dengan kata sandiOoxmlSaveOptions.Password tidak disetel sebelum menyimpanBuat sebuah OoxmlSaveOptions, atur Password, dan berikan ke Save
Ekspor Markdown menyebarkan file gambar secara tak terdugaPerilaku default MarkdownSaveOptions mengekstrak gambar ke fileAtur ExportImagesAsBase64 = true untuk satu file mandiri, atau atur ImagesFolder untuk mengontrol ke mana gambar ditempatkan
Ekspor teks biasa kehilangan penyelarasan kolom tabelTxtSaveOptions.PreserveTableLayout dibiarkan pada nilai defaultnyaSetel PreserveTableLayout = true sebelum menyimpan

FAQ

Bagaimana cara menyimpan dokumen ke format tertentu terlepas dari ekstensi file-nya?

Panggil Save(fileName, saveFormat) dengan nilai SaveFormat yang eksplisit, atau Save(fileName, saveOptions) dengan subclass SaveOptions yang cocok.

Format apa yang dapat dibaca dan ditulis oleh edisi ini secara dua arah?

DOCX, DOCM, DOTX, DOTM, Flat OPC (beserta varian makro-aktif dan templatnya), Markdown, dan teks biasa.

Bagaimana cara melindungi file yang disimpan dengan password?

Setel Password pada instance OoxmlSaveOptions dan berikan ke Document.Save(fileName, saveOptions).

Bagaimana cara mengontrol akhir baris dalam file teks yang diekspor?

Setel ParagraphBreak pada instance TxtSaveOptions sebelum menyimpan.

Bagaimana cara saya memeriksa format sebuah file sebelum mengonversinya?

Panggil FileFormatUtil.DetectFileFormat(fileName) dan baca FileFormatInfo.LoadFormat yang dikembalikan.


API Reference Ringkasan

Kelas/MetodeDeskripsi
Document.SaveMenulis dokumen ke file, stream, atau target output dalam format yang dipilih.
SaveFormatEnum yang mengidentifikasi format target untuk operasi penyimpanan.
SaveOptionsKelas dasar abstrak untuk konfigurasi penyimpanan khusus format; CreateSaveOptions(saveFormat) mengembalikan subclass yang cocok.
OoxmlSaveOptionsOpsi untuk DOCX, DOCM, DOTX, DOTM, dan Flat OPC — kata sandi, kepatuhan, kompresi.
MarkdownSaveOptionsOpsi untuk ekspor Markdown — perenderan daftar/tautan, penanganan gambar.
TxtSaveOptions / TxtSaveOptionsBaseOpsi untuk ekspor teks biasa — pengkodean, jeda baris, tata letak tabel.
FileFormatUtil.DetectFileFormatMendeteksi format file sebelum memuat atau mengkonversinya.
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormatMengonversi antara nilai SaveFormat dan ekstensi file.

Lihat Juga

 Bahasa Indonesia