FPDF.php примерно в 20 раз меньше, чем TCPDF.php? Зачем?

Я знаю, что было много сообщений об этих двух, но подумал, что я обращусь к вопиющему вопросу, который у меня есть. Недавно наш дизайнер отправил мне несколько файлов с TCPDF, которые уже были связаны, потому что его друг сказал, что это "лучше".

В прошлом мы использовали FPDF для всего поколения PDF в PHP, но с самого начала я заметил огромную вопиющую разницу:

Размер файла fpdf.php: 46 КБ

размер файла tcpdf.php: 996 КБ

note: размеры файлов выше имеют фактический файл php, а не PDF.

На самом деле у меня не слишком много терпения, чтобы сесть и посмотреть на все различия между ними, но, похоже, это не стоит для переключения на огромную разницу в файлах. Большинство на SO, похоже, действительно любят TCPDF, но что дает?

Основной вопрос

Почему разница в размере и я должен беспокоиться о том, что мой сервер должен загружать 1 МБ файл сотни или тысячи раз в день против 50 КБ файла, который делает почти то же самое? Я НЕ, говоря, что мой файл PDF больше здесь. Размер файла самого PHP script - это 1MB до 40Kb.

Ответ 1

Я мгновенно сравнил оба источника.

В fpdf почти нет комментариев.

tcpdf имеет еще несколько методов, но также имеет полные блоки phpDoc-подобных комментариев с объяснениями каждого параметра и использования и примеры в формате html перед каждым методом и свойством. я бы сказал, что основная причина большого размера файла.

Ответ 2

Я избегаю TCPDF из-за его недружественной лицензии (вы должны оставить ссылку + логотип неповрежденной в сгенерированных PDF-документах). (Примечание: похоже, лицензия изменилась и теперь стандартная LGPLv3: http://www.tcpdf.org/license.php)

Тем не менее, обычной причиной для большего размера файла являются встроенные шрифты. Вы можете указать шрифты несколькими способами:

  • укажите их и не вставляйте их (минимальный размер, однако текст может отображаться неправильно)
  • полностью внедрить их (FPDF уже поддерживает это)
  • вставлять только те части символов, которые используются

первая опция создает самые маленькие файлы - я думаю, это то, что вы используете с FPDF. Обратите внимание, что ваш PDF файл может отображаться по-разному в разных системах.

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

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

Третий вариант не поддерживался TCPDF несколько лет назад (однако теперь это могло измениться). Как я уже упоминал, он также не поддерживается в основном FPDF - однако он поддерживается в MPDF и TFPDF (который я успешно использовал во многих проектах).

С другой стороны, еще одна причина, по которой я не использую TCPDF, была недружественной и беспощадной позицией г-на. Asani (разработчик) в отличие от сообщества FPDF/MPDF/TFPDF (Oliver, Ian,...) помогает на форуме FPDF. Прошло 2 недели переписки на форуме, прежде чем он признал, что TCPDF не поддерживает частичное встраивание шрифтов. Тем не менее, это лицензия, которая для меня является реальной сделкой.

Итак, чтобы ответить на ваш вопрос: вы можете заставить TCPDF создавать файлы меньшего размера, не вставляя шрифты. Однако основная причина перехода от нее должна быть.:)

Ответ 3

Обратите внимание, что предложение "ВЫ НЕ МОЖЕТЕ УДАЛИТЬ ЛЮБОЕ ИЗВЕЩЕНИЕ АВТОРСКИХ ИЗДАНИЙ TCPDF ИЛИ ССЫЛКИ ИЗ ПОЛУЧЕННЫХ PDF-ДОКУМЕНТОВ" в лицензии TCPDF относится только к ссылке INVISIBLE (метаданные), а не к логотипу заголовка и ссылкам, которые появляются на примеры по умолчанию. Это означает, что документы, созданные с помощью TCPDF, не содержат видимых артефактов, которые мешают вашему оформлению документа.

Затем, чтобы ответить на ваш вопрос, размер документа зависит от новых функций, которые вы используете, которых нет в FPDF. Если вам не нужны некоторые функции и вы хотите уменьшить размер документа, отключите Unicode, используйте только основные шрифты, такие как helvetica, и примените другие советы в http://www.tcpdf.org.

Ответ 4

TCPDF содержит сотни функций больше, чем FPDF, поэтому он больше (и лучше). FPDF - очень примитивная библиотека по сравнению с тем, что TCPDF и что он может сделать.