批量 PDF 水印 [PDF -> JPG -> PDF]

Batch PDF Watermark [PDF -> JPG -> PDF]

我正在为一家 Sheet 音乐出版商处理数千个 PDF 文件。

所有这些 PDF 文件都需要预览 PDF。 PDF 文件的水印可以很容易地删除,所以我要求在批处理操作中为我们的 PDF:s 加水印的真正方法。

PDF->应用水印->JPG->返回PDF

我该怎么做?这个操作有什么好的工具吗?

免费路线

ImageMagick 可以为您完成整个过程,尤其是使用复合命令 -watermark operator.

#!/bin/sh

# ImageMagick will pick the correct conversion formats based on filename suffixes, or maybe actual binary content?
InputPDF=
WatermarkImg=
OutputPDF=

pdfToImage=pdfToImage.png
imageWithWatermark=imageWithWatermark.png

# Convert PDF to image
convert           \
   -density 300   \
   -trim          \
    "$InputPDF"   \
   -quality 100   \
   -flatten       \
   -sharpen 0x1.0 \
   $pdfToImage

# Add watermark to intermediate image
composite          \
   -dissolve 15    \
   -tile           \
   "$WatermarkImg" \
   $pdfToImage     \
   $imageWithWatermark

# Convert intermediate image back to PDF
convert                \
   $imageWithWatermark \
   "$OutputPDF"

# Clean up
rm $pdfToImage $imageWithWatermark

我发现 PDF 到图像的转换在质量方面是可以接受的,尽管您可以在查看前后 side-by-side 时看到一些差异,尤其是粗体字形看起来不那么粗:

您可以查看这篇文章 post 及其关于将 PDF 转换为图像的许多选项的答案,Convert PDF to image with high resolution

我查看了 PDFtoPPM,它在那个帖子中也被高度提及,但我仍然看到转换时粗体字体有些退化:

更多平铺魔法

我用过这个copyright symbol from Wikimedia Commons and this ImageMagick script:

#!/bin/sh

Infile="Copyright.png"
Outfile="Copyright_tiled.png"

h2=$(convert $Infile -format "%[fx:round(h/2)]" info:)

convert $Infile                   \
    \( -clone 0 -roll +0+"$h2" \) \
    +append                       \
    -write mpr:sometile           \
    +delete                       \
    -size 1224X1584               \
    tile:mpr:sometile             \
$Outfile

创建这个交错拼贴(1224X1584 是页面大小(8.5 英寸 x 11 英寸)乘以 72 px/in,乘以 2 以获得良好的拼贴密度):

这里又没有水印了

@ZachYoung 我使用了一些不同的图像魔术,也可以编写脚本,重点是:-

尽管“既成之事无法挽回”麦克白(法案 5.1.63-4)非常真实,尤其是在 PDF 或图像中。我们也知道并期望它也适用于任何 PDF(解)构造。因此,根据伪造品的价值,设计一个部分颠倒的副本总是值得的,适合审查或使用,但会喜欢带水印的副本,仍然不是原件,但都一样,看起来几乎一样好。

成语的意思是不要为它烦恼。一开始最好不要做。

最接近最好的是使用与文本轮廓完全相同的水印,如下所示:-