mPDF — это библиотека PHP, которая генерирует PDF-файлы из HTML в кодировке UTF-8.
Он основан на FPDF и HTML2FPDF (см. КРЕДИТЫ) с рядом усовершенствований. mPDF был написан Яном Бэком и выпущен под лицензией GNU GPL v2.
Если вы просматриваете этот файл на домашней странице репозитория mPDF GitHub или на Packagist, обратите внимание, что ветка репозитория по умолчанию — это development
, которая может отличаться от последней стабильной версии.
PHP >=5.6 <7.3.0
поддерживается для mPDF >= 7.0
PHP 7.3
поддерживается начиная с mPDF v7.1.7
PHP 7.4
поддерживается начиная с mPDF v8.0.4
PHP 8.0
поддерживается начиная с mPDF v8.0.10
PHP 8.1
поддерживается начиная с mPDF v8.0.13
PHP 8.2
поддерживается начиная с mPDF v8.1.3
PHP 8.3
поддерживается начиная с mPDF v8.2.1
PHP 8.4
поддерживается начиная с mPDF v8.2.5
Необходимо загрузить расширения PHP mbstring
и gd
.
Для некоторых дополнительных функций могут потребоваться дополнительные расширения, такие как zlib
для сжатия вывода и встроенных ресурсов, таких как шрифты, bcmath
для генерации штрих-кодов или xml
для преобразования набора символов и обработки SVG.
У mPDF есть некоторые проблемы с получением внешних HTTP-ресурсов с помощью однопоточных серверов, таких как php -S
. Рекомендуется использовать подходящий сервер, например nginx (php-fpm) или Apache.
Рассмотрите возможность поддержки разработки mPDF пожертвованием любой стоимости. Кнопку пожертвования можно найти на главной странице документации.
Официальный метод установки — через композитор и его пакет mpdf/mpdf.
$ composer require mpdf/mpdf
Простейшее использование библиотеки (начиная с версии 7.0) будет следующим:
<?phprequire_once __DIR__ . '/vendor/autoload.php';$mpdf = new MpdfMpdf();$mpdf->WriteHTML('<h1>Привет, мир!</h1>');$mpdf->Output();
Это приведет к выводу встроенного PDF-файла в браузер как тип контента application/pdf
.
Все директивы конфигурации могут быть установлены параметром $config
конструктора.
Рекомендуется установить собственный временный каталог через переменную конфигурации tempDir
. Каталог должен иметь разрешения на запись (рекомендуется режим 775
) для пользователей, использующих mPDF (обычно cli
, webserver
, fpm
).
Предупреждение: mPDF очистит старые временные файлы во временном каталоге. Выберите путь, предназначенный только для mPDF.
<?php$mpdf = новый MpdfMpdf(['tempDir' => __DIR__ . '/tmp']);
По умолчанию временный каталог будет находиться внутри каталога поставщика и будет иметь разрешения на запись из скрипта композитора post_install
.
Дополнительную информацию о пользовательском временном каталоге см. в примечании о папке для временных файлов в разделе «Установка и настройка» руководства.
Если у вас возникли проблемы, пожалуйста, прочтите раздел об устранении неполадок в руководстве.
mPDF в целом является довольно устаревшим программным обеспечением. В настоящее время доступны лучшие альтернативы, хотя и не написанные на PHP.
Используйте mPDF, если вы не можете использовать подход, отличный от PHP, для создания PDF-файлов или если вы хотите использовать некоторые преимущества mPDF по сравнению с браузерным подходом — обработка цвета, предварительная печать, поддержка штрих-кодов, верхние и нижние колонтитулы, нумерация страниц, оглавление и т. д. Но помните, что может потребоваться шаблон HTML/CSS, адаптированный для mPDF.
Если вам нужна современная поддержка CSS, зеркально отображающая существующие HTML-страницы в PDF, используйте Headless Chrome.
mPDF по-прежнему будет обновляться для расширения некоторых внутренних возможностей и поддержки новых версий PHP, но улучшенная и/или новая поддержка CSS, скорее всего, не будет реализована.
Онлайн-руководство доступно по адресу https://mpdf.github.io/.
Для общих вопросов или устранения неполадок используйте «Обсуждения».
Вы также можете использовать тег mpdf в Stack Overflow, поскольку база пользователей StackOverflow с большей вероятностью ответит вам своевременно.
Прежде чем отправлять вопросы и запросы на включение, пожалуйста, прочтите файл CONTRIBUTING.md.
Модульное тестирование mPDF выполняется с использованием PHPUnit.
Для начала запустите composer install
из командной строки, находясь в корневом каталоге mPDF (сначала вам понадобится установить композитор).
Чтобы выполнить тесты, запустите composer test
из командной строки, находясь в корневом каталоге mPDF.
Мы будем очень признательны за любую помощь в написании модульных тестов для mPDF. Если вы хотите помочь, обратите внимание, что любой файл PHP, расположенный в каталоге /tests/
будет автоматически загружен при модульном тестировании.