TCPDF очень медленная генерация динамического арабского PDF - PullRequest
1 голос
/ 22 февраля 2011

Я использую комбинацию nusoap и TCPDF для проверки связи с веб-службой и динамического заполнения PDF-файла содержимым.

Сам PDF (на английском языке) занимает около 8-9 секунд, чтобы заполнить около 36 страниц, некоторые из которых включают гистограммы. Я также хотел бы отметить, что из-за формата, в котором получены данные, я использую «writeHTML» для представления их в PDF.

Моя главная проблема возникла, когда я начал пытаться создавать те же PDF-файлы с арабскими переводами. Я использую шрифт «Almohanad», как описано в примерах TCPDF, и время обработки возросло до 2 минут.

Я пытался использовать следующее исправление (которое кэширует файлы шрифтов): http://www.bitrealm.net/2010/08/tcpdf-is-slow-here-is-the-solution/

Увы, похоже, что он не работает (файл ".CACHED" не появился, хотя я предоставил файлу tcpdf полные права пользователя)! Я должен упомянуть, что мне нужно было вставить ob_clean () после раздела «require_once» моего php-файла, чтобы избежать следующей ошибки:

"Ошибка TCPDF: некоторые данные уже выведены, не удается отправить PDF"

Я проверил свои php-файлы на наличие пробелов и не нашел ничего неуместного.

В заключение, может ли кто-нибудь помочь мне ускорить создание арабского PDF с помощью TCPDF, или порекомендовать более быструю альтернативу?

Спасибо за ваше время.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2012

Попробуйте mPDF в качестве альтернативы, он очень прост в использовании и удивительно поддерживает языки RTL, такие как арабский, иврит, фарси / персидский, урду и пушту. И это пример демонстрирует это.

0 голосов
/ 02 октября 2011

В последней версии TCPDF almohanad был заменен шрифтами aefurat и aealarabiya.

Последняя версия TCPDF автоматически конвертирует шрифты в формат TCPDF с помощью метода addTTFfont (), поэтому вы можете легко добавлять новые арабские шрифтыкак в примере ниже:

// convert TTF font to TCPDF format and store it on the fonts folder
$fontname = $pdf->addTTFfont('/path-to-font/FontName.ttf', 'TrueTypeUnicode', '', 96);
// use the font
$pdf->SetFont($fontname, '', 14, '', false);

Также проверьте сайт http://projects.arabeyes.org для альтернативных арабских шрифтов и сайт http://www.tcpdf.org для руководства по новым шрифтам.

...