แยกเอกสาร
Splittingหรือsplit a documentเป็นกระบวนการของการทำลายเอกสารขนาดใหญ่เป็นจำนวนมากของไฟล์ที่มีขนา มีเหตุผลหลายประการที่จะแยกไฟล์ ตัวอย่างเช่นคุณต้องการเพียงบางหน้าจากเอกสารที่เฉพาะเจาะจงและไม่หนึ่งทั้งหมด หรือด้วยเหตุผลความเป็นส่วนตัวคุณต้องการแบ่งปันเฉพาะบางส่วนของเอกสารกับผู้อื่น ด้วยคุณลักษณะการแยกคุณจะได้รับเฉพาะส่วนที่จำเป็นของเอกสารและดำเนินการที่จำเป็.
Aspose.Wordsช่วยให้คุณมีวิธีที่มีประสิทธิภาพในการแบ่งเอกสารหนึ่งออกเป็นเอกสารหลายส่วนโดยหั คุณยังสามารถแบ่งเอกสารตามหน้าหรือตามช่วงหน้า ทั้งสองตัวเลือกแยกจะอธิบายไว้ในบทความนี้.
เมื่อต้องการแยกเอกสารออกเป็นไฟล์ขนาดเล็กโดยใช้Aspose.Wordsคุณต้องทำตามขั้นตอนเหล่านี้:
- ป้อนเอกสารในรูปแบบที่รองรับ.
- แยกเอกสาร.
- บันทึกเอกสารที่ส่งออก.
หลังจากที่คุณแยกเอกสารที่คุณจะสามารถที่จะเปิดเอกสารที่ส่งออกทั้งหมดที่จะเริ่มต้นด้ว.
ลองออนไลน์
คุณสามารถลองฟังก์ชั่นนี้กับเรา แยกเอกสารออนไลน์ฟรี.
แยกเอกสารโดยใช้เกณฑ์ที่แตกต่างกัน
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"); | |
} |