Fonts 如何为PDF格式的AcroForm字段使用自定义字体,这些字段是通过XHTML、飞碟和openpdf生成的
所以,我似乎有一个自己无法解决的问题。 我使用FlyingSacer-9.1.20和openpdf-1.3.22从xhtml源代码生成PDF 我的客户CI要求Verdana作为他们所有文档的字体。因此,我嵌入字体并创建pdf,如以下简单示例所示:Fonts 如何为PDF格式的AcroForm字段使用自定义字体,这些字段是通过XHTML、飞碟和openpdf生成的,fonts,pdf-generation,flying-saucer,acrofields,openpdf,Fonts,Pdf Generation,Flying Saucer,Acrofields,Openpdf,所以,我似乎有一个自己无法解决的问题。 我使用FlyingSacer-9.1.20和openpdf-1.3.22从xhtml源代码生成PDF 我的客户CI要求Verdana作为他们所有文档的字体。因此,我嵌入字体并创建pdf,如以下简单示例所示: ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ITextRenderer renderer = new ITextRenderer(); renderer.setDo
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(xhtmlDoc);
renderer.getFontResolver().addFont(fontDir + "verdana.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
renderer.layout();
renderer.createPDF(outputStream);
下面是一个简单的XHTML源:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
body {
font-size: 7.5pt;
font-family: Verdana;
}
input {
font-size: 7.5pt;
width: 500px;
height: 15px;
font-family: Verdana;
}
</style>
</head>
<body>
TestField: <input type="text" value="Test"></input>
<p>This is an example Text</p>
</body>
</html>
身体{
字号:7.5pt;
字体系列:Verdana;
}
输入{
字号:7.5pt;
宽度:500px;
高度:15px;
字体系列:Verdana;
}
测试字段:
这是一个示例文本
到目前为止还不错,它使用了我的嵌入式字体,但只要我单击输入字段,字体就会发生变化,编辑后,它就保持不变
当我在Chrome中打开pdf并单击输入字段时,它看起来像。大部分是空白,有时是一些随机字母,如图所示 看起来好像存在某种编码问题,Adobe Acrobat Reader会退回到默认字体。
当我使用openpdf中的一种标准字体时,效果很好 我已经为这个问题苦苦挣扎了好几天了,我简直无法控制它。
我是不是错过了什么
感谢您的帮助。我通过更改
renderer.getFontResolver().addFont(fontDir + "verdana.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
到
renderer.getFontResolver().addFont(fontDir + "verdana.ttf", BaseFont.CP1257, BaseFont.EMBEDDED);