像Verisign / Docusign

时间:2015-07-07 21:36:30

标签: php pdf

我一直在使用PDF到PNG的转换,并尝试了ImageMagick和Ghostscript。

我有一个36页的文档,分成单独的PDF。最快的我在运行Linux的i7机器上使用8 GB内存的所有36页的转换时间大约为20秒。

我看到VeriSign / DocuSign,当然Adobe EchoSign能够将所有这些文件转换为"预览"在10秒内(有时约为5秒)。

我有什么遗失的东西吗?它真的只是机器本身的全部吗?

这是我使用Ghostscript和此命令进行转换的最快速度:

gs -q -dQUIET -qNODISPLAY -dNumRenderingThreads=4 -dNOPAUSE \
   -sDEVICE=jpeg -sOutputFile=$exportPathCleaned -dJPEGQ=90 \
   -r100 -q $pdf -c quit

是不是无法达到他们的速度? 编辑 PHP / Java平台就是我的目标

编辑2以澄清 - 希望能够这样做以开发类似于VeriSign / DocuSign等的系统,以便div和其他项目可以放在输出视图。据我所知,你不能用直接的PDF做到这一点,这就是他们将所有东西都转换为图像的原因。

2 个答案:

答案 0 :(得分:3)

我使用此命令,在4 GB的MacBook Pro上使用4 GB的RAM,处理您的链接样本PDF:

$> time gs -q -sDEVICE=jpeg -o evs-%02d.jpg -dJPEGQ=90 -r100 EVS.pdf

返回11个JPEG,带有此时间信息:

real  0m1.011s
user  0m1.063s
sys   0m0.091s

即:~1 sec共11页。

我发现您的示例PDF没有任何性能问题。但是,您的PDF并非完全犹太,因为来自Ghostscript的此警告消息表明:

**** Warning: can't process font stream, loading font by the name.

**** This file had errors that were repaired or ignored.
**** The file was produced by: 
**** >>>> Acrobat Distiller 9.5.5 (Windows) <<<<
**** Please notify the author of the software that produced this
**** file that it does not conform to Adobe's published PDF
**** specification.

该文件包含231个图像或模板。

此外,它没有嵌入(全部)使用的字体:

$> pdffonts Documents/pdfs/EVS.pdf

name                      type          encoding     emb sub uni object ID
------------------------- ------------- ------------ --- --- --- ---------
TimesNewRomanPSMT         TrueType      WinAnsi      no  no  no     636  0
TimesNewRomanPS-BoldMT    TrueType      WinAnsi      no  no  no     638  0
Arial-Black               TrueType      WinAnsi      no  no  no     335  0
EPBFLF+Cambria            CID TrueType  Identity-H   yes yes yes    332  0
Helvetica                 Type 1        Custom       no  no  no     511  0
ArialMT                   TrueType      WinAnsi      no  no  no     476  0
FAMLHA+Wingdings-Regular  CID TrueType  Identity-H   yes yes yes    496  0
TimesNewRomanPS-ItalicMT  TrueType      WinAnsi      no  no  no     495  0

如果嵌入了这些字体,Ghostscript就不必......

  1. ...搜索合适的替代字体,
  2. ...从硬盘加载替换字体
  3. ...在渲染为JPEG输出时应用替代字体。
  4. 即使嵌入字体的PDF会更大,处理成JPEG也会更快

    我通过将字体嵌入到您的示例PDF并再次运行上述命令来验证我的最后一个断言:

    $> time gs -q -sDEVICE=jpeg -o evs-%02d.jpg -dJPEGQ=90 -r100 EVS-emb.pdf
    
     real  0m0.731s
     user  0m0.642s
     sys   0m0.072s
    

答案 1 :(得分:0)

我使用ubuntu并且此命令将所有pdf转换为images \ png

for f in *.pdf; do convert -quality 100 $f ${f%%.*}.jpg; done