Топ 5: Лучшие библиотеки генерации PDF с открытым исходным кодом для PHP

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

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

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

Эта вершина основана на различных аспектах, таких как простота их реализации, варианты использования, пользователи библиотеки, функции и состояние разработки.

5. FPDF

Примеры

FPDF — это PHP-класс, который позволяет генерировать PDF-файлы на чистом PHP, то есть без использования библиотеки PDFlib. F от FPDF означает бесплатно: вы можете использовать его для любого вида использования и изменять его в соответствии со своими потребностями.

У FPDF есть и другие преимущества: функции высокого уровня, основными его функциями являются:

  • Выбор единицы измерения, формата страницы и полей.
  • Управление колонтитулами и страницами.
  • Автоматический разрыв страницы.
  • Автоматический разрыв строки и выравнивание текста.
  • Поддержка изображений (JPEG, PNG и GIF).
  • Цвета.
  • Ссылки.
  • TrueType, Type1 и поддержка кодировки.
  • Сжатие страниц.

FPDF не требует расширения (кроме Zlib для включения сжатия и GD для поддержки GIF). Последняя версия требует как минимум PHP 5.1.

В следующем фрагменте показан базовый PDF-файл, созданный с помощью FPDF:

AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>

4. МПДФ

mPDF — это класс PHP, который генерирует PDF-файлы из HTML-кода в кодировке UTF-8. Он основан на FPDF а также HTML2FPDF , с рядом улучшений. mPDF был написан Ian Back и выпущен под Лицензия GNU GPL v2.

Перед тем, как начать его использовать, мы рекомендуем вам прочитать документацию по адресу https://mpdf.github.io/.

В следующем фрагменте показан базовый файл PDF после установки композитора с помощью mPDF:

