如何将PDF转换为低分辨率(但质量好)的JPEG?

Sha*_*oel 6 pdf postscript ghostscript

当我使用以下ghostscript命令从PDF生成jpg缩略图时,图像质量通常很差:

gs -q -dNOPAUSE -dBATCH -sDEVICE=jpeggray -g465x600 -dUseCropBox -dPDFFitPage -sOutputFile=pdf_to_lowres.jpg test.pdf
Run Code Online (Sandbox Code Playgroud)

相比之下,如果我使用ghostscript生成高分辨率png,然后使用mogrify将高分辨率png转换为低分辨率jpg,我会得到相当不错的结果.

gs -q -dNOPAUSE -dBATCH -sDEVICE=pnggray -g2550x3300 -dUseCropBox -dPDFFitPage -sOutputFile=pdf_to_highres.png test.pdf
mogrify -thumbnail 465x600 -format jpg -write pdf_to_highres_to_lowres.jpg pdf_to_highres.png
Run Code Online (Sandbox Code Playgroud)

有没有办法在绕过中间pdf - >高分辨率png步骤的同时取得好成绩?我需要为大量的pdf执行此操作,因此我正在尝试最小化计算时间.

以下是上面引用的图像的链接:

  1. 检验.pdf
  2. pdf_to_lowres.jpg
  3. pdf_to_highres.png
  4. pdf_to_highres_to_lowres.jpg

Jor*_*ing 5

一种似乎可以大大提高产量的选择:-dDOINTERPOLATE.这是我通过运行与您相同的命令获得的,但使用-dDOINTERPOLATE选项:

带-dDOINTERPOLATE的JPEG

我不确定它使用什么插值方法,但它似乎相当不错,特别是与没有它的结果相比.

PS考虑输出PNG图像(-sDEVICE=pnggray)而不是JPEG.对于大多数PDF文档(往往只有几种纯色),这是一个更合适的选择.