Я использовал комбинацию 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 или же порекомендовать более быструю альтернативу?
Спасибо за ваше время.
В последней версии TCPDF алмоханад был заменен шрифтами 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 для нового руководства по шрифтам.
Попробуйте mPDF в качестве альтернативы, он очень прост в использовании и удивительно поддерживает языки RTL, такие как арабский, иврит, фарси / персидский, урду и пушту. И это пример демонстрирует это.