PHP
wkhtmltopdf php 샘플코드
꾸보이
2023. 5. 9. 13:55
728x90
<?php
$html = '<html><body><h1>Hello, World!</h1></body></html>';
$filename = 'example.pdf';
// Set path to wkhtmltopdf executable
// On Windows: $path_to_wkhtmltopdf = 'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe';
$path_to_wkhtmltopdf = '/usr/local/bin/wkhtmltopdf';
// Execute wkhtmltopdf command
$cmd = "$path_to_wkhtmltopdf - -q $filename";
$proc = proc_open($cmd, array(0 => array('pipe', 'r'), 1 => array('file', $filename, 'w'), 2 => array('pipe', 'w')), $pipes);
if (is_resource($proc)) {
fwrite($pipes[0], $html);
fclose($pipes[0]);
$output = stream_get_contents($pipes[2]);
fclose($pipes[2]);
$return_value = proc_close($proc);
}
if (file_exists($filename)) {
// PDF file has been created
} else {
// PDF file was not created - handle error
}
?>
이 코드에서는 $html 변수에 HTML 코드가 포함되어 있으며, $filename 변수에 PDF 파일의 이름을 지정합니다.
먼저 wkhtmltopdf 실행 파일의 경로를 설정합니다. 윈도우에서는 C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe와 같은 경로를 사용하고, macOS나 Linux에서는 /usr/local/bin/wkhtmltopdf와 같은 경로를 사용합니다.
그런 다음 proc_open() 함수를 사용하여 wkhtmltopdf 명령을 실행하고 $pipes 배열을 통해 입력, 출력 및 오류 스트림을 설정합니다. fwrite() 함수를 사용하여 HTML 코드를 입력 스트림에 쓰고, stream_get_contents() 함수를 사용하여 오류 스트림에서 오류 메시지를 읽습니다. 마지막으로 proc_close() 함수를 사용하여 프로세스를 종료하고 종료 코드를 반환합니다.
PDF 파일이 생성되면 $filename 변수로 지정한 파일 이름으로 저장됩니다. PDF 파일이 생성되지 않으면 오류 처리를 수행해야 합니다.
728x90