Aspose获取的行与Office中显示的行内容不一致,怎么能获取到完全一致的行内容?

Word中打开,正文第一行,以“25.5MB"结尾,但通过layoutEnumerator进行遍历元素发现,正文的两行(Entity type:Line)的内容(上图中左半部分)与Word文档显示不一致。同时,通过Aspose保存的PDF文件,显示也与Word文档中显示的不一致(PDF与layoutEnumerator的结果一致)。

期望能够实现通过layoutEnumerator遍历到的行与Word文档中显示的结果完全一致。请问需要怎么处理?

相关代码:

/// <summary>
/// 通过layoutEnumerator的布局实体集合前后枚举,
/// 以深度优先的方式,并按“视觉”顺序。
/// </summary>
private static void TraverseLayoutForward(LayoutEnumerator layoutEnumerator, int depth)
{
    do
    {
        PrintCurrentEntity(layoutEnumerator, depth);

        if (layoutEnumerator.MoveFirstChild())
        {
            TraverseLayoutForward(layoutEnumerator, depth + 1);
            layoutEnumerator.MoveParent();
        }
    } while (layoutEnumerator.MoveNext());
}

/// <summary>
/// 将layoutEnumerator当前实体的信息打印到控制台,同时用制表符缩进文本
/// 基于它相对于我们在构造函数 LayoutEnumerator 实例中提供的根节点的深度。
/// 我们最后处理的矩形代表实体在文档中占据的区域和位置。
/// </summary>
private static void PrintCurrentEntity(LayoutEnumerator layoutEnumerator, int indent)
{
    string tabs = new string('\t', indent);

    Console.WriteLine(layoutEnumerator.Kind == string.Empty
        ? $"{tabs}-> Entity type: {layoutEnumerator.Type}"
        : $"{tabs}-> Entity type & kind: {layoutEnumerator.Type}, {layoutEnumerator.Kind}");

    // 只有跨度可以包含文本。
    if (layoutEnumerator.Type == LayoutEntityType.Span)
        Console.WriteLine($"{tabs}   Span contents: \"{layoutEnumerator.Text}\"");

    System.Drawing.RectangleF leRect = layoutEnumerator.Rectangle;
    Console.WriteLine($"{tabs}   Rectangle dimensions {leRect.Width}x{leRect.Height}, X={leRect.X} Y={leRect.Y}");
    Console.WriteLine($"{tabs}   Page {layoutEnumerator.PageIndex}");
}

测试文档: 12.docx (18.1 KB)

@WPInfo
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-25511

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.