将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- 重要的是:将导入
Resolution
从100
更改为300
或600 pixel/in
- 重要的是:将导入
- 在
GIMP
导出为PNG(更改文件扩展名为.png)
编辑:添加图片,每个请求中的评论。 使用的转换命令:
convert -density 300 -trim struct2vec.pdf -quality 100 struct2vec.png
GIMP
:以300 dpiinput(px / in); 导出为PNG压缩级别3。
我没有在命令行上使用GIMP(re:我的评论,下面)。
使用这个命令行:
convert -geometry 3600x3600 -density 300x300 -quality 100 TEAM\ 4.pdf team4.png
这应该正确地转换文件,如您所要求的。