【问题标题】:itext pdfacroform set value chinese problem [duplicate]itext pdfacroform设置值中文问题[重复]
【发布时间】:2021-06-04 13:13:40
【问题描述】:

全部

我使用 libreoffice 创建了一个 pdf 模板。我试图将中文字符串填充到这些字段中,但这些字段中只有垃圾。代码如下:

            PdfFont kaiuFont = PdfFontFactory.createFont("c:/windows/fonts/kaiu.ttf", true);
            FileOutputStream output = new FileOutputStream("d:/download/202106.pdf");
            PdfDocument pdf = new PdfDocument(new PdfReader(template), new PdfWriter(output));
            PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
            Map<String, PdfFormField> fields = form.getFormFields();
            fields.get("COMPANY_TITLE").setValue(<Chinese words>).setFontAndSize(kaiuFont, 18f);
            pdf.close();

这些代码有什么问题?

【问题讨论】:

  • 您是否尝试过设置值之前提供字体和大小?
  • 感谢您的帮助,第一行我定义了一个中文字体kaiu.ttf。第 6 行我用汉字填充字段并将字体设置为 kaiu.tff。我做错了吗?
  • 您是否尝试在设置值之前提供字体和大小? IE。先打电话setFontAndSize 然后setValue?
  • mkl,谢谢,我只是尝试在设置值之前设置字体,但仍然没有成功。
  • 好的。只是一个想法......

标签: pdf itext


【解决方案1】:

如果您的 pdf 不是由 LibreOffice 生成的,请忽略此主题。我用谷歌搜索了一天,找到了这个解决方案链接,它对我有用

libreoffice pdf issue

【讨论】:

  • 由于其他堆栈溢出答案解决了您的问题,我将您的问题作为副本关闭。
猜你喜欢
  • 2018-12-04
  • 2011-09-08
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 2022-07-12
  • 2018-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多