使用Aspose.word把转换ODT转换为PDF的时候,嵌入了罗马数字序列,并且总页数减少了

ODT


pdf:


Could you advise how to fix this? Thank

@merlin1234

在使用Aspose.Words将ODT文件转换为PDF时,如果遇到罗马数字序列嵌入和总页数减少的问题,可以按照以下步骤进行解决:

  1. 检查文档内容:确保ODT文档中的所有内容都正确无误,特别是罗马数字序列的格式和位置。

  2. 使用PdfSaveOptions:在转换时,使用PdfSaveOptions类设置选项,以确保输出的PDF符合预期。例如,设置setEmbedFullFonts(true)以确保所有字体都被嵌入,这有助于解决格式问题。

  3. 更新字段:如果文档中包含动态字段(如页码),请在保存之前调用doc.updateFields()方法,以确保所有字段都更新到最新状态。

  4. 调整页面设置:检查文档的页面设置,确保没有意外的分页或布局问题导致页数减少。

以下是一个简单的代码示例,展示如何使用PdfSaveOptions进行转换:

Document doc = new Document("input.odt");
PdfSaveOptions options = new PdfSaveOptions();
options.setEmbedFullFonts(true); // 确保嵌入所有字体
doc.save("output.pdf", options);

如果问题仍然存在,请确保您使用的Aspose.Words版本是最新的,并查看相关文档以获取更多信息。接下来,您可以尝试重新转换文档,或联系Aspose支持团队以获得进一步的帮助。希望这些建议能帮助您解决问题!如有其他疑问,请随时告知我!

1 Like

@Professionalize.Discourse I tried your method to fix the issue, but it didn’t work. Can I share you the original ODT file and the generated PDF file? So you can get more details ? Thanks.
BTW here is how i set the fonts.

@merlin1234 列表值在 MS Word 中可以隐藏,但在 PDF 中可以显示。

页面之间出现差异通常是因为输入文档中使用的字体在文档转换为 PDF 的机器上不可用。这些字体是构建文档布局所必需的。如果 Aspose.Words 无法找到文档中使用的字体,则会使用字体替代 。由于字体度量标准不同,这可能会导致字体不匹配和文档布局差异。您可以实现 IWarningCallback ,以便在执行字体替换时获取通知。
请参阅我们的文档,了解 Aspose.Words 在何处查找字体:

此外,请通过添加编辑语言来检查结果:

LoadOptions loadOptions = new LoadOptions();
loadOptions.getLanguagePreferences().setDefaultEditingLanguage(EditingLanguage.CHINESE_PRC);
Document doc = new Document("input.docx", loadOptions);

如果在提供所需字体后问题仍然存在,请在此处附上有问题的输入和输出文档以供测试。我们将检查我们这边的转换情况,并为您提供更多信息。您可以将文件压缩并附在此处。

R-Cloud-PP-19001819_PSI Multiple (AQL Sample Level) Textile Order_v2.zip (5.2 MB)

@vyacheslav.deryushev 我这边试了试,还是没能解决,我发送了输入输出文件,请帮忙看一下。非常感谢!

@merlin1234 请注意,Aspose.Words 会模仿 MS Word 的行为,当我通过 MS Word 打开文档时,会显示一些无法阅读的内容,而且还会显示标题元素的列表编号。您可以使用以下代码删除这些数字:

Document doc = new Document("input.odt");

NodeCollection paragraphs = doc.getChildNodes(NodeType.PARAGRAPH, true);
for (Paragraph paragraph : (Iterable<Paragraph>) paragraphs) {
    if (paragraph.getParagraphFormat().getStyle().getName().equals("Heading 1")) {
        if (paragraph.isListItem()) {
            paragraph.getListFormat().removeNumbers();
        }
    }
}

doc.save("output.pdf");

此外,在您提供的代码中,我发现您使用了 cells.FontConfigs,请确保您使用了 Aspose.Words 代码 FontSettings.getDefaultInstance().setFontsFolder("Your folder", true); 来加载字体。

1 Like

@vyacheslav.deryushev
不好意思,上周有其他任务耽误了,今天才有时间继续跟进文档转换的问题.
我用你推荐的方法,罗马字母的问题解决了,字体也对了,非常感谢. 但是还有几个小问题,不知道怎么解决,能否帮我看一下,附上源文件(ODT转PDF和WORD).
源文件:
R-Cloud-PP-23009867_sukitest0314_2.zip (1.1 MB)
问题列表图:


另外感觉pdf的字体比ODT粗了一点点,这个是为什么呢?

