【发布时间】:2015-09-18 17:40:03
【问题描述】:
我正在使用 imagick 将 png 转换为 pdf:
convert file.png file.pdf
现在我得到一个只有一页的 pdf,但打印该 pdf 时出现问题。
是否可以自动拆分 png 以创建页面适合 A4 格式的 pdf?
【问题讨论】:
标签: image pdf imagemagick
我正在使用 imagick 将 png 转换为 pdf:
convert file.png file.pdf
现在我得到一个只有一页的 pdf,但打印该 pdf 时出现问题。
是否可以自动拆分 png 以创建页面适合 A4 格式的 pdf?
【问题讨论】:
标签: image pdf imagemagick
不是 100% 确定您要如何/在哪里拆分大 PNG 图像,但这应该会给您一些想法。首先,让我们为一张 A4 确定一个非常近似的尺寸 - 有些打印机是无边距的,有些打印机不能靠近纸张边缘,所以如果我们说,为了论证,A4 是 8 英寸 x 11 英寸,然后是 144 dpi(也是一个猜测)您将在 A4 页面上获得大约 1,152 像素 x 1,584 像素。
因此,我们将您的图像分成不大于此大小的块,然后重新分页它们,以便它们忘记它们在原始图像中的来源。然后我们将生成的 A4 大小的块保存为 page000.png、page0001.png 等。
convert image.png -crop 1152x1584 +repage page%03d.png
现在我们可以用这个把它们重新组合成一个 PDF
convert -density 144 page*png result.pdf
显然,这种简单的方法不知道在哪里是切图像的合理位置,因此它可能会在不幸的地方进行切割!
正如@Danack 评论的那样,您可以消除对中间文件的需要,直接进入输出 PDF,如下所示:
convert image.png -crop 1152x1584 +repage output.pdf
让我们试一试。首先创建一个大渐变PNG
convert -size 3000x4000 gradient:black-white image.png
现在把那只小狗剁碎……
convert image.png -crop 1152x1584 +repage page%03d.png
给出 9 个这样的页面:
identify page*
page000.png PNG 1152x1584 1152x1584+0+0 16-bit sRGB 9.68KB 0.000u 0:00.000
page001.png[1] PNG 1152x1584 1152x1584+0+0 16-bit sRGB 9.68KB 0.000u 0:00.000
page002.png[2] PNG 696x1584 696x1584+0+0 16-bit sRGB 8.3KB 0.000u 0:00.000
page003.png[3] PNG 1152x1584 1152x1584+0+0 16-bit sRGB 9.71KB 0.000u 0:00.000
page004.png[4] PNG 1152x1584 1152x1584+0+0 16-bit sRGB 9.71KB 0.000u 0:00.000
page005.png[5] PNG 696x1584 696x1584+0+0 16-bit sRGB 8.32KB 0.000u 0:00.000
page006.png[6] PNG 1152x832 1152x832+0+0 16-bit sRGB 5.21KB 0.000u 0:00.000
page007.png[7] PNG 1152x832 1152x832+0+0 16-bit sRGB 5.21KB 0.000u 0:00.000
page008.png[8] PNG 696x832 696x832+0+0 16-bit sRGB 4.48KB 0.000u 0:00.000
然后将它们重新组合在一起,作为此处显示的 PNG,但 Pdf 也不例外:
【讨论】:
convert image.png -crop 1152x1584 +repage page.pdf直接跳到PDF吗?
另一种方法是告诉 ImageMagick 对瓦片集进行裁剪
convert -crop 1x16@ AHw1w.png -page 200x100 tile.pdf
这会将输入图像分成 16 个高部分和 1 个部分,然后将它们呈现到页面大小为 200 x 100 的 pdf 上。
【讨论】: