Какой из них лучший PDF-API для PHP? [закрыто]

110

Какой из них лучший PDF-API для PHP?

coderex
источник
6
этот другой вопрос, похоже, сейчас удален из StackOverflow.
rineez 07
Я знаю его старый вопрос, но я бы предпочел MDF, он может обрабатывать любой сложный html, за исключением нескольких моментов, о которых mdf уже сказал на mpdf1.com/mpdf/limitations
dev.meghraj
Здесь вы можете увидеть хорошее сравнение между mPDF и TCPDF
Pmpr,

Ответы:

53

Лично я предпочел бы использовать tcpdf, который является усовершенствованной и поддерживаемой версией fpdf.

gpilotino
источник
12
вы не указали причины - одна огромная проблема - это поддержка Unicode в tcpdf, которой fpdf совершенно не хватает. tcpdf также все еще активно поддерживается. и у него также есть достойная архитектура OO. Слово мудрым: fpdf - это старая вещь, которую заменил tcpdf.
zanlok
2
tcpdf не хватает важных функций, таких как встраивание шрифтов и подмножества (важно для азиатских языков).
velcrow
2
Я только что проверил веб-сайт tcpdf, и, похоже, он поддерживает подмножество шрифтов и встраивание. см. аргумент подмножества в методе SetFont tcpdf.org/fonts.php
Nerrve
1
У tcpdf были некоторые проблемы, когда я использовал шрифты urdu unicode.
rineez 07
1
Если вы называете один класс с 24k строками кода «достойным OO», вы должны быть высоки. Проверьте мою реорганизованную версию FPDF для фактического ООП: github.com/bubach/PdfBuilder
Christoffer Bubach
39

С сайта mpdf : «mPDF - это класс PHP, который генерирует файлы PDF из HTML в кодировке UTF-8. Он основан на FPDF и HTML2FPDF с рядом улучшений».

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

велюр
источник
31

Это всего лишь краткий обзор того, как fPDF противостоит tcPDF в области производительности при выполнении большинства основных функций каждой библиотеки.

ТЕСТ СКОРОСТИ

17,0366 секунды для обработки 2000 файлов PDF с помощью fPDF || 79,5982 секунды для обработки 2000 файлов PDF с помощью tcPDF

ПРОВЕРКА РАЗМЕРА ФАЙЛА (в байтах)

788 fPDF || 1860 тонн в сутки

Используемый код был максимально идентичным и отображает просто чистый PDF-файл без текста. Также используется последняя версия каждой библиотеки по состоянию на 22 июня 2011 г.

Дан
источник
5
Существует ряд улучшений производительности, которые могут значительно улучшить скорость TCPDF (я перешел с 1 минуты на создание одного файла примерно до 0,5 секунды): tcpdf.org/performances.php
Дэн Смарт
1
Эти «улучшения» будут одинаково хорошо работать с FPDF и не очень помогут в тестировании. TCPDF составляет около 24 000 строк кода, а FPDF - около 2400 строк кода.
Christoffer Bubach
Обновите ссылку на @DanSmart
Альберт,
22

Я нашел mpdf лучше, чем tcpdf с точки зрения рендеринга html. Он может намного лучше разбирать стили css и создавать PDF-файлы, очень похожие на исходный HTML.

mpdf даже поддерживает такие вещи css, как border-radius, gradient и т. д.

Я удивлен, узнав, почему о mpdf так мало говорят, когда речь идет о преобразовании HTML в PDF.

Ознакомьтесь с примерами здесь http://www.mpdf1.com/mpdf/index.php?page=Examples

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

Серебряная луна
источник
2
Ссылка не работает. Это может быть новая ссылка: mpdf1.com/mpdf/index.php?page=Examples
Стефан
Обновление за август 2019 года: используйте это для справки mpdf.github.io
CodeJunkie
К сожалению, mpdf не очень хорошо справляется с большими ячейками таблицы. Как только контент превышает страницу, он начинает уменьшаться, что делает его бесполезным для любого проекта с большими таблицами. Помимо этого; он прост в использовании, эффективен и хорошо документирован.
zumek
13

Попробуйте TCPDF . Я считаю это лучшим пока.

Для получения подробного руководства по использованию двух самых популярных классов генерации PDF: TCPDF и FPDF ... перейдите по этой ссылке: PHP: легко создавать PDF на лету с TCPDF и FPDF

Надеюсь, поможет.

Мукеш Чапагейн
источник
Иногда вылетает в Firefox при сбросе соединения. Однако не проверял с другими браузерами.
kta
11

Лично я предпочитаю использовать dompdf для простых страниц PDF, поскольку это очень быстро. вы просто скармливаете ему источник HTML, и он сгенерирует требуемую страницу.

однако для более сложных проектов я предпочитаю более классический pdflib, который доступен как pecl для PHP. он имеет больший контроль над дизайном и позволяет создавать более сложные проекты, такие как идеальные формы.

Майк Валстар
источник
Но есть минусы использования dompdf в том, что он не работает, если вы хотите создать несколько PDF-файлов одновременно или в цикле.
hmjha 05
5

http://sourceforge.net/projects/html2ps/ - лучший вариант , если вам нужны совместимые css и 3c.

если вы можете установить программное обеспечение на свой сервер, я предлагаю вам использовать http://wkhtmltopdf.org/ .

Также есть модуль drupal, использующий wkhtmltopdf :)

PHP требует много ресурсов для преобразования html в pdf, imho, php - неподходящий язык для этого (если вы ожидаете конвертировать большое количество обложек или больших файлов)

Strae
источник
Я поддерживаю wkhtmltopdf, но особенно при использовании такого метода, как использование внешнего конвертера, PHP не виноват в потере скорости. Я бы подумал, что использование wkhtmltopdf или prince из asp.net будет практически таким же быстрым, как и из PHP (хотя я использую asp.net). Конечно, PHP не контролирует все процессы, как .net, но я готов поспорить, что он по-прежнему работает достаточно быстро для большинства проектов
Джоэл Пелтонен
4

Zend_Pdf от Zend Framework действительно хорош. Он находится на одном уровне с pdflib с точки зрения контроля вывода и сложности и более переносим, ​​потому что это чистое решение php. Тем не менее, он медленнее и использует больше памяти, чем pdflib. Модули Pecl всегда более эффективны, чем решения на php.

DOMPdf - это самый простой способ быстро создать PDF-файл. Как сказал Майк, скармливайте его html, и он выводит pdf. Под капотом у него есть возможность использовать r & ospdf или pdflib в качестве движка рендеринга.

txyoji
источник
1
Zend PDF имеет значительные проблемы (проблемы с производительностью при встраивании PNG с прозрачными пленками) [ framework.zend.com/issues/browse/ZF-3392] . Также Zend PDF - очень плохой инструмент для изменения метаданных в сторонних PDF-файлах, потому что он не может обрабатывать ничего, близкое к полному стандарту PDF, и дает сбой. Однако, если вам не нужны эти функции, Zend PDF работает довольно хорошо и имеет хорошую поддержку UTF-8.
chrishiestand
3

Я лично генерирую XSL: FO из PHP и использую Apache FOP для преобразования его в PDF. Не родное для PHP решение, тоже не очень эффективное, но оно хорошо работает, даже если вам нужно сгенерировать PDF с очень сложными макетами.

Лукаш Лалински
источник