PHP和Ghostscript将多页PDF转换为单个JPG

时间:2012-01-27 14:14:30

标签: php pdf ghostscript

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

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

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

有人知道怎么做吗?

提前致谢!

2 个答案:

答案 0 :(得分:2)

如果我理解正确,你想实现这个目标:

PDF输入页面:

+---+  +---+  +---+ 
| a |  | b |  | c |
|   |  |   |  |   |
+---+  +---+  +---+ ...

(3页或更多页)

JPEG输出:

+---+
| a |
|   |
+...+
| b |
|   |
+...+
| c |
|   |
+...+
|   |
~~~~~

或者这个:

+---+---+---+~~ 
| a . b . c |
|   .   .   |
+---+---+---+~~ ...

或者这个:

+---+---+-~
| a . b . 
|   .   .
+...+...+~
| c .   
|   .   
+---+~~

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

Ghostscript无法一步完成。但是,您可以通过两步方法实现这一目标:

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

    我不打算详细说明如何做到(这也取决于你的确切输出要求。

    然而,这里有两个通往SuperUser.com的链接,详细解释了该过程。他们会帮助您设置自己的步骤:

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

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

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

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

答案 1 :(得分:1)

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

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