我尝试填写pdf表格。我有模板并填写我的数据。
PdfReader reader = new PdfReader(src);
FontFactory.register(BaseFont.IDENTITY_H);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();
String[] split = reportDTO.note.split("\\n");
form.setField("field1", "Значение");//value is some text in UTF-8
但我的值未插入
field1
palceholder。它是空的。但是如果以英语为例form.setField("field1", "some text");
此文本成功插入。
如何设置在普通视图中插入文本的编码?
最佳答案
解决方案之一:
1)下载包含所有unicode符号的字体(您使用)
2)创建带有编码的字体(Cp1251,Cp1250,utf8等)
3)比您应该通过在表单变量上使用AcroFields的addSubstitutionFont方法添加字体。
public static final String **FONT = "resources/fonts/ARIALUNI.TTF";**
somemethod(){
**Font font = FontFactory.getFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);**
BaseFont baseFont = font.getBaseFont();
PdfStamper stamper = null;
try {
stamper = new PdfStamper(reader, new FileOutputStream(fileDestination));
AcroFields form = stamper.getAcroFields();
form.addSubstitutionFont(baseFont);
form.setField("field1", "Значение");
... // other fields, catch etc
}