Aspose.Words не содержит информацию о макете, например, страницы или номера строк. Он поддерживает DOM. Но мы создали несколько полезных классов для достижения такого поведения. Они разбивают документ слова на несколько разделов, так что каждая страница становится отдельной секцией. После этого легко копировать отдельные страницы.
String sourceDoc = dataDir + "source.docx";
String destinationtDoc = dataDir + "destination.docx";
// Initialize the Document instance with source and destination documents
Document doc = new Document(sourceDoc);
Document dstDoc = new Document();
// Remove the blank default page from new document
dstDoc.RemoveAllChildren();
PageNumberFinder finder = new PageNumberFinder(doc);
// Split nodes across pages
finder.SplitNodesAcrossPages(true);
// Get separate page sections
ArrayList pageSections = finder.RetrieveAllNodesOnPages(1, 5, NodeType.Section);
foreach (Section section in pageSections)
dstDoc.AppendChild(dstDoc.ImportNode(section, true));
dstDoc.LastSection.Body.LastParagraph.Remove();
dstDoc.Save(destinationtDoc);
Класс PageNumberFinder можно загрузить с here.
PS. Я - евангелист-разработчик в Aspose.
Да, возможно. Что вы пробовали? – tnw
До сих пор я только пытался использовать Aspose и не повезло. Я смог успешно извлечь каждую страницу, используя interop, но это не вариант. –