Требуется: сделать из готовой HTML страницы PDF файл используя средства PHP.
Усложнения: исходная кодировка – UTF-8 (русские, латышские символы одновременно); HTML код с CSS форматированием.
Возможные решения:
- PHP класс dompdf как парсер HTML + pdflib как движок генерации pdf. Выглядит красиво, работает быстро, вот только поддержка unicode в наличии только в платной версии pdflib – 700 евро вынь да полож.
- Другой PHP класс – TCPDF – хоть и поддерживает unicode и работает достаточно быстро, но требует специальной подгонки HTML кода, да и с CSS не дружит.
- Последний и единственно приемлемый из обнаруженных мной вариантов – PHP класс mPDF. Поддержка HTML/CSS на достойном уровне. Возможно встраивание единичных кодовых страниц помимо полных utf-8 шрифтов, что значительно уменьшает размер генерируемого pdf файла (многоступенчатая конвертация шрифтов – ещё то развлечение). Одна только проблема – тормозит жутко.
Есть ещё некоторые надежды на dompdf – в версии 0.5.2 вроде обещают поддержку UTF-8. А ещё, некий умелец вроде присобачил TCPDF к нему в роли движка генерации, что теоретически даст хорошую скорость при хорошей поддержке HTML.
Tags: php
Спасибо за наводки. Мне так и не удалось добиться нормального отображения юникода, сейчас попробую TCPDF, может что и выйдет.
уже давно все нормально работает
http://kharchuk.ru/articles/7-php-programming/9-pdf-generation
http://i-novice.net/generiruem-pdf-s-pomoshhyu-tcpdf/