首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PdfBox中的快递字体?

PdfBox中的快递字体?
EN

Stack Overflow用户
提问于 2018-08-03 01:32:30
回答 1查看 492关注 0票数 1

如何在PdfBox中使用Courier字体?

我试着使用((PDVariableText)field).setDefaultAppearance("/Cour 12 Tf 0 0 0 rg");

它抛出这个异常:

代码语言:javascript
复制
java.io.IOException: Could not find font: /Cour
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processSetFont(PDDefaultAppearanceString.java:179)
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processOperator(PDDefaultAppearanceString.java:132)
    at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processAppearanceStringOperators(PDDefaultAppearanceString.java:108)

但是,这可以很好地工作:

((PDVariableText)field).setDefaultAppearance("/Helv 12 Tf 0 0 0 rg");

下面是我的maven依赖项:

代码语言:javascript
复制
<dependency>
   <groupId>org.apache.pdfbox</groupId>
   <artifactId>pdfbox</artifactId>
   <version>2.0.11</version>
</dependency>

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-03 02:52:09

您需要将字体添加到默认资源:

代码语言:javascript
复制
PDFont font = PDType1Font.COURIER;
PDResources resources = new PDResources();
resources.put(COSName.getPDFName("Cour"), font);
PDAcroForm acroForm = new PDAcroForm(document);
document.getDocumentCatalog().setAcroForm(acroForm);
acroForm.setDefaultResources(resources);

(如果acroform已经存在,或者默认资源已经存在,则需要对此进行调整。这取自源代码下载中的CreateSimpleForm.java示例)

"Helv“字体不会抛出异常,因为PDFBox将其设置为默认字体,以使其行为类似于Adobe。但我仍然建议在代码中明确地设置它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51659277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档