5

我正在尝试使用 PDFTk 填写 pdf 文档。脚本工作正常,它在表单中填写输入,但我没有得到特殊字符 [波兰字符集:UTF-8 或 ISO-8859-2]。

脚本:https ://github.com/mikehaertl/php-pdftk

奇怪的是,当我点击字段时,生成的 pdf 实际上有波兰语字符。

点击前:

在此处输入图像描述

点击字段后:

在此处输入图像描述


默认编码设置为 UTF-8。问题是 PDFTk 不能使用标准 ASCII 以外的字符和 FDF 表单填充。它不允许多字节字符。

我做了什么:

  1. 将字体添加到 pdf 文件(选中且文件有字体)
  2. 使用默认字体(Arial)在 pdf 文件中创建字段
  3. 将脚本中的编码(函数 fillForm)更改为 ISO-8859-2
  4. 更改数据值编码(iconv 或 mb_convert_encoding)
  5. 将函数编码和数据值编码更改为 ISO-8859-2
  6. 填写表格后展平pdf
  7. 在谷歌的 stackoverflow 中阅读有关此问题的所有主题

更新(25.03.2016):发现 pdf 文档在某些计算机上工作正常。有些人有波兰语字符,有些人没有。我们所有人都有正确的字体(带有波兰语字符集)。我使用默认的 Arial 或 Times New Roman。字体也嵌入在该文件中。

有任何想法吗?

4

4 回答 4

8

你需要运行 pdftkneed_appearances作为参数

感谢github上这个问题的家伙。

于 2017-06-08T20:58:37.240 回答
0

当我使用编码为 UTF-18BE 的 UTF-8 值创建 FDF 文件时,我得到了最好的结果(没有展平)

chr(0xfe) . chr(0xff) . str_replace(array('\\', '(', ')'), array('\\\\', '\(', '\)'), mb_convert_encoding($string, 'UTF-16BE'));

您的图书馆运作良好,但即。当我直接在 MACOS 上的 Safari 中打开使用它生成的 PDF 时,它不会显示波兰字符,直到我单击该字段。当我用 Adob​​e Reader 打开它时 - 它工作正常。

于 2020-06-10T10:49:48.243 回答
0

我有类似的问题。用utf8_decode函数解决了。例如utf8_decode('Łukasz')

于 2018-07-30T10:40:40.860 回答
-1

我找不到如何更改字体,所以我的解决方案 - 使用 itext,https: //itextpdf.com/en/resources/examples/itext-5/filling-out-forms

为我的项目写https://github.com/dddeeemmmooonnn/pdf_form_filler

于 2019-03-20T05:26:57.770 回答