如何使用 Imagemagick 替换单个 PDF 页面?

问题描述 投票:0回答:2

我有一个多页 PDF 文档,我想要其中一页位于中间并带有扫描副本的文档版本,因为我需要在文档中进行亲笔签名。我怎样才能用 ImageMagick 做到这一点?我知道 ImageMagick 不一定是完成这项工作的最佳工具。但是,生成的 PDF 不需要是高质量或高保真副本,因此它应该足以满足我的需求。

作为一个具体示例,我有一个 9 页

my-file.pdf
,我想创建 PDF 的副本,并将第 8 页替换为
page-8.png
。看起来我应该能够使用
convert
工具来实现这个目标,尽管语法是什么并不是很明显。我怎样才能实现这个目标?

如果我只想将新页面附加到文件末尾,我知道我可以执行以下操作:

convert my-file.pdf page-8.png output-file.pdf

然而,这最终是原始第1-9页,然后是新第8页。我真正想要的是用新第8页替换原始第8页。我想要的输出是:

[original pages 1 - 7],[new page 8],[original page 9]
pdf image-processing imagemagick imagemagick-convert
2个回答
3
投票

可以使用带有从零开始索引的括号语法来指定特定页面或页面范围。例如,

[8]
表示第九页,
[0-6]
表示前七页。使用此功能,可以实现替换第 8 页的 PDF 副本,如下所示:

convert my-file.pdf[0-6] page-8.png my-file.pdf[8] output-file.pdf

0
投票

正如问题和评论中所指出的,Imagemagick 并不是完成此任务的好工具,因为它会栅格化 PDF 的输出。避免这种情况的替代解决方案是使用 pdftk 来替换页面。虽然插入的页面仍然是图像,但未替换的页面不会被光栅化。

首先,使用具有此功能的应用程序将扫描页面另存为 PDF。然后,使用 pdftk

cat
操作来合并 PDF:

pdftk A=my-file.pdf B=page-8.pdf cat A1-7 B A9 output output-file.pdf
© www.soinside.com 2019 - 2024. All rights reserved.