php - 使用 PHP 将 PDF 转换为 JPG

标签 php pdf imagemagick imagick

我正在尝试借助 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/

相关文章:

php - 为什么我无法导航到创建数据库的页面?

PHP Phar 部署性能

Java:将pdf文件从URL读取到小程序中的字节数组/字节缓冲区

ruby - MiniMagick:使 png 部分不透明/如何使用 '-evaluate'

c - imageMagick 的 Plane2Cylinder 扭曲中是否有一个选项可以制作如下所示的图像?

image-processing - 我应该使用哪些处理步骤来清洁线条图的照片?

javascript - 如何在表格中显示json字符串的多维数组

ruby-on-rails - rails/Prawn : how do I use rails helpers inside a Prawn class?

pdf - DataDynamics.ActiveReports.Export.Pdf.PdfExport 引用的语言编码问题

javascript - 如何将 gettext 字典中的术语输入到 JavaScript 中?