Создание PDF на лету, с кирилицей и в UTF

2008/7/24 16:25 4 gpl pdf php 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!

Комментарии:

2008/7/24 17:9
О! Тоже буквально неделю-две назад парился с сабжем. Различные "по-русски о настройке" - лишь усугубляли ситуацию. Пока на сайте fpdf не нашел приписку в конце, после описания всех ужасных процедур -
можно юзать http://fpdf.fruit-lab.de/ Загружаем ttf, выбираем cp1251, оп - готово.

tcpdf - попробую.

2008/7/24 17:28
kikaha

kikaha
ну, мне cp1251 не катит, а нужный мне utf-8 fpdf не прожевывает до конца, так что выбор у меня один

2008/7/24 18:5
А если реально к блогам добавлять какой-нить метатег в head со ссылкой на аватар. Клево бы было, и граватары бы не были нужны. Это я про фавиконку под jeka911.

2008/7/24 19:2
kikaha

kikaha
ну, граватар становится стандартом де-факто, да и потом, это очень удобно для очень средних умов - раз закинул картинко - и кросавчег. да, есть openid, но это же каждый раз авторизовываться, пароль помнить (страшно сказать) надо...

и потом, у меня здесь именно блог - то есть дневничок, на который попадают случайные люди. прилетел с поисковика, клюнул и улетел. комьюнити нет и не предвидится (иншалла!), поэтому система авторизации как таковая нужна читателям как зайцу стоп-сигнал. спам остается в отстойнике, если умный человек чего напишет - я, отмодерировав, на солнышко его :) а умного от дурака отличить не сложно, дураки тут в форму коммента умудряются весь рекламный проспект своей говнофирмы втулить, ну и флаг им в руки!
p.s. а метатеги есть такие - погугли Pavatar
Добавить комментарий: