แยกเอกสาร

Splittingหรือsplit a documentเป็นกระบวนการของการทำลายเอกสารขนาดใหญ่เป็นจำนวนมากของไฟล์ที่มีขนา มีเหตุผลหลายประการที่จะแยกไฟล์ ตัวอย่างเช่นคุณต้องการเพียงบางหน้าจากเอกสารที่เฉพาะเจาะจงและไม่หนึ่งทั้งหมด หรือด้วยเหตุผลความเป็นส่วนตัวคุณต้องการแบ่งปันเฉพาะบางส่วนของเอกสารกับผู้อื่น ด้วยคุณลักษณะการแยกคุณจะได้รับเฉพาะส่วนที่จำเป็นของเอกสารและดำเนินการที่จำเป็.

Aspose.Wordsช่วยให้คุณมีวิธีที่มีประสิทธิภาพในการแบ่งเอกสารหนึ่งออกเป็นเอกสารหลายส่วนโดยหั คุณยังสามารถแบ่งเอกสารตามหน้าหรือตามช่วงหน้า ทั้งสองตัวเลือกแยกจะอธิบายไว้ในบทความนี้.

เมื่อต้องการแยกเอกสารออกเป็นไฟล์ขนาดเล็กโดยใช้Aspose.Wordsคุณต้องทำตามขั้นตอนเหล่านี้:

  1. ป้อนเอกสารในรูปแบบที่รองรับ.
  2. แยกเอกสาร.
  3. บันทึกเอกสารที่ส่งออก.

หลังจากที่คุณแยกเอกสารที่คุณจะสามารถที่จะเปิดเอกสารที่ส่งออกทั้งหมดที่จะเริ่มต้นด้ว.

แยกเอกสารโดยใช้เกณฑ์ที่แตกต่างกัน

Aspose.Wordsช่วยให้คุณสามารถแบ่งเอกสารEPUBหรือHTMLออกเป็นบทตามเกณฑ์ต่างๆ ในกระบวนการลักษณะและเค้าโครงของเอกสารต้นฉบับจะถูกเก็บรักษาไว้สำหรับเอกสา.

คุณสามารถระบุเกณฑ์โดยใช้การแจงนับDocumentSplitCriteria ดังนั้นคุณสามารถแบ่งเอกสารออกเป็นบทโดยใช้เกณฑ์ใดเกณฑ์หนึ่งต่อไปนี้หรือรวมเกณฑ์:

  • หัวเรื่องย่อหน้า,
  • แบ่งส่วน,
  • แบ่งคอลัมน์,
  • แบ่งหน้า.

เมื่อบันทึกผลลัพธ์เป็นHTMLAspose.Wordsบันทึกแต่ละบทเป็นไฟล์HTMLแยกต่างหาก เอกสารจะถูกแบ่งออกเป็นหลายไฟล์HTML เมื่อบันทึกผลลัพธ์เป็นEPUBAspose.Wordsบันทึกผลลัพธ์ในไฟล์เดียวEPUBโดยไม่คำนึงถึงค่าDocumentSplitCriteriaที่คุณใช้ ดังนั้นการใช้DocumentSplitCriteriaสำหรับEPUBเอกสารจะมีผลต่อลักษณะที่ปรากฏของเนื้อหาในโปรแกรมประยุกต์ของผู้อ่าน:เนื้อหาจะถูกแบ่งออกเป็นบทและเอกสารจะไม่ปรากฏอย่างต่อเนื่องอีกต่อไป.

ในส่วนนี้เราจะพิจารณาเพียงบางส่วนของเกณฑ์การแยกที่เป็นไปได้.

แยกเอกสารตามส่วนหัว

เมื่อต้องการแบ่งเอกสารเป็นบทตามส่วนหัวให้ใช้ค่าHeadingParagraphของคุณสมบัติDocumentSplitCriteria.

ถ้าคุณต้องการแยกเอกสารตามระดับเฉพาะของย่อหน้าหัวเรื่องเช่นส่วนหัว 1,2 และ 3 ให้ใช้คุณสมบัติDocumentSplitHeadingLevelด้วย ผลลัพธ์จะถูกแบ่งตามย่อหน้าที่จัดรูปแบบด้วยระดับหัวข้อที่ระบุ.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแยกเอกสารออกเป็นส่วนเล็กๆโดยหัวข้อ:

