Skip to main content
 首页 » 编程设计

pdf之将多页 PDF 转换为 PNG 并返回 (Linux)

2024年10月25日20www_RR

我有很多 PDF 文档想要转换为 PNG,在 Gimp 中编辑,然后保存回多页 Acrobat 文件。我正在填写表格并添加扫描的签名,试图避免打印、签名,然后重新扫描,并能够输入我需要输入的信息。

我一直在尝试使用 Imagemagick 转换为 png 文件,这似乎工作正常。我使用命令 convert -quality 100 -density 300x300 multipage.pdf single%d.png(我不确定质量参数是否适合 png)。

但是我在保存回 PDF 时遇到了问题。一些文件的页面大小不正确,我已经尝试了我能找到的所有命令和过程,但总是有一些奇怪的大小。分辨率似乎有所不同,因此它在某个缩放级别下看起来不错,但是有几页被指定为大约 2"宽,或者它们是 8.5x11 但其他的大约是 35"宽。我试过确保 Gimp 的 Canvas 大小和分辨率正确,并将分辨率保存在文件中,但这似乎无关紧要。

我用来保存文件的命令是 convert -page letter -adjoin single*.png multipage.pdf我试过其他参数,但似乎都不重要。

如果有人有任何想法或替代方案,我将不胜感激。

请您参考如下方法:

"I'm not really sure if the quality parameter is right for PNG."



对于 PNG 输出, -quality设置与 JPEG 的质量设置非常不同(它只是从 0100 的整数)。

对于 PNG,它由两个个位数组成:
  • 第一个数字(十位)是 (主要)zlib 压缩级别 ,它可能来自 09 .
    (然而 0 的设置有一个特殊的含义:当你使用它时,你会得到 Huffman 压缩,而不是 zlib 压缩级别 0。这通常更好......奇怪但真实。)
  • 第二个数字是 PNG 数据编码过滤器类型 (压缩前):
  • 0 是无,
  • 1 是“子”,
  • 2 是“向上”,
  • 3 是“平均”,
  • 4 是“Paeth”,和
  • 五是“自适应”。

  • 实际上,这意味着:
  • 对于具有纯色序列的插图,“无”过滤器 ( -quality 00 ) 通常是最合适的。
  • 对于自然景观的照片,“自适应”过滤 (-quality 05) 通常是最好的。


  • "I'm having problems with saving back to PDF. Some of the files have the wrong page size, and I've tried every command and procedure I can find [...] but either a few pages are specified at about 2" wide, or they are 8.5x11 but the others are about 35" wide."



    由于没有可用的 PNG 文件,我创建了一些具有不同尺寸的简单文件来验证不同的命令(因为我不再确定自己了)。确实,您使用的那个:
    convert -page letter -adjoin single*.png multipage.pdf 
    

    确实以(相同)字母大小创建所有 PDF 页面,但它总是将我的(不同大小)PNG 样本放在 PDF 页面的左下角。 (如果 PNG 超过 PDF 页面大小,它会缩小它们以使其适合 - 但它不会放大较小的 PNG 以填充可用的页面空间。)

    对命令的以下修改会将 PNG 放置在每个 PDF 页面的中心:
    convert           \ 
      -page letter    \ 
      -adjoin         \ 
       single*.png    \ 
      -gravity center \ 
       multipage.pdf 
    

    如果这对您来说仍然不够好,您可以通过添加 -scale '590!x770!' 强制(可能是不成比例的!)缩放以几乎填充字母区域。参数(这将在页面的每个边缘留下 11 pt 的边框):
    convert              \ 
      -page letter       \ 
      -adjoin            \ 
       single*.png       \ 
      -gravity center    \ 
      -scale '590!x770!' \ 
       multipage.pdf 
    

    要去掉多余的边框,请使用 -scale '612!x792!' . -- 如果您希望在保持 PNG 的纵横比的同时仅在需要时进行向上缩放,请使用 -scale '590<x770<' :
    convert              \ 
      -page letter       \ 
      -adjoin            \ 
       single*.png       \ 
      -gravity center    \ 
      -scale '590<x770<' \ 
       multipage.pdf