【问题标题】:Combine JPG's into one PDF with PHP将 JPG 与 PHP 合并为一个 PDF
【发布时间】:2014-10-30 02:08:27
【问题描述】:

我正在尝试获取一系列 JPG 并将它们组合成一个 PDF 文件,每个 JPG 都是它自己的页面。我猜 ImageMagick 是最好的方法,但我似乎无法弄清楚如何组合文件。我在这里看到了 combineImages 方法:

http://php.net/manual/en/imagick.combineimages.php

但找不到任何示例。我是 imagemagick 的新手,所以我仍在尝试找出语法。

ImageMagick 可以按我的要求做吗?如果可以的话,有人可以写一个简单的例子吗?

谢谢!

【问题讨论】:

    标签: php pdf imagemagick jpeg centos7


    【解决方案1】:

    PHP你可以使用:

    $images = array("file1.jpg", "file2.jpg");
    
    $pdf = new Imagick($images);
    $pdf->setImageFormat('pdf');
    $pdf->writeImages('combined.pdf', true); 
    

    writeImages 上的 true 参数很重要,因为它会使方法写入一系列图像,而不仅仅是一个。


    您也可以从命令行执行此操作:
    convert file1.jpg file2.jpg output.pdf
    

    【讨论】:

    • 嗨,我已经使用了上面的代码。 pdf转换工作正常。但是图像颜色格式发生了变化(CMYK 到 RGB)。我需要源文件(CMYK)的pdf相同颜色格式。
    • 设置输出文件的色彩空间使用$pdf->setImageColorspace (imagick::COLORSPACE_CMYK);。如果您想要与输入完全相同的空间,您可以尝试类似$page = new Imagick("colorsCMYK.jpg"); $pdf->setImageColorspace ( $page->getImageColorspace() );
    • 这对我来说效果很好,但值得指出的是,出于安全原因,默认情况下禁用 pdf 写入。我发现这很有帮助:andy-carter.com/blog/how-to-fix-imagickexception-not-authorized
    • 什么?致命错误:未捕获的异常 'ImagickException' 带有消息 'not authorized `combined.pdf' @ error/constitute.c/WriteImage/1
    • 这看起来像是版权问题。 github.com/ImageMagick/ImageMagick/blob/…
    猜你喜欢
    • 2012-11-17
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    相关资源
    最近更新 更多