首页 文章

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

提问于
浏览
253

我正在尝试使用命令行程序convert将PDF转换为图像(JPEG或PNG) . 这是one of the PDFs,我正在尝试转换 .

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

这是我目前的best attempt . 如你所见,修剪工作正常,我只需要提高分辨率 . 这是我正在使用的命令:

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

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

  • 将其调整得更大(对分辨率没有影响)

  • 使质量尽可能高

  • 使用 -sharpen (我尝试了一系列值)

任何有关在最终PNG / JPEG中获得图像分辨率的建议都将非常感谢!

11 回答

  • 2

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

    您可以在 convert -verbose 的输出中看到该命令,并且还有一些可能的调整(YMMV)很难/无法通过 convert 直接访问 .

    但是,使用 gs 进行修剪和锐化会更难,所以,就像我说的那样,YMMV!

  • 116

    似乎以下工作:

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

    它导致the left image . 将此与我的原始命令(the image on the right)的结果进行比较:

    (要 really 查看并欣赏两者之间的差异,右键单击每个并选择"Open Image in New Tab..." . )

    还要记住以下事实:

    • 右侧较差的模糊图像的文件大小为1.941.702字节(1.85 MByte) . 它的分辨率为3060x3960像素,使用16位RGB色彩空间 .

    • 左侧更好,更清晰的图像文件大小为337.879字节(330 kByte) . 它的分辨率为758x996像素,使用8位灰色空间 .

    所以,不需要调整大小;添加 -density 标志 . 密度值150很奇怪 - 尝试一系列值会导致两个方向上看起来更糟糕的图像!

  • 13

    我个人喜欢这个 .

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

    这是文件大小的两倍多,但对我来说看起来更好 .

    -density 300 设置PDF呈现的dpi .

    -trim 删除与角点像素颜色相同的任何边缘像素 .

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

    -sharpen 这样的东西不能很好地处理文本,因为它们会撤消字体渲染系统所做的事情以使其更清晰 .

    如果你真的希望它被炸毁,请使用此处调整大小以及可能更大的dpi值,例如 targetDPI * scalingFactor 这将以您想要的分辨率/大小呈现PDF .

    imagemagick.org上的参数说明是here

  • 2

    我在命令行上使用 pdftoppm 获取初始图像,通常分辨率为300dpi,所以 pdftoppm -r 300 ,然后使用 convert 进行修剪和PNG转换 .

  • 326

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

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

    这会生成最佳和最小的结果文件 .

    注意:对于有损JPG嵌入图像,您必须使用-j:

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

    有了最近的poppler,你可以使用-all将有损保存为jpg而无损为png

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

  • -1

    它还为您带来了良好的效果:

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

    还有一个建议是你可以使用GIMP .

    只需在GIMP中加载PDF文件 - >另存为.xcf,然后就可以对图像执行任何操作 .

  • 15

    Linux用户在这里:我尝试了 convert 命令行实用程序(对于PDF到PNG),我对结果不满意 . 我发现这更容易,效果更好:

    • 用pdftk提取pdf页面

    • 例如: pdftk file.pdf cat 3 output page3.pdf

    • GIMP 打开(导入)pdf

    • important:将导入 Resolution100 更改为 300600 pixel/in

    • GIMP 导出为PNG(将文件扩展名更改为.png)

    Edit:

    根据 Comments 中的要求添加了图片 . 转换使用的命令:

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

    GIMP :以300 dpi(px / in)进口;导出为PNG压缩级别3 .

    我没有在命令行上使用GIMP(请参阅下面的评论) .

    pdf2png

    enter image description here

  • 8

    您附加的PNG文件看起来很模糊 . 如果您需要对生成为PDF预览的每个图像使用其他后处理,则会降低解决方案的性能 .

    2JPEG可以将您附加的PDF文件转换为漂亮的锐化JPG并在一次调用中裁剪空边距:

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

    在Mac上预览实际上很容易 . 您所要做的就是在预览中打开文件并另存为(或导出)png或jpeg,但请确保在窗口底部至少使用300 dpi以获得高质量的图像 .

  • 0

    使用此命令行:

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

    这应该是正确的按照您的要求转换文件 .

相关问题