Document的PageCount错误,打印出现空白页,似乎是因为空目录引起的

我的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);

@cokefree 你能在这里附上你的文件进行测试吗? 我们将检查问题并为您提供更多信息。

input.docx (61.0 KB)
这个doc有12页,但是解析出来13页,问题似乎是因为第3页最后的某个格式导致的,我删除后就正常了。
65573909_page3.docx (27.0 KB)
这是抽出来的空白页

@cokefree
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): WORDSNET-25385

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

这是bug吗?有什么方法可以回避掉这个问题吗?

@cokefree 正如我所看到的,问题的发生是因为第三页末尾表格中的文本被错误地换行了。 我们将调查问题并在问题解决后通知您。 不幸的是,目前我无法向您建议任何解决方法。

我可以在代码中通过什么方式定位这种“错误的换行”,然后删除掉吗?

@cokefree 不幸的是,目前没有办法以编程方式解决这个问题。

@cokefree 出现此问题是因为文档具有高级排版功能(字距调整)并且客户的代码未使用整形包。

有问题的表格中的文本启用了字距调整。
字距调整是一种高级排版功能,Aspose.Words 通过 Aspose.Words.Shaping.HarfBuzz nuget 包支持它。
建议客户安装以上包,修改代码如下:

Document doc = new Document("in.docx"); 
// Configure shaping in order to support font kerning. 
doc.LayoutOptions.TextShaperFactory = Aspose.Words.Shaping.HarfBuzz.HarfBuzzTextShaperFactory.Instance; 
....

配置了整形后,文档应该看起来不错。 在文档中查看有关高级排版功能的更多信息:
https://docs.aspose.com/words/net/enable-opentype-features/.

The issues you have found earlier (filed as WORDSNET-25385) have been fixed in this Aspose.Words for .NET 23.6 update also available on NuGet.