问题描述
我使用PDFBox(2.X)将PDF转换为图像。整个程序都在Linux下运行,以前我在转换某些非嵌入式字体的PDF时遇到了一些麻烦。然后,我将base-14字体添加到系统中,一切正常。到目前为止一切顺利。
现在,尽管系统上已安装Courier-Bold,但其中使用的PDF却使用Courier-Bold,但结果如下。 (应该是罗马字母导致我的骚动有些生锈;-):
所以我有点困惑为什么PDF转换不正确。 PDF中的字体定义为
1 0 obj <</Subtype/Type1/Type/Font/BaseFont/Courier-Bold/Encoding/WinAnsiEncoding>>
那么,为什么PDFBox没有选择正确的字体?转换PDF时未显示警告。已安装以下字体:
- Courier.ttf
- CourierBold.ttf
- CourierOblique.ttf
- Courierboldoblique.ttf
我还安装了注释(CourierNewPS-BoldMT,CourierNew-Bold,LiberationMono-Bold,NimbusMonL-Bold
)中提到的其他字体,但两种字体均无效。
每次我添加新字体(到/.local/share/font)时,我都会从PDFBox收到一条消息,提示已找到新字体-因此可以识别字体本身。一定是其他东西。
解决方法
原因与字体本身有关。当前,PDFBox希望使用“ Courier-Bold”字体或替代字体,其名称为
- CourierNewPS-BoldMT
- CourierNew-Bold
- 解放单声道
- NimbusMonL-Bold
删除“ Courier-Bold”字体并添加上述字体之一即可解决此问题。最可能的解释是字体已损坏。