【问题标题】:PHP and Ghostscript to convert a multipage PDF to a single JPGPHP 和 Ghostscript 将多页 PDF 转换为单个 JPG
【发布时间】:2012-01-27 14:14:30
【问题描述】:

对于我的网站,我使用一个小脚本将 PDF 转换为 JPG。

exec('gs -dSAFER -dBATCH -dNOPAUSE -r150 -dJPEGQ=60 -sDEVICE=jpeg -dTextAlphaBits=4 -sOutputFile= '.$file_name.' '.$pdf);

我想要的是当我有一个多页 PDF 将其转换为单个 jpg(一个 jpg 中的多页)。

有人知道怎么做吗?

提前致谢!

【问题讨论】:

  • 从技术上讲,这与 PHP 没有任何关系,因为它纯粹是一个 ghostscript 操作问题。
  • 好的,但我的问题还是一样的:)
  • @Leon van der Veen:我理解正确吗——您希望输出 JPEG 包含在 1 个大图像中的所有原始 PDF 页面,类似于 n-Up 布局?像 {Image,Graphics}Magick 的 montage 子命令之类的东西可以用多个 JPEG 输入文件实现吗? -- Ghostscript 做不到...
  • @Leon van der Veen:如果您希望 1 个 JPEG 文件可以像多页 TIFF 那样容纳多页:不,这是不可能的。对于 TIFF,其规范允许这样做; JPEG 没有类似的功能......

标签: php pdf ghostscript


【解决方案1】:

如果我对你的理解正确的话,你想要达到这个目的:

PDF 输入页面:

+---+ +---+ +---+ |一个 | |乙 | | c | | | | | | | +---+ +---+ +---+ ...

(3 个或更多单页)

JPEG 输出:

+---+ |一个 | | | +...+ |乙 | | | +...+ | c | | | +...+ | | ~~~~~

或者这个:

+---+---+---+~~ |一个 。乙。 c | | . . | +---+---+---+~~ ...

或者这个:

+---+----+-~ |一个 。乙。 | . . +...+...+~ | C 。 | . +---+~~

或单页 JPEG 的其他变体...

Ghostscript 无法一步完成。但是,您可以分两步实现:

  1. 使用 Ghostscript 对 PDF 进行 n-up 布局。
  2. (或使用其他一些软件从您的 PDF 创建 n-Ups。)
  3. 使用 Ghostscript 将 n-up PDF 转换为 JPEG。

1。使用 Ghostscript 创建 n-Up PDF 页面

我不会详细说明如何做到这一点(这也取决于您的确切输出要求。

但是,这里有两个指向 SuperUser.com 的链接,其中详细解释了该过程。他们将帮助您设置自己的步骤:

2。使用其他工具创建 n-Up PDF

  • PDFJam 包括 pdfnup 实用程序
  • PoDoFo 包括 podofoimpose 实用程序

3。使用 Ghostscript 将您的新 PDF 转换为 JPEG

你似乎已经知道如何做到这一点......

【讨论】:

  • 你是怎么做到的?我正在尝试做同样的事情,但不确定如何进行第一种 N-up 组合。
【解决方案2】:

我不记得 JPEG 允许在一个文件中包含多个图像。如果是这样,Ghostscript 肯定不会,所以你可以做到这一点(使用 Ghostscript)的唯一方法就是编写你自己的设备。

您可以创建一个多页 TIFF 文件,改用 JPEG 压缩,但 Ghostscript 也不支持,但如果您正在编写自己的设备......

【讨论】:

    猜你喜欢
    • 2012-06-15
    • 2016-03-11
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 2013-06-08
    • 2011-06-10
    相关资源
    最近更新 更多