如何隐藏 LaTeX 生成的输出中的信息?

如何隐藏 LaTeX 生成的输出中的信息?

我使用 LaTeX 排版系统编写电子书,打算在我的网站上销售。如果文件在网上免费提供,我希望能够知道是哪个客户泄露了该文件。但我不想使用 DRM(人们将无法轻松地将文件复制并粘贴到他们的电子阅读器上,而这对我来说是一项重要功能),也不想使用水印(它会改变文件的可见部分)。

所以我认为最好的想法是在输出二进制中隐藏一些信息(比如唯一标识符)。

我不知道这是否可能,但理想情况下我希望它:

  • 如果有人快速检查文件的二进制文件(不包括 PDF 关键字和注释),则不会很明显,
  • 通过压缩和格式转换(例如pdf -> djvu -> ps -> pdf)来保存。

任何帮助,哪怕只是部分的,都将不胜感激。

编辑 Latex 中的隐写术 这个问题与我想要实现的目标非常接近,但我不想引入拼写错误。

答案1

一种方法是将元数据添加到输出 PDF 中。包超链接例如,允许您使用命令\hypersetup{}通过向其传递选项来执行此pdfauthor={Bob Smith}操作。但是,此方法的缺点是元数据是可见的,因此任何想要查看文件属性的人都可以修改它。

更好的选择是将数据隐藏在 PDF 文件本身中。我认为 PDF 非常类似于 XML 文件,因为它们具有一系列字段和值。您甚至可以将整个文件嵌入 PDF 文件中。因此,您应该能够相当轻松地添加包含客户姓名或订单号或其他某种参考资料的加密文本文件。尝试在 Google 上搜索如何在 PDF 中嵌入隐藏数据,首先弄清楚如何做到这一点,然后这应该可以帮助您在 CTAN 或其他软件包存储库上进行更有针对性的搜索。

以下是一些可能有用的链接:

链接 1

链接 2

链接 3

最后,这个可能就是你要找的。

相关内容