>  기사  >  백엔드 개발  >  MPDF를 사용하여 HTML을 PDF로 변환한 다음 PDF를 PNG 이미지로 변환하면 중국어로 오류 메시지가 나타납니다...

MPDF를 사용하여 HTML을 PDF로 변환한 다음 PDF를 PNG 이미지로 변환하면 중국어로 오류 메시지가 나타납니다...

WBOY
WBOY원래의
2016-09-28 08:54:071481검색

1단계:

MPD(버전 6.1)를 사용하여 HTML 페이지를 PDF 파일로 변환하면 변환이 성공할 수 있습니다. 코드는 다음과 같습니다.

<code>$html = "对盲人初学者来说,它无需任何额外的修改。";
// $html = "These are the most used acronyms throughout this manual.";
include './mpdf/mpdf.php';
$mpdf=new mPDF('+aCJK'); 
$mpdf->autoScriptToLang = true;
$mpdf->autoLangToFont = true;
$mpdf->WriteHTML($html);
$mpdf->Output();</code>

2단계:

imagick을 사용하여 PDF를 이미지로 변환할 때
PDF 파일에 중국어가 없으면 변환 성공
PDF 파일에 중국어가 있으면, 오류가 직접 보고됩니다: , 오류 코드:

<code>Fatal error: Uncaught exception 'ImagickException' with message 'Failed to read the file' in /home/www/test/index-back.php:26 Stack trace: #0 /home/www/test/index-back.php(26): Imagick->readimage('/home/www/test/...') #1 /home/www/test/index-back.php(48): pdf2png('/home/www/test/...', '/home/www/test/...') #2 {main} thrown in /home/www/test/index-back.php on line 26</code>

참고: 추가로 공개 API의 PDF 설명 파일(기본적으로 모두 중국어로 되어 있음)을 찾았고 imagick을 사용하여 PDF를 png로 변환했는데 변환에 성공했습니다...

PDF를 이미지 코드로 변환:

<code>function pdf2png($PDF, $Path){
   if(!extension_loaded('imagick')){
       return false;
   }
   if(!file_exists($PDF)){
       return false;
   }
   $IM = new imagick();
   $IM->setResolution(120, 120);
   $IM->setCompressionQuality(100);
   $IM->readImage($PDF);
   foreach($IM as $Key => $Var){
       $Var->setImageFormat('png');
       $Filename = $Path.'/'.md5($Key.time()).'.png';
       if($Var->writeImage($Filename)==true){
           $Return[]= $Filename;
       }
   }
   return $Return;
}
$pdf = __DIR__.'/1.pdf';
$path = __DIR__.'/images';
$data = pdf2png($pdf, $path );
var_dump($data);</code>

해결해 주세요:

<code>使用 MPDF 将HTML转为PDF,然后将该PDF转为PNG图片时有中文怎么才能不报错??
</code>

답글 내용:

1단계:

MPD(버전 6.1)를 사용하여 HTML 페이지를 PDF 파일로 변환하면 변환이 성공할 수 있습니다. 코드는 다음과 같습니다.

<code>$html = "对盲人初学者来说,它无需任何额外的修改。";
// $html = "These are the most used acronyms throughout this manual.";
include './mpdf/mpdf.php';
$mpdf=new mPDF('+aCJK'); 
$mpdf->autoScriptToLang = true;
$mpdf->autoLangToFont = true;
$mpdf->WriteHTML($html);
$mpdf->Output();</code>

2단계:

imagick을 사용하여 PDF를 이미지로 변환할 때
PDF 파일에 중국어가 없으면 변환 성공
PDF 파일에 중국어가 있으면, 오류가 직접 보고됩니다: , 오류 코드:

<code>Fatal error: Uncaught exception 'ImagickException' with message 'Failed to read the file' in /home/www/test/index-back.php:26 Stack trace: #0 /home/www/test/index-back.php(26): Imagick->readimage('/home/www/test/...') #1 /home/www/test/index-back.php(48): pdf2png('/home/www/test/...', '/home/www/test/...') #2 {main} thrown in /home/www/test/index-back.php on line 26</code>

참고: 추가로 공개 API의 PDF 설명 파일(기본적으로 모두 중국어로 되어 있음)을 찾았고 imagick을 사용하여 PDF를 png로 변환했는데 변환에 성공했습니다...

PDF를 이미지 코드로 변환:

<code>function pdf2png($PDF, $Path){
   if(!extension_loaded('imagick')){
       return false;
   }
   if(!file_exists($PDF)){
       return false;
   }
   $IM = new imagick();
   $IM->setResolution(120, 120);
   $IM->setCompressionQuality(100);
   $IM->readImage($PDF);
   foreach($IM as $Key => $Var){
       $Var->setImageFormat('png');
       $Filename = $Path.'/'.md5($Key.time()).'.png';
       if($Var->writeImage($Filename)==true){
           $Return[]= $Filename;
       }
   }
   return $Return;
}
$pdf = __DIR__.'/1.pdf';
$path = __DIR__.'/images';
$data = pdf2png($pdf, $path );
var_dump($data);</code>

해결해 주세요:

<code>使用 MPDF 将HTML转为PDF,然后将该PDF转为PNG图片时有中文怎么才能不报错??
</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.