Pisahkan Dokumen

Splitting atau membagi dokumen adalah proses memecah dokumen besar menjadi beberapa file kecil. Ada berbagai alasan untuk membagi file. Misalnya, Anda hanya memerlukan beberapa halaman dari dokumen tertentu dan tidak keseluruhannya. Atau karena alasan privasi, Anda hanya ingin berbagi beberapa bagian dokumen dengan orang lain. Dengan fitur pemisahan, Anda hanya bisa mendapatkan bagian dokumen yang diperlukan dan melakukan tindakan yang diperlukan dengannya, misalnya, menandai, menyimpan, atau mengirim.

Aspose.Words memberi Anda cara efisien untuk membagi satu dokumen menjadi beberapa dokumen berdasarkan judul atau bagian. Anda juga dapat membagi dokumen berdasarkan halaman atau rentang halaman. Kedua opsi pemisahan akan dijelaskan dalam artikel ini.

Untuk membagi dokumen menjadi file yang lebih kecil menggunakan Aspose.Words, Anda perlu mengikuti langkah-langkah berikut:

  1. Muat dokumen dalam format apa pun yang didukung.
  2. Pisahkan dokumen.
  3. Simpan dokumen keluaran.

Setelah Anda membagi dokumen, Anda akan dapat membuka semua dokumen keluaran yang dimulai dengan halaman, teks, dll yang diperlukan.