WriteHTML('Hello World

My first PDF with mPDF

'); // Output a PDF file directly to the browser $mpdf->Output(); ?>

3. DOMPDF

Github

Dompdf — это (в основном) совместимый с CSS 2.1 макет HTML и движок рендеринга, написанный на PHP. Это средство визуализации, основанное на стилях: оно будет загружать и читать внешние таблицы стилей, встроенные теги стилей и атрибуты стиля отдельных элементов HTML. Он также поддерживает большинство презентационных атрибутов HTML.

Характеристики

  • Обрабатывает большинство свойств CSS 2.1 и несколько свойств CSS3, включая @import, @media правила @ страницы
  • Поддерживает большинство презентационных атрибутов HTML 4.0
  • Поддерживает внешние таблицы стилей, локальные или через http / ftp (через fopen-wrappers)
  • Поддерживает сложные таблицы, в том числе строки пролеты колонн, раздельные свернутые граничные модели, индивидуальный стиль ячейки
  • Поддержка изображений (GIF, PNG (8, 24 и 32 бит с альфа-каналом), BMP JPEG)
  • Отсутствие зависимости от внешних библиотек PDF благодаря классу ROS PDF
  • Встроенная поддержка PHP
  • Базовая поддержка SVG

Требования

  • PHP версии 5.3.0 или выше
  • Расширение DOM
  • Расширение GD
  • Расширение MBString
  • PHP-купели Пб
  • PHP-SVG Пб

рекомендации

  • OPcache (OPcache, XCache, APC и т. Д.): Повышает производительность
  • Расширение IMagick или GMagick: улучшает производительность обработки изображений

В следующем фрагменте показано, как создать простой PDF-файл и создать прямую загрузку с помощью Dompdf:

loadHtml('DOMPDF Demo

Hello World !

'); // (Optional) Setup the paper size and orientation $dompdf->setPaper('A4', 'portrait'); // Render the HTML as PDF $dompdf->render(); // Output the generated PDF to Browser $dompdf->stream();

2. Снаппи (wkhtmltopdf)

Github Snappy Library | Github wkhtmltopdf

Snappy — это библиотека PHP5, позволяющая создавать эскизы, снимки или PDF-файлы с URL-адреса или HTML-страницы. Он использует превосходные wkhtmltopdf и wkhtmltoimage на основе webkit, доступные для OSX, Linux, Windows. Вам нужно будет скачать wkhtmltopdf 0.12.x, чтобы использовать Snappy..

wkhtmltopdf и wkhtmltoimage — это инструменты командной строки с открытым исходным кодом (LGPLv3) для рендеринга HTML в PDF и различные форматы изображений с использованием механизма визуализации Qt WebKit. Они работают полностью «без головы» и не требуют отображения или обслуживания дисплея.

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

В следующем фрагменте показан базовый PDF-файл из HTML с использованием wkhtmltopdf в Windows с домашней страницей Github:

getOutput('http://www.github.com');

1. TCPDF

Github | домашняя страница

TCPDF — это библиотека PHP для простого и быстрого создания PDF-документов. Он поддерживает настройку и множество ключевых функций при работе с созданием файлов PDF.

Эта библиотека поддерживает шрифты Unicode и активно поддерживается Никола Асуни в хранилище Github.

Это имеет расширение коллекция примеров и готовых к тестированию фрагментов на официальной домашней странице. TCPDF имеет в качестве основных функций:

  • Внешние библиотеки не требуются для основных функций.
  • все стандартные форматы страниц, пользовательские форматы страниц, настраиваемые поля и единицы измерения.
  • UTF-8 Unicode и языки справа налево.
  • Шрифты TrueTypeUnicode, OpenTypeUnicode v1, TrueType, OpenType v1, Type1 и CID-0.
  • подмножество шрифтов.
  • методы для публикации некоторого кода XHTML + CSS, Javascript и Forms.
  • изображения, графика (геометрические фигуры) и методы преобразования.
  • изначально поддерживает изображения JPEG, PNG и SVG, все изображения, поддерживаемые GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) и все изображения, поддерживаемые с помощью ImagMagick (http://www.imagemagick.org/script/formats.php)
  • Штрих-коды 1D и 2D: КОД 39, ANSI MH10.8M-1983, USD-3, 3 из 9, КОД 93, USS-93, Стандарт 2 из 5, Чередование 2 из 5, КОД 128 A / B / C, 2 и Расширение на 5 цифр на основе UPC, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (код клиента из 4 штатов Royal Mail), CBC (штрих-код клиента), KIX (индекс Klant — Индекс клиента), интеллектуальный почтовый штрих-код, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-код, PDF417.
  • Профили JPEG и PNG ICC, оттенки серого, RGB, CMYK, плашечные цвета и прозрачные пленки.
  • автоматическое управление колонтитулами и страницами.
  • шифрование документов до 256 бит и сертификаты цифровых подписей.
  • транзакции для отмены команд.
  • PDF аннотации, включая ссылки, текстовые и файловые вложения.
  • режимы рендеринга текста (заливка, обводка и обрезка).
  • режим нескольких столбцов.
  • регионы страниц без записи.
  • закладки, названные направления и оглавление.
  • перенос текста.
  • растяжение и интервал текста (отслеживание).
  • автоматический разрыв страницы, разрыв строки и выравнивание текста, включая выравнивание.
  • автоматическая нумерация страниц и групп страниц.
  • перемещать и удалять страницы.
  • Сжатие страницы (требуется расширение php-zlib).
  • Шаблоны XOBject.
  • Слои и видимость объекта.
  • Поддержка PDF / A-1b.

Следующий пример, как отобразить HTML как PDF с TCPDF:

SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Our Code World');
$pdf->SetTitle('Example Write Html');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// add a page
$pdf->AddPage();
$html = '

PDF Example

Welcome to the Jungle

'; $pdf->writeHTML($html, true, false, true, false, ''); // add a page $pdf->AddPage(); $html = 'Hey'; // output the HTML content $pdf->writeHTML($html, true, false, true, false, ''); // reset pointer to the last page $pdf->lastPage(); //Close and output PDF document $pdf->Output('example_006.pdf', 'I');

TCPDF в первую очередь, почему? Теоретически, первое место должно занимать wkhtmltopdf, так как он использует webkit для визуализации вашего HTML и, вероятно, будет более полезным для визуализации таких вещей, как canvas, SVG и т. Д. Однако вы должны знать, что не каждый разработчик может включить двоичные файлы (приложение или исполняемые файлы) на своих проектах или наслаждайтесь привилегиями делать с сервером все, что он хочет, именно тогда TCPDF становится первым вариантом для большинства разработчиков.

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

Если вам известна еще одна замечательная PHP-библиотека для создания PDF, поделитесь ею с сообществом в поле для комментариев внизу, получайте удовольствие!

Ссылка на основную публикацию
Adblock
detector