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

Mar*_*ied 27 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 我尝试了其他参数,但似乎没有.

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

Kur*_*fle 32

"我不确定质量参数是否适合PNG."

对于PNG输出,该-quality设置是非常不同于JPEG质量设置(这仅仅是一个整数0100).

对于PNG,它由两个单独的数字组成:

  • 第一个数字(十位)是(主要)zlib压缩水平,并且它可以从去09.
    (但是设置0具有特殊含义:当你使用它时,你将获得Huffman压缩,而不是zlib压缩级别0.这通常更好......很奇怪但是真的.)

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

    • 0是没有,
    • 1是"sub",
    • 2是"向上",
    • 3是"平均",
    • 4是"Paeth",和
    • 5是"自适应的".

实际上,这意味着:

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

"我遇到了保存回PDF的问题.有些文件的页面大小错误,我已经尝试了所有可以找到的命令和程序[...],但是在2左右指定了几页宽,或者它们是8.5x11,但其他的是大约35"宽."

没有可用的PNG文件,我创建了一些具有不同尺寸的简单文件来验证不同的命令(因为我不再确定自己了).的确,你用过的那个:

convert -page letter -adjoin single*.png multipage.pdf
Run Code Online (Sandbox Code Playgroud)

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

对命令的以下修改将PNG放入每个PDF页面的中心:

convert           \
  -page letter    \
  -adjoin         \
   single*.png    \
  -gravity center \
   multipage.pdf
Run Code Online (Sandbox Code Playgroud)

如果这对你来说仍然不够好,你可以通过添加一个-scale '590!x770!'参数(这将在页面的每个边缘留下11 pt的边框)强制执行(可能是非比例!)缩放以几乎填充字母区域:

convert              \
  -page letter       \
  -adjoin            \
   single*.png       \
  -gravity center    \
  -scale '590!x770!' \
   multipage.pdf
Run Code Online (Sandbox Code Playgroud)

要留出额外的边框,请使用-scale '612!x792!'.- 如果您需要在保持PNG宽高比的同时仅需要向上扩展,请使用-scale '590<x770<':

convert              \
  -page letter       \
  -adjoin            \
   single*.png       \
  -gravity center    \
  -scale '590<x770<' \
   multipage.pdf 
Run Code Online (Sandbox Code Playgroud)


小智 6

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