Содержание
Автоматическое создание файлов 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
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
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, поделитесь ею с сообществом в поле для комментариев внизу, получайте удовольствие!