Многие из тех кто сталкивался с необходимостью генерировать PDF файлы в автоматическом режиме на своих серверах вставали перед проблемой с поддержкой русских или иных символов в генерируемых документах.
Самый наверное простой путь это использовать что-нибудь типа shell_exec в вашем коде, для выполнения вот такой терминальной программы(ниже в описании есть строка,начинается на java -cp ……….), мы протестировали это на многих типах серверов, в том числе на centOS 7, CentOS 6, FreeBSD 10, free bsd 11, Ubuntu различных версий и этот код работает отлично с русскими и китайскими символами без дополнительных манипуляций со шрифтами и без использования нестандартных системных настроек, необходимо установить java и скачать пару файлов или скомпилировать под свои нужды из исходного кода.
Вот эта команда в терминале выполнит заполнение pdf полей в кодировке UTF-8 необходимыми символами.
java -cp /home/………/itextpdf-5.*.*.jar:/home/…………./mcpdf-0.2.4.jar aero.m_click.mcpdf.Main folderWithPDF/testByJava.pdf fill_form — output — < folderWithPDF/pdf_file_generated.xfdf > folderWithPDF/OUTPUTtestByJava.pdf
вот этой командой( нужен ghostscript, ставится без проблем на все основные ОС ) можно убрать из pdf всё лишнее и получить файл минимального размера в несколько килобайт(у нас был немалый профит из 30MB в 150Kb)
gs -o folderWithPDF/OUTPUTtestByJava.pdf -sDEVICE=pdfwrite -dEmbedAllFonts=true folderWithPDF/OUTNEW1.pdf
Программа для работы с pdf в терминале, на github-е :
https://github.com/m-click/mcpdf
Библиотеку iText 5 для полноценной работы этого решения можно скачать например вот отсюда https://github.com/itext/itextpdf/releases
Для генерации XFDF используйте инструкции как на скриншоте, можно открыть в официальном редакторе от Adobe и сделать экспорт данных, после чего получим готовый XFDF, далее можно генерировать подобные XFDF динамически.
m-click/mcpdf
github.com