Free Support Forum - aspose.com

Aspose.Words 取得的頁數與實際Word檔的頁數不符合

您好,
我透過 Aspose.Words 開啟 Word 檔時,取得的頁碼為 16,但實際 Word 檔的頁數為 14。
odd2.doc.zip (700.7 KB)

程式碼如下,

var doc = new Aspose.Words.Document("odd2.doc");
Console.WriteLine($"pageCount:{doc.PageCount}");
//pageCount:16

透過 Section 取得所在的頁碼時,也不正確,程式碼如下,

var doc = new Aspose.Words.Document(“odd2.doc”);
Console.WriteLine($“pageCount:{doc.PageCount}”);
var layout = new LayoutCollector(doc);
foreach (var node in doc.ChildNodes)
{
if (node.NodeType == NodeType.Section)
{
var section = (Section)node;
var sectionStart = section.PageSetup.SectionStart;
Console.WriteLine($“Section:{sectionStart}”);
Console.WriteLine($“layout.GetStartPageIndex:{layout.GetStartPageIndex(section)}”);
Console.WriteLine($“layout.GetEndPageIndex:{layout.GetEndPageIndex(section)}”);
}
}

輸出結果為,

pageCount:16
Section:NewPage
layout.GetStartPageIndex:1
layout.GetEndPageIndex:1
Section:OddPage
layout.GetStartPageIndex:3
layout.GetEndPageIndex:3
Section:NewPage
layout.GetStartPageIndex:4
layout.GetEndPageIndex:5
Section:OddPage
layout.GetStartPageIndex:7
layout.GetEndPageIndex:8
Section:NewPage
layout.GetStartPageIndex:9
layout.GetEndPageIndex:11
Section:OddPage (Section 6)
layout.GetStartPageIndex:13
layout.GetEndPageIndex:13
Section:NewPage (Section 7)
layout.GetStartPageIndex:14
layout.GetEndPageIndex:16

Section 6 實際在 Word 中是第 11 頁,Section 7 是 第 12 頁,
Aspose 中卻是 第 13 頁,及 14 頁。

@rainmaker_ho

请注意,在将文档呈现为固定页面格式(JPEG,PNG,PDF或XPS)或获取页数时,Aspose.Words需要TrueType字体。 您需要在将文档转换为PDF的计算机上安装文档中使用的字体。 请参考以下文章:

使用TrueType字体
操作和替换TrueType字体

如果仍然遇到问题,请ZIP并在此处附加以下字体进行测试。 我们将对此问题进行调查,并为您提供更多信息。

  • DFKai-SB
  • ‘新細明體’
  • ‘標楷體’

您好,
我將Section中所有Run的字型改成了「新細明體」,然後再另存一個檔案,取出的 PageCount 還是 16,但實際上卻是 14。

var doc = new Aspose.Words.Document(“odd2.doc”);
Console.WriteLine($“pageCount:{doc.PageCount}”);
var layout = new LayoutCollector(doc);
foreach (var node in doc.ChildNodes)
{
  if (node.NodeType == NodeType.Section)
  {
    var section = (Section)node;
    var sectionStart = section.PageSetup.SectionStart;
    var nodes = section.GetChildNodes(NodeType.Run, true);
    foreach(Run r in nodes)
    {
                        Console.WriteLine(r.Font.Name);
                        r.Font.Name = "新細明體";
    }    
  }
}
doc.Save("odd2_2.doc");

doc = new Document(“odd2_2.doc”);
Console.WriteLine($“pageCount:{doc.PageCount}”);

@rainmaker_ho

请在此处共享字体详细信息以进行测试。 页面布局根据字体格式更改。 因此,我们需要字体详细信息以进行进一步测试。

您好,
我在Windows 10 環境透過 VS.NET Aspose 來開啟 doc 檔,取得的頁數是 14,
但在 Mac 環境透過 VS.NET Aspose 來開啟 doc 檔,取得的頁數是 16。
應該是 Mac 環境才有問題。

@rainmaker_ho

如果您无法向我们提供所需的字体,我们将无法测试您的案例并进行记录。

请压缩并在此处附加字体以进行测试。 似乎此问题与字体丢失有关。 我们需要您的文档中使用的字体进行测试。 谢谢你的配合。

您好,
因為新細明體檔案太大,所以附上標楷體
fonts.zip (2.7 MB)

我發現這個問題跟作業系統有關係,只有在 Mac 的作業系統下,透過 Aspose.Words 的 Document 開啟 doc 檔案,才會有 頁數與實際頁數不同的問題。 在 Windows 10 的作業系統中,是正常的。

@rainmaker_ho

我们测试了sceanrio,发现缺少“新细明体”字体。 请共享此字体,以便我们可以测试此问题。

请使用最新版本的Aspose.Words for .NET 20.7,然后在MAC系统上将文档转换为PDF。 请ZIP并在此处附加PDF文件以进行测试。