Разделяне на документ

Splitting или * Разделяне на документ* е процес на разбиване на голям документ в по-голям брой по-малки файлове. Има различни причини да се раздели файл. Например, трябват ви само няколко страници от конкретен документ, а не цялата. Или поради лични причини, искате да споделите само някои части от документ с други. С разделителната функция можете да получите само необходимите части от документа и да направите необходимите действия с тях, например, за да маркирате, запишете или изпратите.

Aspose.Words осигурява ефективен начин за разделяне на един документ на няколко документа по заглавия или раздели. Можете също така да разделите документ по страници или по страници. И двете опции за разделяне ще бъдат описани в тази статия.

Разделяне на документ на по-малки файлове Aspose.Words, трябва да следвате следните стъпки:

  1. Зареждане на документа във всеки поддържан формат.
  2. Разделете документа.
  3. Запис на изходните документи.

След като разделите документ, ще можете да отворите всички изходни документи, които ще започнат с необходимите страници, текст и т.н.

Разделяне на документ с помощта на различни критерии

Aspose.Words ви позволява да разделите EPUB или HTML документи на глави според различни критерии. В процеса стилът и оформлението на изходния документ са запазени за изходните документи.

Можете да посочите критерии с помощта на DocumentSplitCriteria Изброяване. Така че можете да разделите документ на глави, използвайки един от следните критерии или да комбинирате повече от един критерий:

  • заглавие параграф,
  • прекъсване на секцията,
  • прекъсване на колоната,
  • пауза на страницата.

При запис на изхода към HTML, Aspose.Words запишете всяка отделна глава като отделен HTML файл. В резултат на това документът ще бъде разделен на множество HTML файлове. При запазване на изхода към EPUB, Aspose.Words Запис на резултата в един EPUB файл независимо от DocumentSplitCriteria стойност сте използвали. Така че, използване DocumentSplitCriteria за документи на EPUB засяга само появата на тяхното съдържание в приложения за четене: съдържанието ще бъде разделено на глави и документът вече няма да се появява непрекъснато.

В този раздел разглеждаме само някои от възможните критерии за разделяне.

Разделяне на документ по заглавия

За да се раздели документ на глави по заглавия, използвайте HEADING_PARAGRAPH стойност на document_split_criteria собственост.

Ако е необходимо да разделите документ на определено ниво на заглавия, като позиции 1, 2 и 3, използвайте също document_split_heading_level собственост. Изходът ще бъде разделен на параграфи, форматирани с посоченото ниво на заглавие.

Следният пример за код показва как да се раздели документ на по-малки части по заглавие:

# 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)

Моля, имайте предвид, че за тези критерии, Aspose.Words Поддържа запис в HTML формат при разделяне.

При запис в EPUB документът не се разделя на няколко файла и ще има само един изходен файл.

Разделяне на документ по раздели

Aspose.Words също така ви позволява да използвате раздел прекъсвания, за да разделите документи и да ги запазите в HTML. За тази цел използвайте SECTION_BREAK като 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

Има и друг начин за разделяне на изходния документ на множество изходни документи и можете да изберете всеки формат на изхода, поддържан от Aspose.Words.

Следният пример за код показва как да се раздели документ на по-малки части по раздели прекъсвания (без използване на 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")

Разделяне по страници

Можете също така да разделите страница на документ по страница, по интервали от страници или да започнете с посочените номера на страници. В такъв случай extract_pages методът може да свърши работа.

Този раздел описва няколко случаи на използване на разделяне на документи чрез paged използване на Document клас и extract_pages метод.

Разделяне на страница от документа по страница

Aspose.Words ви позволява да разделите страница по страница с много страници.

Следният пример за код показва как да се раздели документ и да се запази всяка страница като отделен документ:

# 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")

Разделяне на документ по интервали на страницата

Aspose.Words позволява разделяне на много страници документ по интервали от страници. Можете да разделите един файл на няколко файла с различни интервали от страници или просто да изберете един диапазон и да запишете само тази част от изходния документ. Имайте предвид, че можете да изберете обхвата на страницата според максималния и минимален номер на страницата на документа.

Следният пример за код показва как да се раздели документ на по-малки части по диапазон на страниците със специфични начални и крайни индекси:

# 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")

Сливане на разделения документ с друг файл

Aspose.Words ви позволява да слеете изходния разделен документ с друг документ, за да формирате нов документ. Това може да се нарече сливане на документи.

Следният пример за код показва как да се слее разделен документ с друг документ:

# 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")