Teilen eines Dokuments

Splitting oder split a document ist der Vorgang, bei dem ein großes Dokument in eine größere Anzahl kleinerer Dateien aufgeteilt wird. Es gibt verschiedene Gründe, eine Datei zu teilen. Beispielsweise benötigen Sie nur einige Seiten aus einem bestimmten Dokument und nicht die gesamte. Oder Sie möchten aus Datenschutzgründen nur einige Teile eines Dokuments für andere freigeben. Mit der Aufteilungsfunktion können Sie nur die erforderlichen Teile des Dokuments abrufen und die erforderlichen Aktionen damit ausführen, z. B. zum Markieren, Speichern oder Senden.

Aspose.Words bietet Ihnen eine effiziente Möglichkeit, ein Dokument nach Überschriften oder Abschnitten in mehrere Dokumente aufzuteilen. Sie können ein Dokument auch nach Seiten oder Seitenbereichen aufteilen. Beide Aufteilungsoptionen werden in diesem Artikel beschrieben.

Um ein Dokument mit Aspose.Words in kleinere Dateien aufzuteilen, müssen Sie die folgenden Schritte ausführen:

  1. Laden Sie das Dokument in einem beliebigen unterstützten Format.
  2. Teilen Sie das Dokument.
  3. Speichern Sie die Ausgabedokumente.

Nachdem Sie ein Dokument geteilt haben, können Sie alle Ausgabedokumente öffnen, die mit den erforderlichen Seiten, Texten usw. beginnen.

Dokument nach verschiedenen Kriterien aufteilen

Mit Aspose.Words können Sie EPUB- oder HTML-Dokumente nach verschiedenen Kriterien in Kapitel aufteilen. Dabei bleiben Stil und Layout des Quelldokuments für die Ausgabedokumente erhalten.

Sie können Kriterien mit der DocumentSplitCriteria-Aufzählung angeben. So können Sie ein Dokument anhand eines der folgenden Kriterien in Kapitel unterteilen oder mehrere Kriterien miteinander kombinieren:

  • überschrift absatz,
  • Abschnittsumbruch,
  • spaltenumbruch,
  • Seitenumbruch.

Wenn Sie die Ausgabe in HTML speichern, speichern Aspose.Words jedes einzelne Kapitel als separate HTML-Datei. Infolgedessen wird das Dokument in mehrere HTML -Dateien aufgeteilt. Wenn Sie die Ausgabe in EPUB speichern, speichert Aspose.Words das Ergebnis in einer einzelnen EPUB-Datei, unabhängig vom verwendeten DocumentSplitCriteria-Wert. Die Verwendung von DocumentSplitCriteria für EPUB Dokumente wirkt sich also nur auf das Erscheinungsbild ihres Inhalts in Reader-Anwendungen aus: Der Inhalt wird in Kapitel unterteilt und das Dokument wird nicht mehr fortlaufend angezeigt.

In diesem Abschnitt betrachten wir nur einige der möglichen Split-Kriterien.

Dokument nach Überschriften aufteilen

Um ein Dokument nach Überschriften in Kapitel aufzuteilen, verwenden Sie den Wert HeadingParagraph der Eigenschaft DocumentSplitCriteria.

Wenn Sie ein Dokument nach einer bestimmten Ebene von Überschriftenabsätzen aufteilen müssen, z. B. Überschriften 1, 2 und 3, verwenden Sie auch die Eigenschaft DocumentSplitHeadingLevel. Die Ausgabe wird durch Absätze unterteilt, die mit der angegebenen Überschriftenebene formatiert sind.

Das folgende Codebeispiel zeigt, wie Sie ein Dokument nach Überschrift in kleinere Teile aufteilen:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open a Word document
Document doc = new Document(dataDir + "Test File (doc).docx");
HtmlSaveOptions options = new HtmlSaveOptions();
// Split a document into smaller parts, in this instance split by heading
options.setDocumentSplitCriteria(DocumentSplitCriteria.HEADING_PARAGRAPH);
// Save the output file
doc.save(dataDir + "SplitDocumentByHeadings_out.html", options);

Bitte beachten Sie, dass Aspose.Words für dieses Kriterium beim Teilen nur das Speichern im HTML-Format unterstützt.

Beim Speichern in EPUB wird das Dokument nicht in mehrere Dateien aufgeteilt und es gibt nur eine Ausgabedatei.

Dokument nach Abschnitten aufteilen

Mit Aspose.Words können Sie auch Abschnittsumbrüche verwenden, um Dokumente zu teilen und in HTML zu speichern. Verwenden Sie zu diesem Zweck SectionBreak als DocumentSplitCriteria:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open a Word document
Document doc = new Document(dataDir + "Test File (doc).docx");
HtmlSaveOptions options = new HtmlSaveOptions();
// Split a document into smaller parts, in this instance split by heading
options.setDocumentSplitCriteria(DocumentSplitCriteria.SECTION_BREAK);
// Save the output file
doc.save(dataDir + "SplitDocumentByHeadings_out.html", options);

