PHP에서 PDF 만들기

Subodh Poudel 2023년1월30일
  1. mpdf 라이브러리를 사용하여 PHP에서 PDF 생성
  2. dompdf 라이브러리를 사용하여 PHP에서 PDF 생성
PHP에서 PDF 만들기

이 기사에서는 PHP에서 PDF를 만드는 방법을 소개합니다. 데이터베이스에서 데이터를 검색하여 PDF에 넣고 다운로드합니다.

mpdf 라이브러리를 사용하여 PHP에서 PDF 생성

외부 라이브러리 mpdf를 사용하여 PHP로 PDF를 만들 수 있습니다. 데이터베이스에서 데이터를 검색하고 PDF로 저장하고 PDF를 다운로드할 수 있습니다. 이 라이브러리를 사용하여 HTML 문서에서 PDF를 만들 수 있습니다. HTML 문서는 UTF-8로 인코딩되어야 합니다. 데이터베이스에서 HTML 형식으로 PDF에 추가할 데이터를 검색할 수 있습니다. 라이브러리를 사용하려면 프로젝트 디렉토리에서 composer require mpdf/mpd 명령으로 다운로드할 수 있습니다. 이 명령은 프로젝트 디렉토리에 mpdf 라이브러리를 설치합니다. vendor 파일이 생성되고 vendor 폴더 안에 있는 autoload.php 파일을 포함하기 위해 require() 함수를 사용해야 합니다. 라이브러리가 설치된 디렉토리에 쓰기 권한이 있어야 합니다.

Mpdf() 생성자에서 개체를 만들고 WriteHTML()output()과 같은 메서드를 사용하여 PDF를 만듭니다. PDF를 출력할 수 있는 다양한 모드가 있습니다. output() 메소드의 두 번째 매개변수에서 모드를 지정할 수 있습니다. 다른 모드는 D, I, FS 옵션으로 표시됩니다. D 옵션은 스크립트가 실행된 후 PDF를 강제로 다운로드합니다. I 옵션은 스크립트가 실행된 후 브라우저에 PDF를 표시합니다. 한편 F 옵션은 PHP 파일과 관련된 폴더에 PDF 저장을 다운로드합니다. 마지막으로 F 옵션은 output() 메서드가 변수에 할당된 경우에만 브라우저에서 pdf를 출력합니다.

예를 들어 Person이라는 테이블이 포함된 phprow라는 데이터베이스가 있습니다. Persons 테이블에는 다음 데이터가 포함되어 있습니다.

+----------+----------+-----------+
| PersonID | Name     | Address   |
+----------+----------+-----------+
| 22       | Harry M  | England   |
| 32       | Paul P   | France    | 
+----------+----------+-----------+

먼저 require() 함수를 사용하여 vender/autoload.php 파일을 포함합니다. 그런 다음 데이터베이스 연결을 생성 및 설정하고 SQL 쿼리를 실행하여 데이터베이스에서 데이터를 선택하고 $html 변수에 테이블을 생성합니다. 사용 . 연산자를 사용하여 $html 변수를 테이블 본문과 연결합니다. ID, NameAddress 테이블 헤더가 있는 테이블을 생성합니다. 그런 다음 Persons 테이블에서 위에 표시된 데이터를 검색하여 테이블을 채웁니다.

예제 코드:

require('vendor/autoload.php');
$con=mysqli_connect('localhost','root','','phprow');
$res=mysqli_query($con,"select * from Persons");
if(mysqli_num_rows($res)>0){
    $html='<table>';
    $html.='<tr><td>ID</td><td>Name</td><td>Address</td>';
    while($row=mysqli_fetch_assoc($res)){
        $html.='<tr><td>'.$row['PersonID'].'</td><td>'.$row['Name'].'</td><td>'.$row['Address'].'</td></tr>';
    }
    $html.='</table>';
}

위의 예에서 데이터베이스의 데이터가 있는 테이블을 $html 변수에 저장했습니다. .를 사용했습니다. 모든 테이블 요소를 연결하는 연산자입니다. 그래서 우리는 PDF로 쓸 준비가 된 HTML 문서를 만들었습니다.

다음으로 $mpdf라는 변수를 만듭니다. new 키워드를 사용하여 Mpdf() 생성자의 개체를 변수에 할당합니다. $html 변수를 개체와 함께 매개변수로 사용하여 WriteHTML() 함수를 호출합니다. 그런 다음 다른 변수 $file을 만들어 PDF를 저장합니다. files/time() 함수로 연결하고 다시 .pdf로 연결하여 파일 이름을 만듭니다. $file 변수에 저장합니다. 마지막으로 $file을 첫 번째 매개변수로 사용하고 I 옵션을 두 번째 매개변수로 사용하여 output() 함수를 호출합니다.

따라서 데이터베이스에서 데이터를 검색하고 해당 데이터로 PDF를 만들었습니다. 아래 예는 files 폴더 내에 .pdf 확장자를 가진 현재 시간 이름의 파일을 생성합니다. 스크립트가 실행된 후 PDF가 브라우저에 표시됩니다. 브라우저에서 PDF를 다운로드할 수 있습니다.

예제 코드:

$mpdf=new \Mpdf\Mpdf();
$mpdf->WriteHTML($html);
$file='files/'.time().'.pdf';
$mpdf->output($file,'I');

dompdf 라이브러리를 사용하여 PHP에서 PDF 생성

dompdf 라이브러리는 PHP에서 PDF를 생성하고 다운로드하는 옵션이기도 합니다. HTML을 PDF에 로드할 수 있습니다. 이 라이브러리는 mpdf 라이브러리와 매우 유사합니다. 방법만 다를 뿐입니다. loadHtml(), render()stream()과 같은 메서드를 사용합니다. composer require dompdf/dompdf 명령을 사용하여 라이브러리를 작업 디렉토리에 다운로드해야 합니다. composer.jsoncomposer.lock 파일과 함께 첫 번째 방법과 같이 vendor 폴더를 생성합니다.

예를 들어 vendor/autoload.php가 프로그램 코드의 첫 번째 줄로 필요합니다. 그런 다음 use 키워드를 작성하여 Dompdf 클래스를 use Dompdf/Dompdf로 가져옵니다. 위의 방법과 동일한 HTML 테이블을 사용하여 PDF를 로드할 수 있습니다.

require 'vendor/autoload.php';
use Dompdf\Dompdf;

변수 $html에 HTML을 저장한 후 다른 변수 $dompdf를 생성하여 Dompdf 클래스의 객체를 생성합니다. 그런 다음 $html을 매개변수로 사용하여 loadHtml() 메서드를 호출합니다. 다음으로 render() 함수를 호출한 다음 $dompdf 객체를 사용하여 stream() 함수를 호출합니다.

아래 예에서는 첫 번째 방법과 같이 표를 사용하여 PDF를 만듭니다. render() 메소드는 HTML을 PDF 파일로 렌더링하고 stream() 메소드는 렌더링된 HTML을 브라우저에 출력합니다. 따라서 PHP의 dompdf 라이브러리를 사용하여 PDF를 만들 수 있습니다.

예제 코드:

$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->render();
$dompdf->stream();
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

관련 문장 - PHP PDF