java - 在 Java 中将 PDF 作为字符串读取

标签 java parsing pdf

所以,我有一个类似于文本编辑器的程序。我需要它的输出格式为 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/

相关文章:

java - Junit 测试在包上运行时失败,但在文件上运行时成功

Java - 多项式项的 toString 方法

java - Java中一个接口(interface)可以扩展多个接口(interface)吗?

python - 如何使用 json.loads 将字符串 int JSON 转换为真正的 int

parsing - Lex/Flex 中的开始状态

java - 无法从 servlet 访问我的数据库

java - 使用 DOM 解析 XML 文件 (Java)

php - PDFTK 和 PDF2PS 不能很好地协同工作

java Servlet代理不下载某些pdf文件

jquery - pdf 和打印内容的分页符