// 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);

โปรดทราบว่าสำหรับเกณฑ์นี้Aspose.Wordsสนับสนุนการบันทึกเป็นHTMLรูปแบบเมื่อแยก.

เมื่อบันทึกเป็นEPUBเอกสารจะไม่แบ่งออกเป็นหลายแฟ้มและจะมีแฟ้มที่ส่งออกเพียงหนึ่งแฟ้ม.

แยกเอกสารตามส่วน

Aspose.Wordsยังช่วยให้คุณสามารถใช้ส่วนแบ่งการแยกเอกสารและบันทึกไว้เป็นHTML เพื่อจุดประสงค์นี้ให้ใช้SectionBreakเป็น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);

มีอีกวิธีหนึ่งในการแยกเอกสารต้นทางออกเป็นเอกสารออกหลายรายการและคุณสามารถเลือกรูปแบบเอาต์พุตที่รองรับโดยAspose.Words.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแยกเอกสารออกเป็นส่วนเล็กๆโดยแบ่งส่วน(โดยไม่ต้องใช้คุณสมบัติ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 + "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");
}

แยกตามหน้า

คุณยังสามารถแบ่งเพจเอกสารตามเพจตามช่วงของเพจหรือเริ่มต้นด้วยหมายเลขเพจที่ร นกรณีดังกล่าววิธีการExtractPagesสามารถทำงานได้.

ส่วนนี้อธิบายถึงกรณีการใช้งานหลายกรณีของการหารเอกสารโดยใช้DocumentคลาสและExtractPagesวิธีการ.

แยกหน้าเอกสารตามหน้า

Aspose.Wordsช่วยให้คุณสามารถแยกหน้าเอกสารหลายหน้าตามหน้า.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแบ่งเอกสารและบันทึกแต่ละหน้าเป็นเอกสารแยกต่างหาก:

// 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");
}

แยกเอกสารตามช่วงหน้า

Aspose.Wordsอนุญาตให้แยกเอกสารหลายหน้าตามช่วงหน้า คุณสามารถแยกไฟล์หนึ่งไฟล์เป็นหลายไฟล์ที่มีช่วงหน้าต่างๆหรือเพียงแค่เลือกหนึ่งช่วงและ โปรดทราบว่าคุณสามารถเลือกช่วงหน้าตามจำนวนหน้าสูงสุดและต่ำสุดของเอกสาร.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแยกเอกสารออกเป็นส่วนเล็กๆตามช่วงหน้ากับดัชนีเริ่มต้นแ:

// 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");

ตัวเลือกการโทรกลับเพื่อบันทึกเอกสาร

คุณสามารถใช้คุณสมบัติDocumentPartSavingCallbackเพื่อควบคุมวิธีบันทึกAspose.Wordsชิ้นส่วนเอกสารเมื่อเอกสารนี้ถูกส่งออกเป็นรูปHTML คุณสมบัตินี้ช่วยให้คุณสามารถเปลี่ยนชื่อไฟล์ที่ส่งออกหรือแม้กระทั่งการเปลี่ยนเส้นทางไปยั.

โปรดทราบว่าการเรียกกลับนี้จะไม่เป็นประโยชน์เมื่อบันทึกEPUBเพราะทุกส่วนส่งออกจะต้องถูกบันทึกลงในภาชนะเดียว–ไฟล์ ดังนั้นการเปลี่ยนเส้นทางสตรีมไม่ได้รับการสนับสนุนและผลกระทบของการเปลี่ยนชื่อจะไ.

ผสานเอกสารแยกกับเอกสารอื่น

Aspose.Wordsช่วยให้คุณสามารถรวมเอาต์พุตเอกสารแยกกับเอกสารอื่นเพื่อสร้างเอกสารใหม่ นี้สามารถเรียกว่าการรวมเอกสาร.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการรวมเอกสารแยกกับเอกสารอื่น:

// 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");
}