Pisahkan Dokumen Menggunakan {#split-a-document-using-different-criteria} Kriteria Berbeda

Aspose.Words memungkinkan Anda membagi dokumen EPUB atau HTML menjadi beberapa bab sesuai dengan berbagai kriteria. Dalam prosesnya, gaya dan tata letak dokumen sumber dipertahankan untuk dokumen keluaran.

Anda dapat menentukan kriteria menggunakan enumerasi DocumentSplitCriteria. Jadi, Anda dapat membagi dokumen menjadi beberapa bab menggunakan salah satu kriteria berikut atau menggabungkan lebih dari satu kriteria menjadi satu:

  • judul paragraf,
  • bagian istirahat,
  • istirahat kolom,
  • jeda halaman.

Saat menyimpan output ke HTML, Aspose.Words menyimpan setiap bab sebagai file HTML terpisah. Akibatnya, dokumen tersebut akan dipecah menjadi beberapa file HTML. Saat menyimpan keluaran ke EPUB, Aspose.Words menyimpan hasilnya dalam satu file EPUB terlepas dari nilai DocumentSplitCriteria yang Anda gunakan. Jadi, penggunaan DocumentSplitCriteria untuk dokumen EPUB hanya memengaruhi tampilan kontennya di aplikasi pembaca: konten akan dibagi menjadi beberapa bab dan dokumen tidak lagi tampak bersambung.

Pada bagian ini, kami hanya mempertimbangkan beberapa kemungkinan kriteria pemisahan.

Pisahkan Dokumen berdasarkan Judul

Untuk membagi dokumen menjadi beberapa bab berdasarkan judul, gunakan nilai HEADING_PARAGRAPH dari properti document_split_criteria.

Jika Anda perlu membagi dokumen berdasarkan tingkat paragraf judul tertentu, seperti judul 1, 2, dan 3, gunakan juga properti document_split_heading_level. Outputnya akan dibagi berdasarkan paragraf yang diformat dengan level heading yang ditentukan.

Contoh kode berikut menunjukkan cara membagi dokumen menjadi bagian-bagian yang lebih kecil dengan judul:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Rendering.docx")
options = aw.saving.HtmlSaveOptions()
# Split a document into smaller parts, in this instance split by heading.
options.document_split_criteria = aw.saving.DocumentSplitCriteria.HEADING_PARAGRAPH
doc.save(docs_base.artifacts_dir + "SplitDocument.by_headings_html.html", options)

Perlu diketahui bahwa untuk kriteria ini, Aspose.Words hanya mendukung penyimpanan ke format HTML saat dipecah.

Saat menyimpan ke EPUB, dokumen tidak dipecah menjadi beberapa file, dan hanya akan ada satu file keluaran.

Pisahkan Dokumen berdasarkan Bagian

Aspose.Words juga memungkinkan Anda menggunakan hentian bagian untuk memisahkan dokumen dan menyimpannya ke HTML. Untuk tujuan ini, gunakan SECTION_BREAK sebagai document_split_criteria:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
options = aw.saving.HtmlSaveOptions()
options.document_split_criteria = aw.saving.DocumentSplitCriteria.SECTION_BREAK

Ada cara lain untuk membagi dokumen sumber menjadi beberapa dokumen keluaran, dan Anda dapat memilih format keluaran apa pun yang didukung oleh Aspose.Words.

Contoh kode berikut menunjukkan cara membagi dokumen menjadi bagian-bagian yang lebih kecil berdasarkan hentian bagian (tanpa menggunakan properti document_split_criteria):

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Big document.docx")
for i in range(0, doc.sections.count) :
# Split a document into smaller parts, in this instance, split by section.
section = doc.sections[i].clone()
newDoc = aw.Document()
newDoc.sections.clear()
newSection = newDoc.import_node(section, True).as_section()
newDoc.sections.add(newSection)
# Save each section as a separate document.
newDoc.save(docs_base.artifacts_dir + f"SplitDocument.by_sections_{i}.docx")

Memisahkan berdasarkan Halaman

Anda juga dapat membagi dokumen halaman demi halaman, berdasarkan rentang halaman, atau dimulai dengan nomor halaman yang ditentukan. Dalam hal ini metode extract_pages dapat melakukan pekerjaan tersebut.

Bagian ini menjelaskan beberapa kasus penggunaan pembagian dokumen berdasarkan halaman menggunakan kelas Document dan metode extract_pages.

Pisahkan Halaman Dokumen demi Halaman

Aspose.Words memungkinkan Anda membagi dokumen multi-halaman halaman demi halaman.

Contoh kode berikut menunjukkan cara membagi dokumen dan menyimpan setiap halaman sebagai dokumen terpisah:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Big document.docx")
pageCount = doc.page_count
for page in range(0, pageCount) :
# Save each page as a separate document.
extractedPage = doc.extract_pages(page, 1)
extractedPage.save(docs_base.artifacts_dir + f"SplitDocument.page_by_page_{page + 1}.docx")

Pisahkan Dokumen berdasarkan Rentang Halaman

Aspose.Words memungkinkan pemisahan dokumen multi-halaman berdasarkan rentang halaman. Anda dapat membagi satu file menjadi beberapa file dengan rentang halaman yang berbeda, atau cukup pilih satu rentang dan simpan hanya bagian ini dari dokumen sumber. Perhatikan bahwa Anda dapat memilih rentang halaman berdasarkan nomor halaman maksimum dan minimum suatu dokumen.

Contoh kode berikut menunjukkan cara membagi dokumen menjadi bagian-bagian yang lebih kecil berdasarkan rentang halaman dengan indeks awal dan akhir yang spesifik:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Big document.docx")
# Get part of the document.
extractedPages = doc.extract_pages(3, 6)
extractedPages.save(docs_base.artifacts_dir + "SplitDocument.by_page_range.docx")

Gabungkan Dokumen Terpisah dengan File {#merge-the-split-document-with-another-file} Lain

Aspose.Words memungkinkan Anda menggabungkan dokumen pemisahan keluaran dengan dokumen lain untuk membentuk dokumen baru. Ini bisa disebut penggabungan dokumen.

Contoh kode berikut menunjukkan cara menggabungkan dokumen terpisah dengan dokumen lain:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
@staticmethod
def merge_documents() :
# Find documents using for merge.
documentPaths = [f for f in os.listdir(docs_base.artifacts_dir) if (os.path.isfile(os.path.join(docs_base.artifacts_dir, f)) and f.find("SplitDocument.page_by_page_") >= 0)]
sourceDocumentPath = os.path.join(docs_base.artifacts_dir, documentPaths[0])
# Open the first part of the resulting document.
sourceDoc = aw.Document(sourceDocumentPath)
# Create a new resulting document.
mergedDoc = aw.Document()
mergedDocBuilder = aw.DocumentBuilder(mergedDoc)
# Merge document parts one by one.
for documentPath in documentPaths :
documentPath = os.path.join(docs_base.artifacts_dir, documentPath)
if (documentPath == sourceDocumentPath) :
continue
mergedDocBuilder.move_to_document_end()
mergedDocBuilder.insert_document(sourceDoc, aw.ImportFormatMode.KEEP_SOURCE_FORMATTING)
sourceDoc = aw.Document(documentPath)
mergedDoc.save(docs_base.artifacts_dir + "SplitDocument.merge_documents.docx")