有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

将自定义字体设置为aspose Word java不起作用

我正在尝试设置自定义字体,但它不起作用。我错过了什么

/src/main/resources/fonts/fonts
  -> Helvetica
  -> OpenArrow


String path = Thread.currentThread().getContextClassLoader().getResource("fonts").getPath();
FontSettings.setFontsSources(
        new FontSourceBase[] {
                new FolderFontSource(path, true, 1),
                new SystemFontSource(0)
        }
);
FontSettings.setDefaultFontName("Helvetica");


Document outputDoc = new Document();
DocumentBuilder builder = new DocumentBuilder(outputDoc);
builder.getFont().setName("Helvetica");

Helvetica字体文件夹: enter image description here

Aspose words版本:15.6.0


共 (1) 个答案

  1. # 1 楼答案

    使用最新版本的Aspose。单词,你应该使用FontSettings.getDefaultInstance()。请参见以下代码示例:

    FontSettings.getDefaultInstance().setFontsSources(
            new FontSourceBase[] {
                new FolderFontSource("C:\\Temp\\fonts", true, 1),
                new SystemFontSource(0)
            }
    );
    
    Document outputDoc = new Document();
    DocumentBuilder builder = new DocumentBuilder(outputDoc);
    builder.getFont().setName("Helvetica");
    builder.writeln("This is Helvetica text.");
    outputDoc.save("C:\\Temp\\out.pdf");
    

    点击链接了解更多信息。 https://docs.aspose.com/words/java/specify-truetype-fonts-location/

    我还用旧的15.6.0版本的Aspose检查了以下代码。Word和输出的PDF文档看起来是正确的。看截图

    FontSettings.setFontsSources(
            new FontSourceBase[] {
                new FolderFontSource("C:\\Temp\\fonts", true, 1),
                new SystemFontSource(0)
            }
    );
    FontSettings.setDefaultFontName("Helvetica");
    
    Document outputDoc = new Document();
    DocumentBuilder builder = new DocumentBuilder(outputDoc);
    builder.getFont().setName("Helvetica");
    builder.writeln("This is Helvetica text.");
    outputDoc.save("C:\\Temp\\out.pdf");
    

    enter image description here