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

时间:2012-03-14 20:54:34

标签: pdf png imagemagick

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

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

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

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

如果有人有任何想法或替代方案,我会很感激。

2 个答案:

答案 0 :(得分:32)

  

“我不确定质量参数是否适合PNG。”

对于PNG输出,-quality设置与JPEG的质量设置(仅为0100之间的整数)非常不同。

对于PNG,它由两位数字组成:

  • 第一个数字(十位)(很大程度上)是zlib压缩级别,它可能会从0变为9
    (但0的设置有一个特殊含义:当你使用它时,你会得到Huffman压缩,而不是zlib压缩等级0.这通常更好......很奇怪,但是真的。)

  • 第二个数字是 PNG数据编码过滤器类型(在压缩之前):

    • 0是无,
    • 1是“sub”,
    • 2是“up”,
    • 3是“平均”,
    • 4是“Paeth”,
    • 5是“自适应”。

实际上意味着:

  • 对于具有固定颜色序列的插图,“无”过滤器(-quality 00)通常是最合适的。
  • 对于自然景观的照片,“自适应”过滤(-quality 05)通常是最好的。

  

“我在保存回PDF时出现问题。有些文件的页面大小错误,我尝试了所有可以找到的命令和程序[...],但是只有几页指定宽度约为2“,或者它们是8.5x11,但其他的宽度约为35”。

没有可用的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 

答案 1 :(得分:6)

为什么不使用Xournal?这就是我用来注释PDF的方法