我的报告有数百页。我需要从这个文档中创建提取每个页面到一个新文档。我发现这可以使用INTEROP,但我正在尝试避免在服务器上安装MS Office。我一直在使用ASPOSE进行大多数操作,但似乎不支持此功能。
有没有办法在不安装MS Office的情况下将文档页面分成单个文件?
答案 0 :(得分:2)
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);
可以从here下载PageNumberFinder类。
PS。我是Aspose的开发人员传播者。