Cara Bekerja dengan Dokumen di .NET

Cara Bekerja dengan Dokumen di .NET

Panduan ini menunjukkan cara bekerja dengan model objek Document di Aspose.Words FOSS untuk .NET: membuat dokumen kosong, memuat dokumen yang sudah ada secara aman, menelusuri struktur bagian/tubuhnya, menggabungkan dokumen, dan menerapkan pembatasan penyuntingan. Aspose.Words FOSS untuk .NET tersedia melalui NuGet atau dengan membangun dari sumber.

Panduan Langkah demi Langkah

Langkah 1: Dapatkan Perpustakaan

Klon repositori dan bangun Aspose.Words.sln dalam konfigurasi Release, lalu tambahkan referensi proyek ke Aspose.Words.csproj dari proyek .NET Anda sendiri. Perintah clone dan build lengkap ada di panduan Instalasi. Setelah direferensikan, tambahkan using Aspose.Words; di bagian atas setiap file yang bekerja dengan dokumen.


Langkah 2: Buat atau Muat Dokumen

Panggil new Document() untuk dokumen kosong, atau berikan jalur file atau Stream ke konstruktor Document(fileName) / Document(stream) untuk membuka yang sudah ada. Sebuah overload yang menerima argumen LoadOptions memungkinkan Anda memberikan kata sandi untuk file terenkripsi. Sebelum memuat file yang formatnya belum Anda percayai, panggil FileFormatUtil.DetectFileFormat(fileName) — ia mengembalikan FileFormatInfo yang melaporkan LoadFormat yang terdeteksi dan apakah file tersebut IsEncrypted, HasDigitalSignature, atau HasMacros, sehingga Anda dapat menolak masukan yang tidak diharapkan sebelum Document mencoba menguraikannya.


Langkah 3: Menulis Konten dengan DocumentBuilder

DocumentBuilder membungkus sebuah Document dengan kursor yang Anda gerakkan melalui pohon sambil menyisipkan konten. Write(text) dan Writeln(text) menyisipkan teks pada kursor, dan InsertParagraph() memulai paragraf baru. Pemformatan yang diatur pada properti Font, ParagraphFormat, ListFormat, dan PageSetup builder diterapkan pada apa pun yang Anda tulis selanjutnya. Pindahkan kembali kursor dengan MoveToDocumentStart(), MoveToDocumentEnd(), MoveToSection(sectionIndex), MoveToBookmark(bookmarkName), atau MoveToParagraph(paragraphIndex, characterIndex), dan baca CurrentNode / CurrentParagraph / CurrentSection untuk mengonfirmasi di mana builder berada.


Langkah 4: Memeriksa Struktur Bagian dan Isi

Sebuah Document memperlihatkan sebuah SectionCollection melalui Document.Sections (plus FirstSection / LastSection). Setiap Section memiliki tepat satu Body, yang konten utamanya dapat diakses melalui Body.Paragraphs (sebuah ParagraphCollection) dan Body.Tables. Untuk membaca atau mencari teks tanpa menelusuri node secara manual, gunakan Range yang tersedia pada Document, Section, Paragraph, dan node lainnya — Range.Text mengembalikan teks polosnya, dan Range.Replace(pattern, replacement) melakukan temukan-dan-ganti yang dibatasi hanya pada rentang tersebut.


Langkah 5: Menggabungkan Dua Dokumen

Untuk menyalin seluruh dokumen, panggil Document.Clone(). Untuk membawa konten spesifik dari satu instance Document ke yang lain, panggil ImportNode(srcNode, isImportChildren) pada dokumen tujuan, atau panggil Document.AppendDocument(srcDoc, importFormatMode) untuk menambahkan setiap bagian dari dokumen sumber ke akhir dokumen saat ini. DocumentBuilder.InsertDocument(srcDoc, importFormatMode) melakukan hal yang sama tetapi menyisipkan pada kursor builder bukan di akhir. Dalam ketiga kasus, pilih nilai ImportFormatMode — KeepSourceFormatting, UseDestinationStyles, atau KeepDifferentStyles — dengan sengaja, karena nilai tersebut menentukan gaya dokumen mana yang menang ketika keduanya bertabrakan.


Langkah 6: Menerapkan Pembatasan Penyuntingan

Panggil Document.Protect(type, password) dengan nilai ProtectionType — ReadOnly, AllowOnlyComments, AllowOnlyRevisions, atau AllowOnlyFormFields — untuk membatasi penyuntingan mana yang diterima Word untuk dokumen tersebut. Unprotect() (dengan atau tanpa kata sandi yang cocok) menghapus pembatasan. Ini hanya memengaruhi penyuntingan di dalam Word; tidak mengenkripsi file yang disimpan. Untuk memerlukan kata sandi hanya saat membuka file, atur OoxmlSaveOptions.Password saat Anda menyimpan.

Masalah Umum dan Solusinya

Document(fileName) melempar pengecualian untuk file yang dapat dibuka dengan baik di Word. Format file tidak didukung oleh pemuat edisi ini. Panggil FileFormatUtil.DetectFileFormat(fileName) pertama dan periksa yang dikembalikan LoadFormat sebelum mencoba memuat.

Konten yang disalin antar dokumen mengambil font atau gaya yang salah. The ImportFormatMode dikirim ke AppendDocument or InsertDocument tidak cocok dengan yang Anda harapkan. Berikan KeepSourceFormatting or UseDestinationStyles secara eksplisit daripada mengandalkan nilai default.

Unprotect() tampaknya tidak berpengaruh. Entah dokumen tidak dilindungi dengan kata sandi (panggil Unprotect() tanpa argumen), atau kata sandi yang diberikan tidak cocok dengan yang Protect() dipanggil dengan.

Pemformatan diterapkan melalui DocumentBuilder tidak muncul di tempat yang diharapkan. Pemformatan tingkat Builder (Font, ParagraphFormat) hanya berlaku untuk konten yang ditulis after itu diatur. Pindahkan kursor dan atur pemformatan sebelum memanggil Write/Writeln, bukan setelah.

Pertanyaan yang Sering Diajukan

Bagaimana cara membuat dokumen Word baru yang kosong?

Panggil new Document(). Bungkus dengan DocumentBuilder untuk mulai menyisipkan konten segera.

Apa perbedaan antara Document.Clone() dan ImportNode?

Clone() menyalin seluruh dokumen ke dalam instance Document baru. ImportNode(srcNode, isImportChildren) membawa satu node — dan secara opsional anak-anaknya — dari pohon satu dokumen ke dokumen lain, yang merupakan cara Anda menggabungkan konten tertentu daripada seluruh dokumen.

Bagaimana cara memeriksa format file dengan aman sebelum memuatnya?

Panggil FileFormatUtil.DetectFileFormat(fileName) (atau overload Stream) dan periksa properti LoadFormat, IsEncrypted, HasDigitalSignature, dan HasMacros dari FileFormatInfo yang dikembalikan sebelum menyerahkan file ke Document.

Bagaimana cara membaca hanya paragraf di dalam badan dokumen?

Gunakan koleksi Body.Paragraphs pada Body bagian, atau Body.GetChildNodes(nodeType, isDeep) untuk tipe node lainnya.

Apakah Document.Protect mengenkripsi file yang disimpan?

Tidak — itu adalah pembatasan pengeditan yang diterapkan Word saat file dibuka. Untuk memerlukan kata sandi agar dapat membuka file itu sendiri, atur OoxmlSaveOptions.Password saat memanggil Document.Save.

Lihat Juga

 Bahasa Indonesia