You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过字体名字符串加载PDType1Font?PDFBox 2.0.x实现咨询

在PDFBox 2.0.x中通过字体名称加载PDType1Font的方法

PDFBox 2.0.x版本依然支持通过字体名称加载标准14种Type1字体,不过实现方式和1.8.x版本有所区别:

  • 直接使用PDType1Font类的静态常量引用,比如PDType1Font.HELVETICA、PDType1Font.TIMES_ROMAN等,这些常量一一对应标准14种字体。
  • 若需要通过字符串名称动态加载,可自行构建字体名称与静态常量的映射关系,示例代码如下:
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import java.util.Map;
import java.util.HashMap;

public class StandardFontLoader {
    private static final Map<String, PDType1Font> STANDARD_FONT_MAP = new HashMap<>();
    
    static {
        STANDARD_FONT_MAP.put("Helvetica", PDType1Font.HELVETICA);
        STANDARD_FONT_MAP.put("Helvetica-Bold", PDType1Font.HELVETICA_BOLD);
        STANDARD_FONT_MAP.put("Helvetica-Oblique", PDType1Font.HELVETICA_OBLIQUE);
        STANDARD_FONT_MAP.put("Helvetica-BoldOblique", PDType1Font.HELVETICA_BOLD_OBLIQUE);
        STANDARD_FONT_MAP.put("Times-Roman", PDType1Font.TIMES_ROMAN);
        STANDARD_FONT_MAP.put("Times-Bold", PDType1Font.TIMES_BOLD);
        STANDARD_FONT_MAP.put("Times-Italic", PDType1Font.TIMES_ITALIC);
        STANDARD_FONT_MAP.put("Times-BoldItalic", PDType1Font.TIMES_BOLD_ITALIC);
        STANDARD_FONT_MAP.put("Courier", PDType1Font.COURIER);
        STANDARD_FONT_MAP.put("Courier-Bold", PDType1Font.COURIER_BOLD);
        STANDARD_FONT_MAP.put("Courier-Oblique", PDType1Font.COURIER_OBLIQUE);
        STANDARD_FONT_MAP.put("Courier-BoldOblique", PDType1Font.COURIER_BOLD_OBLIQUE);
        STANDARD_FONT_MAP.put("Symbol", PDType1Font.SYMBOL);
        STANDARD_FONT_MAP.put("ZapfDingbats", PDType1Font.ZAPF_DINGBATS);
    }

    public static PDType1Font getStandardFont(String fontName) {
        return STANDARD_FONT_MAP.get(fontName);
    }
}
  • 还可以使用PDFontFactory.createFont方法,传入字体名称字符串即可加载,该方法会自动识别标准字体,示例:
PDFont font = PDFontFactory.createFont("Helvetica");

注意:使用PDFontFactory.createFont时,若传入的名称不属于标准14种字体,方法会尝试加载系统中的对应字体,可能抛出异常,需做好异常处理。

内容的提问来源于stack exchange,提问作者SemmelJochen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:01:12