将PDF转换为高分辨率的图像

我正在尝试使用命令行程序convert PDF转换为图像(JPEG或PNG)。 这是我试图转换的PDF文件之一 。

我希望程序能够裁剪多余的空白区域,并返回足够高质量的图像,以便轻松读取上标。

这是我目前最好的尝试 。 正如你所看到的,修整工作正常,我只需要提高分辨率相当多。 这是我正在使用的命令:

 convert -trim 24.pdf -resize 500% -quality 100 -sharpen 0x1.0 24-11.jpg 

我试图做出以下有意识的决定:

  • 调整它的大小(对分辨率没有影响)
  • 尽可能提高质量
  • 使用-sharpen (我尝试了一系列值)

任何build议请得到最终的PNG / JPEG图像的分辨率将不胜感激!

看来,以下的作品:

 convert \ -verbose \ -density 150 \ -trim \ test.pdf \ -quality 100 \ -flatten \ -sharpen 0x1.0 \ 24-18.jpg 

它导致左图像 。 把这个和我原来的命令的结果比较( 右边的图片 ):

(要真正看到和欣赏两者之间的差异,请右键单击每一个,然后select“在新标签中打开图像…” 。)

还要记住以下事实:

  • 右侧模糊的图像文件大小为1.941.702字节(1.85 MByte)。 它的分辨率是3060×3960像素,使用16位RGB色彩空间。
  • 左侧的更好,清晰的图像文件大小为337.879字节(330 kByte)。 它的分辨率是758×996像素,使用8位灰度色彩空间。

所以,不需要resize 添加-density标志。 密度值150是很奇怪的 – 尝试一系列的值会导致在两个方向上看起来更糟糕的图像!

我个人喜欢这个。

 convert -density 300 -trim test.pdf -quality 100 test.jpg 

这个文件大小超过了两倍,但是对我来说更好。

-density 300设置PDF呈现的dpi。

-trim移除与angular落像素颜色相同的任何边缘像素。

-quality 100将JPEG压缩质量设置为最高质量。

-sharpen这样的东西在文本上工作不好,因为它们会使你的字体渲染系统做的事情变得更加清晰。

如果你真的想把它放大,可以在这里使用resize,可能是一个像targetDPI * scalingFactor这样的更大的dpi值。这将会以你想要的分辨率/大小渲染PDF。

imagemagick.org上的参数说明在这里

我在命令行上使用pdftoppm来获取初始图像,通常使用300dpi的分辨率,因此使用pdftoppm -r 300 ,然后使用convert来进行修剪和PNG转换。

当批量处理大量的PDF文件到PNG文件和JPG文件中以使用convert使用的底层gs (又名Ghostscript)命令时,我发现它更快更稳定。

你可以在convert -verbose的输出中看到这个命令,还有一些可能的调整(YMMV),很难/不可能通过convert直接访问。

但是,使用gs修剪和锐化会更困难,所以,正如我所说的,YMMV!

通常我用原始分辨率的“pdfimages”提取embedded的图像,然后使用ImageMagick的转换为所需的格式:

 $ pdfimages -list fileName.pdf $ pdfimages fileName.pdf fileName # save in .ppm format $ convert fileName-000.ppm fileName-000.png 

这生成最好和最小的结果文件。

注意:对于有损JPG的embedded式图像,您必须使用-j:

 $ pdfimages -j fileName.pdf fileName # save in .jpg format 

在小提供的Win平台上,您必须从http://blog.alivate.com.au/poppler-windows/下载最近的(0.37 2015)'poppler-util'二进制文件

它也给你很好的结果:

 exec("convert -geometry 1600x1600 -density 200x200 -quality 100 test.pdf test_image.jpg"); 

还有一个build议是你可以使用GIMP。

只需加载PDF文件在GIMP->另存为.xcf然后你可以做任何你想要的图像。

你附加的PNG文件看起来非常模糊。 如果您需要对生成的每个图像使用额外的后期处理作为PDF预览,则会降低解决scheme的性能。

2JPEG可以转换您附加的PDF文件一个很好的锐化JPG和裁剪空边缘在一个电话:

 2jpeg.exe -src "C:\In\*.*" -dst "C:\Out" -oper Crop method:autocrop 

Linux用户在这里:我尝试了convert命令行工具(PDF到PNG),我不满意的结果。 我发现这样更容易,效果更好:

  • 用pdftk提取PDF页面
    • 例如: pdftk file.pdf cat 3 page3.pdf
  • GIMP打开(导入)pdf
    • 重要的是:将导入Resolution100更改为300600 pixel/in
  • GIMP导出为PNG(更改文件扩展名为.png)

编辑:添加图片,每个请求中的评论。 使用的转换命令:

convert -density 300 -trim struct2vec.pdf -quality 100 struct2vec.png

GIMP :以300 dpiinput(px / in); 导出为PNG压缩级别3。

我没有在命令行上使用GIMP(re:我的评论,下面)。

pdf2png

在这里输入图像说明

使用这个命令行:

 convert -geometry 3600x3600 -density 300x300 -quality 100 TEAM\ 4.pdf team4.png 

这应该正确地转换文件,如您所要求的。