Размер файла FPDF.php в ~ 20 раз меньше размера файла TCPDF.php?Зачем? - PullRequest
10 голосов
/ 15 сентября 2011

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

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

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

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

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

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

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

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

Ответы [ 4 ]

5 голосов
/ 16 сентября 2011

Я избегаю 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 создавать файлы меньшего размера, не встраивая шрифты. Однако основная причина перехода с нее должна быть лицензия. :) 1030 * *

4 голосов
/ 17 сентября 2011

Мне потребовалось мгновение, чтобы сравнить оба источника.

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

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

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

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

0 голосов
/ 26 сентября 2011

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

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

...