mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성하는 PHP 라이브러리입니다.
이는 FPDF 및 HTML2FPDF(CREDITS 참조)를 기반으로 하며 여러 가지 향상된 기능을 제공합니다. mPDF는 Ian Back이 작성했으며 GNU GPL v2 라이센스에 따라 배포됩니다.
mPDF GitHub 리포지토리 홈페이지 또는 Packagist에서 이 파일을 보고 있는 경우 기본 리포지토리 브랜치는 development
이므로 마지막 안정 릴리스와 다를 수 있습니다.
PHP >=5.6 <7.3.0
은 mPDF >= 7.0
에서 지원됩니다.
PHP 7.3
은 mPDF v7.1.7
부터 지원됩니다.
mPDF v8.0.4
부터 PHP 7.4
지원됩니다.
mPDF v8.0.10
부터 PHP 8.0
지원됩니다.
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
또는 문자 세트 변환 및 SVG 처리를 위한 xml
과 같은 일부 고급 기능에는 추가 확장이 필요할 수 있습니다.
mPDF는 php -S
와 같은 단일 스레드 서버를 사용하여 외부 HTTP 리소스를 가져오는 데 몇 가지 문제가 있습니다. 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>Hello world!</h1>');$mpdf->Output();
이렇게 하면 PDF 인라인이 브라우저에 application/pdf
콘텐츠 유형으로 출력됩니다.
모든 구성 지시문은 생성자의 $config
매개변수로 설정할 수 있습니다.
tempDir
구성 변수를 통해 자신만의 임시 디렉터리를 설정하는 것이 좋습니다. mPDF(일반적으로 cli
, webserver
, fpm
)를 사용하는 사용자에 대한 디렉토리에는 쓰기 권한(모드 775
권장)이 있어야 합니다.
경고: mPDF는 임시 디렉터리의 오래된 임시 파일을 정리합니다. mPDF 전용 경로를 선택하세요.
<?php$mpdf = new MpdfMpdf(['tempDir' => __DIR__ . '/tmp']);
기본적으로 임시 디렉터리는 공급업체 디렉터리 내에 있으며 post_install
작성기 스크립트의 쓰기 권한을 갖습니다.
사용자 정의 임시 디렉터리에 대한 자세한 내용은 설명서의 설치 및 설정 섹션에서 임시 파일용 폴더에 대한 참고 사항을 참조하세요.
문제가 있는 경우 설명서의 문제 해결 섹션을 읽어보세요.
mPDF는 전체적으로 꽤 오래된 소프트웨어입니다. 요즘에는 PHP로 작성되지는 않았지만 더 나은 대안을 사용할 수 있습니다.
PHP가 아닌 접근 방식을 사용하여 PDF 파일을 생성할 수 없거나 브라우저 접근 방식에 비해 mPDF의 일부 이점(색상 처리, 사전 인쇄, 바코드 지원, 머리글 및 바닥글, 페이지 번호 매기기, TOC 등)을 활용하려는 경우 mPDF를 사용하십시오. 그러나 mPDF에 맞춰진 HTML/CSS 템플릿이 필요할 수도 있다는 점에 유의하세요.
기존 HTML 페이지를 PDF로 미러링하는 최첨단 CSS 지원을 찾고 있다면 헤드리스 Chrome을 사용하세요.
mPDF는 일부 내부 기능을 향상하고 최신 버전의 PHP를 지원하기 위해 계속 업데이트될 예정이지만 더 나은 및/또는 최신 CSS 지원은 구현되지 않을 가능성이 높습니다.
온라인 매뉴얼은 https://mpdf.github.io/에서 보실 수 있습니다.
일반적인 질문이나 문제 해결이 필요하면 토론을 이용하세요.
StackOverflow 사용자 기반이 적시에 답변할 가능성이 높으므로 Stack Overflow에서 mpdf 태그를 사용할 수도 있습니다.
이슈 및 풀 요청을 제출하기 전에 CONTRIBUTING.md 파일을 읽어보세요.
mPDF의 단위 테스트는 PHPUnit을 사용하여 수행됩니다.
시작하려면 mPDF 루트 디렉터리에 있는 동안 명령줄에서 composer install
실행하세요(먼저 작곡가를 설치해야 합니다).
테스트를 실행하려면 mPDF 루트 디렉터리에 있는 동안 명령줄에서 composer test
실행하세요.
mPDF에 대한 단위 테스트 작성에 도움을 주시면 감사하겠습니다. 도움을 주고 싶다면 단위 테스트 시 /tests/
디렉터리에 있는 모든 PHP 파일이 자동으로 로드된다는 점을 참고하세요.