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
, F
및 S
옵션으로 표시됩니다. 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
, Name
및 Address
테이블 헤더가 있는 테이블을 생성합니다. 그런 다음 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.json
및 composer.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 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