我一直在使用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
是不是不可能达到他们的速度?
EDIT PHP / Java平台就是我的目标
编辑2以澄清 – 希望能够这样做以开发类似的系统到VeriSign / DocuSign等,以便div和其他项目可以放在输出视图上.据我所知,你不能用直接的PDF做到这一点,这就是为什么他们将所有东西都转换为图像.
最佳答案 我使用此命令,在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
即:11页~1秒.
我发现您的示例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就不必……
> …搜索合适的替代字体,
> …从硬盘加载替换字体,
> …在渲染为JPEG输出时应用替代字体.
即使嵌入字体的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