我一直在使用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做到这一点,这就是他们将所有东西都转换为图像的原因。
答案 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就不必......
即使嵌入字体的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