Michał Lipa
Michał Lipa

Reputation: 978

Missing characters in filled pdf using PDFTk with encoding UTF-8

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:

enter image description here

After click on field:

enter image description here


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:

  1. Add fonts to pdf files (checked and files has font)
  2. Create fields in pdf files with default font (Arial)
  3. Change encoding in script (function fillForm) to ISO-8859-2
  4. Change data values encoding (iconv or mb_convert_encoding)
  5. Change functions encoding and data value encoding to ISO-8859-2
  6. Flatten pdf after filling the form
  7. 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?

Upvotes: 5

Views: 7145

Answers (4)

Gustavo
Gustavo

Reputation: 1

The best results (without flatten) I got when I was creating FDF file with UTF-8 values encoded into UTF-18BE

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

Your library works quite well but ie. when I open the PDF generated with it directly in Safari on MACOS it does not show polish chars until I click the field. When I open it with Adobe Reader - it works fine.

Upvotes: 0

Dmitry Turov
Dmitry Turov

Reputation: 39

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

Upvotes: -2

breq
breq

Reputation: 25506

I had similar issue. Solved it with utf8_decode function. eg utf8_decode('Łukasz')

Upvotes: 0

Maximilian Schmidt
Maximilian Schmidt

Reputation: 123

you need to run pdftk with need_appearances as an argument.

kudos to the guys from this issue on github.

Upvotes: 8

Related Questions