我有一个程序将用于构建问题数据库。我正在为一个希望用户知道 contet 是从该站点下载的站点制作它。这就是为什么我希望输出为 PDF - 几乎每个人都可以查看它,几乎没有人可以编辑它(并删除例如页脚或水印,这与某些更简单的文件类型不同)。这就解释了为什么它必须是 PDF。
该程序将被众多用户使用,他们将创建新数据库或扩展现有数据库。这就是为什么将输出形成为多个文件是实现我想要实现的目标的极其草率和低效的方式(这会使用户的事情变得复杂)。
我想要做的是创建 PDF 文件,一旦创建,这些文件仍然可以用我的程序进行编辑。
我想通过将我的程序可读的自定义文件类型实现到输出 PDF 中来实现这一点。
我想出了三种方法:
将文件附加到 PDF,然后破坏包含它的 PDF 部分,这只会使 PDF 不知道它包含该文件,从而使用户无法(轻松地)注意到它。阅读文档后,我将使用可能的 PDF 库之一恢复损坏并提取文件。
将文件隐藏在图像中,该图像将被添加到 PDF 的第一页或最后一页的某个位置,以某种方式(仍然需要解决)隐藏在公众视线之外。知道它的位置,使用 PDF 库检索它应该很容易。
我了解到,如果您在 PDF 中的第一个字符中添加“%”符号,则 PDF 阅读器(至少 Adobe 阅读器)将忽略整行(类似于 Java 中的“//”),从而使我可以在 PDF 中添加尽可能多的行(如果我知道在哪里,我会这样做),而最终用户并不知道这一点。我可以通过这种方式将我的整个自定义文件实现为 PDF。这里的问题是我实际上必须使用 Java 的输入阅读器之一阅读 PDF,但我不确定是哪一个。我知道 PDF 不能像文本文件一样读取,因为它是二进制文件(对吗?)。
最后,我决定采用方法3。除非有人有更好的想法,而且条件是:1。只有一个文件。该文件是PDF。2.用户必须不知道添加。
问题是我不知道如何将 PDF 作为文件读取(我不想将其作为 PDF 读取,我会使用 PDF 库来读取)。
- 那么,有人有更好的主意吗?
- 如果不是,我如何将 PDF 读取为FILE,因此输出是字符数组(带有换行符检测),然后用我的内容添加重写整个文件?