所以,我有一个类似于文本编辑器的程序。我需要它的输出格式为 pdf,但我又需要能够再次编辑该 PDF。因为我的程序输出从来都不是很复杂,而且因为我的程序是创建 PDF 的程序,所以我可以直接从创建的 PDF 中读取,但我认为将另一个文件附加到 PDF 会更容易,这样更容易阅读。
但是,我不希望用户看到文件已附加到 PDF。
我曾在某处读到过,您可以通过将 /EmbeddedFiles
更改为 /Embeddedfiles
来欺骗 PDF 阅读器。这样他们就不会检测到他们正在处理的 PDF 中附加了文件。
问题是,我如何阅读 PDF 以进行更改,然后在编辑之前再次阅读以将其还原?
我认为 PDF 库在这方面对我没有帮助,因为我正试图“破坏”PDF。我想我应该将它解析为某种字符串,然后查找我想要更改的子字符串。但是我对 PDF 格式太陌生了,不知道它是否真的那么简单,或者是否有特定的方法来做到这一点......
最佳答案
PDF 不是一种用于编辑和添加附件的格式(我什至不确定是否可以隐藏附件)有点不确定。假设您的技巧有效:
这是有效的 PDF 吗? 您可能想欺骗读者,但您会创建无效的 PDF,这比您尝试使用的方法更让我担心。
如果 PDF 阅读器更新其功能以支持无效语法怎么办? 这将意味着您的文件突然变得可见,这违背了您的意图。
最好的方法是:
让用户创建其文档。将文本存储在程序文件夹中。创建 PDF。编辑时,只需根据 PDF 的标题加载文本文档(或其他文件)即可。再次声明,PDF 不是一种编辑格式。
或者使用 Jonathan 的解决方案。这可以解决在本地存储文本的问题。
无论哪种方式,破坏 PDF 文件都是不可取的。
关于java - 在 Java 中将 PDF 作为字符串读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12298668/