HOWTO · PHP
PDF 문서를 PHP의 미리보기 이미지로 변환
이 자습서에서는 PDF 문서를 PHP의 미리 보기 이미지 세트로 변환하는 데 사용할 수 있는 두 가지 방법에 대해 설명합니다.
이 페이지의 내용
이 자습서에서는 PDF 문서를 PHP의 미리 보기 이미지 세트로 변환하는 데 사용할 수 있는 두 가지 방법에 대해 설명합니다.
미리보기는 이미지의 콘텐츠를 복사하여 붙여넣을 수 없기 때문에 콘텐츠에 보안 계층을 추가합니다. 그들은 또한 우리가 다루지 않을 다른 기능을 제공합니다.
PDF 문서를 미리보기 이미지로 변환하는 가장 쉬운 방법은 타사 라이브러리를 활용하는 것입니다. 이것들은:
- 고스트스크립트
- 이미지매직
PHP 및 Ghostscript를 사용하여 PDF 문서를 미리보기 이미지로 변환
이 명령줄 유틸리티는 Windows, Linux 및 Mac에서 사용할 수 있습니다. PDF 문서를 미리보기 이미지로 변환하려면 다음 단계를 따르십시오.
-
설치를 시작하려면 Ghostscript 공식 웹 사이트로 이동하여 실행 파일을 다운로드하고 설치 지침을 따르십시오.
-
아래 코드를 실행하여 설치를 확인합니다.
$gs --version -
PDF 파일의 디렉토리에서 아래 명령을 실행하십시오.
$gs -dSAFER -dBATCH -sDEVICE=jpeg \ -dTextAlphaBits=4 -dGraphicsAlphaBits=4 \ -dFirstPage=1 -dLastPage=1 -r300 \ -sOutputFile=preview.jpg input.pdf -
위의 명령은 문서의 시작 페이지 이미지를 생성합니다. 아래와 같이 PHP에서 명령을 사용하기 위해
exec()함수를 호출합니다.<?php exec( "ls -l", $output_str, $return_val ); foreach ( $output_str as $line ) { echo $line . "\n"; } ?>위의 코드는 모든 디렉토리와 파일을 콘솔에 로드합니다. 이제 PHP 코드를 사용하여 Ghostscript 명령을 실행할 수 있습니다.
-
우리가 사용한 PHP 스크립트는 다음과 같습니다.
<?php function my_pdf ( $file ) { $file_info = file_get_contents( $file ); if ( preg_match( "/^%PDF-[0-1]\.[0-9]+/", $file_info ) ) { return true; } else { return false; } } function our_preview ( $file ) { $our_format = "png"; $prvw_page = "1"; $resolution = "300"; $our_file = "prvw.jpg"; $command = "gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=" . $our_format . " "; $command .= "-dTextAlphaBits=" . " -dGraphicsAlphaBits=" . . " "; $command .= "-dFirstPage=" . $prvw_page . " -dLastPage=" . $prvw_page . " "; $command .= "-r" . $resolution . " "; $command .= "-sOutputFile=" . $our_file . " '" . $file . "'"; echo "Running command...\n"; exec( $command, $com_output, $ret_val ); foreach( $com_output as $line ) { echo $line . "\n"; } if ( !$ret_val ) { echo "Preview created !!\n"; } else { echo "Error while creating.\n"; } } function __main__() { global $arg; $inp_file = $arg[1]; if ( my_pdf( $inp_file ) ) { // Preview for the pdf create_preview( $inp_file ); } else { echo "The file " . $inp_file . " is not a valid PDF document.\n"; } } __main__(); ?>코드 실행은
_main_()함수에서 시작되며 명령줄에서 PDF 파일을 가져오고 유효성을 확인합니다. 파일이 유효하면 PHP는 Ghostscript 명령을 실행합니다.출력:
$ php pdf_preview.php input.pdf Executing command... GPL Ghostscript 9.22 (2022-08-05) Copyright (C) 2022 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 1. Page 1 Preview created !!
PHP 및 ImageMagick을 사용하여 PDF 문서를 미리보기 이미지로 변환
-
먼저 모든 ImageMagick 바이너리를 시스템에 설치합니다. 아래 명령을 실행하여 ImageMagick 종속성을 설치합니다.
$sudo dnf install gcc php-devel php-pear -
아래 명령을 실행하여 ImageMagick을 설치합니다.
$ sudo dnf install ImageMagick ImageMagick-devel -
그런 다음 PHP 래퍼 클래스를 설치해 보겠습니다.
$ sudo pecl install imagick $ sudo bash -c "echo "extension=imagick.so" > /etc/php.d/imagick.ini" -
LAMP 서버에서 Apache 웹 서버를 사용하려면 Apache 웹 서버를 다시 시작해야 합니다.
$ sudo service httpd restart -
이제 필요한 모든 것이 준비되었습니다. 이제 이전 PHP 스크립트를 사용하고
create_preview()함수를 편집할 수 있습니다.아래 코드를 사용하십시오.
function create_preview ( $file ) { $output_format = "jpeg"; $preview_page = "1"; $resolution = "300"; $output_file = "imagick_preview.jpg"; echo "Fetching preview...\n"; $img_data = new Imagick(); $img_data->setResolution( $resolution, $resolution ); $img_data->readImage( $file . "[" . ($preview_page - 1) . "]" ); $img_data->setImageFormat( $output_format ); file_put_contents( $output_file, $img_data, FILE_USE_INCLUDE_PATH ); }출력:
$ php pdf_preview.php input.pdf Fetching preview...
이것이 바로 PHP에서 PDF 문서의 미리보기 이미지를 생성하는 방법입니다. 두 방법 모두 비슷한 기본 기능을 가지고 있습니다. 귀하의 선택은 선호도에 따라 다릅니다.