1

我试过填写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占位符。它是空的。但是如果以英语为例

form.setField("field1", "some text");

此文本插入成功。

如何在普通视图中设置插入文本的编码?

4

1 回答 1

1

解决方案之一:

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
    }
于 2018-02-02T04:00:15.420 回答