pdf - 安装 PHP-GD 后生成的图像中的黑色文本
问题描述
我正在使用 imagick 将生成的 pdf 转换为 jpg/png 并将其保存到服务器。一切正常,但安装 php-gd 后,由于在 mpdf 中使用 png 图像,生成的 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 convert。
$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);