我正在尝试借助 PHP 将 PDF 转换为 IMG (JPG)。
我正在使用 imagick 扩展。
这是我的代码
$fp_pdf = fopen($pdf, 'rb');
$img = new imagick(); // [0] can be used to set page number
$img->readImageFile($fp_pdf);
$img->setImageFormat( "jpg" );
$img->setImageCompression(imagick::COMPRESSION_JPEG);
$img->setImageCompressionQuality(90);
$img->setResolution(300,300);
$img->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
$data = $img->getImageBlob();
我的源 pdf 文件尺寸正确(210x297 毫米,与 A4 一样)。一切看起来都很好。 但是我的jpg页面尺寸为842x595 px,DPI为72。
当我打印它时,img 文件在纸上比 pdf 小得多。
什么是从 pdf 制作图像文件并使其像 pdf 一样大(在纸上)
最佳答案
您可以通过 exec() 或类似的方式使用 imagemagick,shell 参数比 PHP 扩展更简洁。
$pdf_file = escapeshellarg( "mysafepdf.pdf" );
$jpg_file = escapeshellarg( "output.jpg" );
$result = 0;
exec( "convert -density 300 {$pdf_file} {$jpg_file}", null, $result );
// at this point $result should == 0 if the conversion was successful
这是专门解决您的问题的“-density”(将 DPI 设置为读取源文件)选项。
在大多数情况下,imagemagick 默认使用 92 的 JPEG 写入质量设置 - 因此您可能不需要显式声明它。
关于php - 使用 PHP 将 PDF 转换为 JPG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8624886/