Word转html,文本的字体丢失了

我是用的aspose.word版本是22.12
word原文件:费用类—服务合同-(单项)(2023-1).docx (181.0 KB)

发生字体缺失的地方,在第十页:image.png (105.9 KB)
,这些文件在wps中查看是宋体,转换为html后,没有字体:image.png (88.5 KB)

我转换出来的html:高.zip (60.4 KB)

@humanhuman, 请尝试设置 ResolveFontName 属性,如下例所示:

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

HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.setResolveFontNames(true);
doc.save("out.html");

我发现宋体是从body元素中继承的,能否做到像截图中所示的,把字体设置到文本自身的标签里,就像微软雅黑那一段文本一样
image.png (50.7 KB)

@humanhuman, 在简单的情况下,您可以这样做:

Document doc = new Document("in.html");

// 获取包含 Arial text 文本的段落。
Paragraph para = (Paragraph)doc.getChild(NodeType.PARAGRAPH, 0, true);

//获取第一个文本块(run 或 span)并更改其字体。
para.getRuns().get(0).getFont().setName("Times New Roman");

doc.save("out.html");

htmlfiles.zip (589 Bytes)


您还可以按照文档中的说明使用 Find and Replace 功能:
https://docs.aspose.com/words/java/find-and-replace/#customize-find-and-replace-operation

请参阅我们的文档如何更改字体属性:
https://docs.aspose.com/words/java/working-with-fonts/
https://reference.aspose.com/words/java/com.aspose.words/font/