我正在使用imagick将生成的pdf转换为jpg / png并将其保存到服务器。一切正常,但由于在mpdf中使用png图像而安装了php-gd后,生成的jpg中的所有文本均为黑色。
这是我的代码,当实际上没有php-gd但没有它时,PNG图片无法在文档中显示。
$mpdf->Output('temp/'.$nazev_pdf.'.pdf','F');
$pdf_file = 'temp/'.$nazev_pdf.'.pdf';
$savepath = 'temp/'.$nazev_pdf.'.jpg';
$img = new imagick();
$img->setResolution(576,576);
$img->readImage("{$pdf_file}[0]");
$img->resizeImage(2480,3508);
$img->setCompressionQuality(100);
$img->setImageFormat('jpg');
$img->writeImage($savepath);
我不知道如何解决。有人知道吗?
编辑:我正在检查生成的MPDF PDF,并且文本为PDF格式是可以的。因此,文本在imagick转换中会出错。
已解决。 PDF是透明的,因此我设置了PNG并修改了img转换。
$mpdf->Output('temp/'.$nazev_pdf.'.pdf','F');
$pdf_file = 'temp/'.$nazev_pdf.'.pdf';
$savepath = 'temp/'.$nazev_pdf.'.png';
$img = new imagick();
$img->setResolution(576,576);
$img->readImage("{$pdf_file}[0]");
$img->resizeImage(2480,3508);
$img->setCompressionQuality(100);
$img->setImageBackgroundColor('white');
$img->setImageCompose(\Imagick::COMPOSITE_ATOP);
$img->flattenImages();
$img->setImageFormat('png');
$img->writeImage($savepath);