我希望用包含特殊字符的信息填写 PDF 表单:
public class Main {
public static void main(String[] args) throws IOException, DocumentException {
PdfReader reader = new PdfReader("in.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("out.pdf"));
AcroFields form = stamper.getAcroFields();
form.setField("sessionAddress", "ÕÄÖÜ õäöü šž");
stamper.setFormFlattening(true);
stamper.close();
reader.close();
}
}
out.pdf
使用上面的代码,我在(之后的部分)中看到了以下结果Aadress:
:
现在,如果我将所有特殊字符指定为 unicode 代码:
form.setField("sessionAddress", "\u00D5\u00C4\u00D6\u00DC \u00F5\u00E4\u00F6\u00FC \u0161\u017E");
我究竟做错了什么?
据我所知,字符串代表一个字符序列。Java代码中上述两个字符串的内容不应该相等吗?
我有一个充满 UTF-8 编码数据的数据库。我怎样才能让它像 Java 应用程序的其余部分一样直接与 iTextPdf 一起工作(数据库、Java 代码、API 请求/响应和前端 JavaScript 代码都包含这样的字符串,除了 iTextPdf 之外的一切都有效)。
如果有什么重要的,上面代码的java文件保存为UTF-8。我正在使用 IntelliJmain
在 gradle 项目中运行该方法。iTextPdf 版本 5.5.13。爪哇 11。