我的doc文件在word中打开是12页,但是当我使用Document的PageCount获取它的页码时,就会得到13页,我后续使用ExtractPages抽取单页为一个新的Document时,也解析出来了一个空白页,使用AsposeWordsPrintDocument打印时,也会打印出来一页空白页,我后续排查问题时发现是因为有一个空的目录导致的,我在word中删除这个空的目录,再解析就正确了。我的部分代码如下:
// 逐页处理doc
int docPageCount = oriDoc.PageCount;
for (int index = 0; index < docPageCount; index++)
{
Document page = oriDoc.ExtractPages(index, 1);
PageInfo pageInfo = page.GetPageInfo(0);
bool isLandscape = pageInfo.Landscape;
// 删除页眉页脚中的图片元素
if (!isLandscape)
{
foreach (Section section in page.Sections)
{
foreach (HeaderFooter headerFooter in section.HeadersFooters)
{
foreach (Node node in headerFooter.GetChildNodes(NodeType.Shape, true))
{
Shape shape = (Shape)node;
if (shape.HasImage)
{
shape.Remove();
}
}
}
}
}
string tempOutput = tempFolderName + Path.DirectorySeparatorChar + oriDoc.GetHashCode() + "_page" +
index +
".docx";
page.Save(tempOutput, SaveFormat.Docx);