Java aspose.word 24 中文标点符号字体设置不生效

我们目前的需求是中文的标点符号需要根据当前段落汉字的字体而变化。比如当前段落汉字时宋体,那么就需要中文的标点符号都是宋体,结果标点符号全部变成了Times New Roman。

builder.getFont().setNameAscii("Times New Roman");
builder.getFont().setNameFarEast("宋体");
builder.writeln("中文内容包含“中文标点‘符号’,开始”,就是内容");

@yangxiong0301 请提供您当前和预期的输出结果(您可以在 Microsoft Word 中修改已生成的输出结果以展示预期输出结果)。我们将检查文档并提供更多信息。

cn.docx (7.3 KB)

我要的结果是“包含”后的双引号是宋体,而不是新罗马
cn期望的结果.docx (11.5 KB)

@yangxiong0301 感谢您提供的更多信息。您描述的行为符合预期,因为您的代码中设置了 AsciiFarEast 字体名称。MS Word 会确定运行中每个字符的字符代码并选择相应的字体。在您的示例中,双引号字符被识别为 ASCII 字符,因此使用了 Times New Roman 字体。要获得预期的输出,您可以这样设置字体:

builder.getFont().setName("宋体");
builder.writeln("中文内容包含“中文标点‘符号’,开始”,就是内容");