问题
I'm trying to fill pdf documents using PDFTk. Script working fine, it fills inputs in form but I don't get special characters [polish charset: UTF-8 or ISO-8859-2].
Script: https://github.com/mikehaertl/php-pdftk
The weird thing is that generated pdf actually has polish characters when I click on field.
Before click:
After click on field:
Default encoding is set to UTF-8. The problem is that PDFTk can't use chars outside the standard ASCII with FDF form fill. It doesn't allow multi-byte characters.
What I did:
- Add fonts to pdf files (checked and files has font)
- Create fields in pdf files with default font (Arial)
- Change encoding in script (function fillForm) to ISO-8859-2
- Change data values encoding (iconv or mb_convert_encoding)
- Change functions encoding and data value encoding to ISO-8859-2
- Flatten pdf after filling the form
- Read all topics about this problem in stackoverflow, google
UPDATE (25.03.2016): Findout that pdf documents works fine on some computers. Some people have polish characters and other don't. All of us have right fonts (with polish charset). I used default Arial or Times New Roman. Fonts are also embed in that file.
Any ideas?
回答1:
you need to run pdftk with need_appearances
as an argument.
kudos to the guys from this issue on github.
回答2:
I had similar issue.
Solved it with utf8_decode
function. eg utf8_decode('Łukasz')
回答3:
I could not find how to change font, so my solution - use itext, https://itextpdf.com/en/resources/examples/itext-5/filling-out-forms
wrote for my project https://github.com/dddeeemmmooonnn/pdf_form_filler
来源:https://stackoverflow.com/questions/36196850/missing-characters-in-filled-pdf-using-pdftk-with-encoding-utf-8