Я использую itextpdf в Ubuntu, чтобы заполнить форму PDF данными. На самом деле я использую класс (утилиту), включенный в этот комплект: PdfFormFiller. Данные представлены строками Unicode. Для правильного отображения символов Unicode я использую опцию -fonts в PdfFormFiller.
Для этого я написал PHP-скрипт, который просто вызывает PdfFormFiller с правильными параметрами.
<?php
$command = "java -cp ./bin:lib/itextpdf-5.5.3.jar PdfFormFiller.PdfFormFiller DIPLOMA_FORM.pdf -f test.fdf -font \"fonts/arial.ttf\" -flatten test.pdf";
exec($command);
?>
Когда я запускаю файл PHP как root из командной строки (php), все в порядке. PDF-файл имеет встроенный шрифт, и символы отображаются правильно.
Но когда я запускаю сценарий из Интернета (перейдите по ссылке), сгенерированный PDF не включает необходимый шрифт (Arial со всеми символами Unicode).
Я пытался ссылаться на файл шрифта (в сценарии PHP) с абсолютным путем, относительным (к веб-странице) путем и вариантами. Нет идти.
Я разрешил пользователю apache все права доступа ко всем задействованным файлам. Нет идти.
Есть идеи?
Тем временем я решил проблему с помощью FPDF. Работает как шарм с UTF-8.
http://www.fpdf.org/en/script/script93.php
L.E. TFPDF еще лучше. 🙂
http://www.fpdf.org/en/script/script92.php
Других решений пока нет …