将单个页面从word文档复制到新文档c#

时间:2013-04-16 15:00:34

标签: c# ms-word

我的报告有数百页。我需要从这个文档中创建提取每个页面到一个新文档。我发现这可以使用INTEROP,但我正在尝试避免在服务器上安装MS Office。我一直在使用ASPOSE进行大多数操作,但似乎不支持此功能。

有没有办法在不安装MS Office的情况下将文档页面分成单个文件?

1 个答案:

答案 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的开发人员传播者。