我使用java中的aspose-words库来读取word文档并报告页码,它在Windows中工作正常,但在UNIX中不工作,我如何修复?

qpgpyjmq  于 2023-06-22  发布在  Unix
关注(0)|答案(1)|浏览(546)

我在aspose-words库中使用LayoutCollector来获取节点的页码。

Document document=new Document(filePath);
LayoutCollector layoutCollector=new LayoutCollector(doc);
NodeCollection paragraphNodes=document.getChildNodes(NodeType.Paragraph,true);
for(Node node:paragraphNodes)
{
 if(node.getType==NodeType.PARAGRAPH){
 int pageNumber=layoutCollector.getStartPageIndex(node);
System.out.println(pageNumber);
}

虽然我在本地Windows系统中获得了确切的页码,但在UNIX服务器中却没有。它错误地报告了页码。这种行为的任何原因,我如何解决这个问题?

kxe2p93d

kxe2p93d1#

Unix环境中的问题可能会发生,因为源文档中使用的字体在处理文档的环境中不可用。计算节点Aspose的页码。单词需要建立文档布局。在构建文档布局时,如果Aspe.Words找不到文档中使用的字体,请使用fonts are substituted。这可能导致布局差异,因为替换字体可能具有不同的字体度量。反过来,这可能导致LayoutCollector检测到不正确的页码。您可以实现IWarningCallback以在执行字体替换时获得通知。
以下文章可能对您有用:
https://docs.aspose.com/words/java/specify-truetype-fonts-location/
https://docs.aspose.com/words/java/install-truetype-fonts-on-linux/

相关问题