Создание PDF на лету, с кирилицей и в UTF
Знаю, звучит как малоизвестное сексуально извращение, да так оно и было по сути, впрочем, по порядку:
Заказчик попросил меня сделать загрузку .pdf файлов на некоторых страницах сайта, ничего сложного. Но, поскольку эти документы должны были дублировать содержимое страницы, я подумал - а зачем 2 раза за рыбу деньги? Человек один раз поработал, набрал текст, сохранил. Потом повторил процедуру с .pdf документом, сохранил, загрузил. А через месяц текст меняется - все заново?
Нет, ответил разум возмущенный, пусть за нас работает сервер, за него деньги плачены! Ищем GPL php скрипт, позволяющий генерировать PDF на сайте. Результаты небогатые, однако достойные - FPDF - бесплатный php класс для создания .pdf документов (вот тут подробно и по-русски о настройке).
Но есть одна загвоздка - класс FPDF наотрез отказывается работать с кодировкой проекта utf-8, а менять кодировку не хотелось, да и появился спортивный интерес. Хорошо, роем дальше - UFPDF - модификация этого же класса для работы с UTF. Все здорово, и демо работает - но с генерацией AFM файла метрики для кириллических шрифтов возникли проблемы - готовый документ выдает унылые квадратики вместо текста. Перегуглил все что можно, читал на монгольском и болгарском - нет ответа. Хороший совет по генерации AFM есть на sources.ru (этот момент очень невнятно описан в офф. документации, а зря) - но и он не исправил ситуацию.
Следующая кандидатура - TCPDF - судя по всему еще одна модификация fpdf, сработала на отлично! Никаких дополнительных настроек не потребовалось, в комплекте идут пачка уже сгенерированных UTF шрифтов и большое количество php скриптов - образцов для генерации .pdf документов на все случаи жизни. Объем для загрузки большой, но вовсе необязательно тащить все это на рабочий сервер - образцы с документацией можно удалить, как и все ненужные шрифты - и вуаля!
Enjoy!