下载时将“授权给”名称添加到 pdf 文件

下载时将“授权给”名称添加到 pdf 文件

我想提供一些 pdf 文件供下载。一旦下载,几乎不可能阻止这些文件被转载,但我想在每页底部添加购买者的姓名,格式为:授权给:xxxxxxx,这样如果文件被传播,人们就会看到它们是非法副本。我承认,即使是这样也可以被屏蔽,然后复印,但这会让 400 页的文档的工作量更大

请问这可能吗?

答案1

简短的回答:是的,有可能。

再长一点:

我首先想到的是pdftk,它可以将一个 PDF 文件与另一个文件叠加,请参阅http://www.pdflabs.com/docs/pdftk-man-page/

pdftk in.pdf background back.pdf output out.pdf

background< 背景 PDF 文件名 | - | PROMPT >

将 PDF 水印应用于单个输入 PDF 的背景。

Pdftk 仅使用背景 PDF 的第一页并将其应用于输入 PDF 的每一页。该页面会根据需要缩放和旋转以适合输入页面。您可以使用 - 通过 stdin 将背景 PDF 传递到 pdftk。

如果输入的 PDF 没有透明背景(例如通过页面扫描创建的 PDF),则生成的背景将不可见 - 请改用图章操作。

或者

pdftk in.pdf stamp back.pdf output out.pdf

stamp< 标记 PDF 文件名 | - | PROMPT >

这与背景操作类似,只不过它将标记 PDF 页面覆盖在输入 PDF 文档页面的顶部。如果标记 PDF 页面具有透明背景,则效果最佳。

在那个阶段它还没有完全自动化,你仍然需要back.pdf手动创建文件。一个可能的自动解决方案是创建一个 PS 文件,在所需位置使用模板文本,搜索并替换该文本(在 un*x 中使用sed)为客户名称,然后使用 处理结果ps2pdf。[编辑:请参阅我的第二个回答,了解分步操作方法。]

但我确信还有更复杂的工具……很多科学期刊都这么做。其中一个 PDF 文件将其制作者标识为

Producer:       StampPDF Batch 4.1.1 Solaris SPDF_1116

所以邮票PDF似乎是用于此目的的专业软件。


我喜欢这个挑战。下面是分步指南:

  • 创建 PS 模板。这有点棘手,文本必须保持不变。(将包含文本的 PS 导出为文本,不包括字体——措辞与 CorelDRAW 中一样)。以下是示例:邮票.eps

在此处输入图片描述

  • 用于sed插入客户姓名和当前日期,一次性导出为 PDF。当然,客户姓名可以来自 DB-Query 或其他任何内容...

    sed "s/to C/to Alex/;s/on D/on $(date)/" stamp.eps | ps2pdf -dAutoRotatePages=/None - stamp.pdf

在此处输入图片描述

  • 使用pdftk它将其盖印到您的原始 PDF 文件上

    pdftk original.pdf stamp stamp.pdf output webversion.pdf

在此处输入图片描述

相关内容