@merlin1234 我用最新的 25.8 版本检查了 ODT 到 PDF 的转换,但无法重现这个问题。下面是我的输出文件:
output.pdf (146.7 KB)

1 Like

@vyacheslav.deryushev 当我把WINDOWS自带的字体导入到Aspose后,上述的问题几乎都解决了,谢谢!
现在还剩下几个问题没有思路,请帮忙指导下:

  1. ODT和PDF(DOCX)排版不完全一致,有时候PDF单页会多一些内容,在LibreOffice转换的时候,ODT和PDF排版是完全一致的,问题如下图,不知道能不能解决?


    2.当ODT转换成PDF的时候,多语言的问题可以解决,但是转换成DOCX的时候,多语言仍然呈现乱码(用WINDOWS11自带的字体库导入ASPOSE后):

    3.ODT中部分超链接的样式在PDF中未显示:


    (ODT中某些超链接没有展示蓝色下划线样式,这种情况下在ODT和PDF中是一致的:

附源文件:
R-Cloud-PP-19005579_Order prepare for reinspection.zip (2.7 MB)

@merlin1234

  1. MS Word与LibreOffice的显示结果不同。但在生成的PDF文件中仍然存在一些问题。我会调查他们。

  2. 被抓取的字符变成了一些丢失的字体。请为所有语言安装字体,并使用IWarningCallback检查字体问题。

  3. 对于字段问题,您可以取消链接页脚中的字段,或者您可以使用以下代码来避免更新文档中的所有字段:

PdfSaveOptions saveOptions = new PdfSaveOptions();
saveOptions.setUpdateFields(false);
1 Like

@merlin1234 感谢您报告此问题。 我们已经在我们的内部问题跟踪系统中打开了以下新工单,并将根据 免费支持政策 中提到的条款提供它们的修复:

Issue ID(s): WORDSNET-28567 (超链接样式问题)

如果您需要优先支持以及直接联系我们的付费支持管理团队,您可以获得 付费支持服务

为了正确解决表格中文字串错误的问题,您能否提供一个从ODT文件保存的MS Word格式的PDF文件?

@vyacheslav.deryushev

  1. 我会等待你们的开发团队修复超链接样式问题,希望到时候能通知我.非常感谢!
  2. 我在上面的附件里面有一个ZIP文件,里面包含一个ODT和由ODT转换出来的WORD和PDF文件,WORD文件有多语言变乱码的问题,但是PDF文件显示正常,他们使用的是同一个字体库。不知道这个附件是否满足你的要求? 我重新上传如下:
    R-Cloud-PP-19005579_Order prepare for reinspection.zip (2.7 MB)
    3.上文提到的ODT文件和PDF文件排版不一致的问题有没有办法解决?

@merlin1234 这可能是布局问题。Aspose.Words 模拟了 MS Word 的行为,因此某些属性或样式可能存在限制。您需要在 MS Word 中打开 ODT 文件,将其保存为 PDF 格式,并提供该文件。如果我在我的电脑上用 MS Word 打开 ODT 文件,第二页上会显示两行:

您提供的PDF文件中有一行内容,与Aspose.Words中的内容相同,因此我需要确认您提供的PDF文件是通过Microsoft Word保存的。

@vyacheslav.deryushev
我之前提供的是通过Aspose.words保存的(ODT->PDF|ODT-WORD)
下面的文件是通过WORD打开ODT,再从WORD直接保存成PDF(没有使用Aspose),不知道我提供的文件是不是你想要的?谢谢!
R-Cloud-PP-19005579.zip (2.6 MB)

@merlin1234 感谢您报告此问题。 我们已经在我们的内部问题跟踪系统中打开了以下新工单,并将根据 免费支持政策 中提到的条款提供它们的修复:

Issue ID(s): WORDSNET-28569

如果您需要优先支持以及直接联系我们的付费支持管理团队,您可以获得 付费支持服务

1 Like

@vyacheslav.deryushev
请问下, 你开的工单一般需要多长时间解决?
解决后是需要发布新的版本吗,还是在当前版本修复?
我可以查看你下的工单的内容和进度吗?
我们已经购买了Aspose for java的licience,这个licience包括付费支持服务吗?

@merlin1234 我们不提供任何修复时间预估,因为这取决于问题的复杂程度及其优先级。完成分析后,可能会有更多问题相关信息披露。每个修复的问题都将包含在新版发布中;我们不为旧版本提供修复。在本讨论串底部,您可在“Issues Status”栏目查看当前问题处理进度。付费支持属于独立产品,若您在购买许可证时未添加该服务,则不享有此项支持。

1 Like