Es gibt eine andere Möglichkeit, das Quelldokument in mehrere Ausgabedokumente aufzuteilen, und Sie können ein beliebiges von Aspose.Words unterstütztes Ausgabeformat auswählen.

Das folgende Codebeispiel zeigt, wie Sie ein Dokument nach Abschnittsumbrüchen in kleinere Teile aufteilen (ohne die Eigenschaft DocumentSplitCriteria zu verwenden):

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open a Word document
Document doc = new Document(dataDir + "TestFile (Split).docx");
for (int i = 0; i < doc.getSections().getCount(); i++)
{
// Split a document into smaller parts, in this instance split by section
Section section = doc.getSections().get(i).deepClone();
Document newDoc = new Document();
newDoc.getSections().clear();
Section newSection = (Section) newDoc.importNode(section, true);
newDoc.getSections().add(newSection);
// Save each section as a separate document
newDoc.save(dataDir + "SplitDocumentBySectionsOut_" + i + ".docx");
}

Nach Seiten aufteilen

Sie können ein Dokument auch seitenweise, nach Seitenbereichen oder beginnend mit den angegebenen Seitenzahlen aufteilen. In diesem Fall kann die ExtractPages -Methode die Aufgabe übernehmen.

In diesem Abschnitt werden verschiedene Anwendungsfälle zum Aufteilen von Dokumenten nach Seiten mit der Klasse Document und der Methode ExtractPages beschrieben.

Dokument Seite für Seite teilen

Mit Aspose.Words können Sie ein mehrseitiges Dokument Seite für Seite aufteilen.

Das folgende Codebeispiel zeigt, wie Sie ein Dokument teilen und jede Seite als separates Dokument speichern:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "TestFile (Split).docx");
int pageCount = doc.getPageCount();
// Save each page as a separate document.
for (int page = 0; page <= pageCount; page++)
{
Document extractedPage = doc.extractPages(page, 1);
extractedPage.save(dataDir + "SplitDocumentPageByPageOut_" + (page + 1) + ".docx");
}

Dokument nach Seitenbereichen aufteilen

Aspose.Words ermöglicht das Aufteilen eines mehrseitigen Dokuments nach Seitenbereichen. Sie können eine Datei in mehrere Dateien mit verschiedenen Seitenbereichen aufteilen oder einfach einen Bereich auswählen und nur diesen Teil des Quelldokuments speichern. Beachten Sie, dass Sie den Seitenbereich entsprechend der maximalen und minimalen Seitenzahl eines Dokuments auswählen können.

Das folgende Codebeispiel zeigt, wie Sie ein Dokument nach Seitenbereich mit bestimmten Start- und Endindizes in kleinere Teile aufteilen:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "TestFile (Split).docx");
// Get part of the document.
Document extractedPages = doc.extractPages(3, 6);
extractedPages.save(dataDir + "SplitDocumentByPageRangeOut.docx");

Rückrufoption zum Speichern eines Dokuments

Sie können die Eigenschaft DocumentPartSavingCallback verwenden, um zu steuern, wie Aspose.Words Dokumentteile speichert, wenn dieses Dokument in das Format HTML exportiert wird. Mit dieser Eigenschaft können Sie Ausgabedateien umbenennen oder sogar in benutzerdefinierte Streams umleiten.

Bitte beachten Sie, dass dieser Rückruf beim Speichern in EPUB nicht nützlich ist, da alle Ausgabeteile in einem einzigen Container gespeichert werden müssen – dem .epub-Datei. Daher wird die Stream-Umleitung nicht unterstützt, und der Effekt des Umbenennens ist nicht sichtbar, da Dateien innerhalb des Containers umbenannt werden.

Zusammenführen des geteilten Dokuments mit einem anderen Dokument

Aspose.Words ermöglicht es Ihnen, das geteilte Ausgabedokument mit einem anderen Dokument zu einem neuen Dokument zusammenzuführen. Dies kann als Dokumentzusammenführung bezeichnet werden.

Das folgende Codebeispiel zeigt, wie Sie ein geteiltes Dokument mit einem anderen Dokument zusammenführen:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
public static void MergeDocuments(String dataDir) throws Exception{
// Find documents using for merge
File f = new File(dataDir);
FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File f, String name) {
return name.endsWith(".docx");
}
};
String[] documentPaths = f.list(filter);
String sourceDocumentPath = dataDir + documentPaths[0];
// Open the first part of the resulting document
Document sourceDoc = new Document(sourceDocumentPath);
// Create a new resulting document
Document mergedDoc = new Document();
DocumentBuilder mergedDocBuilder = new DocumentBuilder(mergedDoc);
// Merge document parts one by one
for (String documentPath : documentPaths)
{
String documentPathFull = dataDir + documentPath;
if (documentPathFull == sourceDocumentPath)
continue;
mergedDocBuilder.moveToDocumentEnd();
mergedDocBuilder.insertDocument(sourceDoc, ImportFormatMode.KEEP_SOURCE_FORMATTING);
sourceDoc = new Document(documentPathFull);
}
// Save the output file
mergedDoc.save(dataDir + "MergeDocuments_out.docx");
}