如何使用 convert 从 jpg 正确生成 A3 大小的 pdf

How to properly generate an A3 sized pdf from jpg with convert

在 linux 使用 imagemagick 工具转换时,我想将我的大型 jpg 文件转换为 <= 10MB 的 A3 pdf 文件,以便在商店以最佳质量打印这些文件。

当运行:

$ convert summer-bokeh.jpg -quality 100 -density 300 -resize 2480x3508! summer_resized.pdf

我试图将 A3 像素大小强制设置为 300 dpi,但生成的 pdf 大小为 595x842。 如果我尝试指定 -page A3 选项,生成的 pdf 会更小,大小为 202x286.

请注意,只有 pdf 才会出现此问题。如果我尝试使用相同的转换命令,输出文件 "summer_resized.jpg",生成的图像会正确调整大小。很遗憾,商店的打印机只支持 pdfs。

知道如何解决这个问题吗?关于奖金问题,有没有办法指定预期的最大文件大小(此处 <= 10MB)?

谢谢

A3 为 11.69" x 16.53",因此在 300 dpi 下,您需要 3507x4959 像素。所以,如果你这样做:

convert -quality 100% input.jpg -resize 3507x4959 output.pdf

你会得到这个:

identify -verbose output.pdf
Image: output.pdf
  Format: PDF (Portable Document Format)
  Mime type: application/pdf
  Class: DirectClass
  Geometry: 3507x4959+0+0
  Resolution: 72x72
  Print size: 48.7083x68.875
  Units: Undefined
  Type: TrueColorAlpha
  Endianess: Undefined
  Colorspace: sRGB
  ...

它的大小为 5MB。我认为打印机会忽略 72 dpi 的分辨率。