繁体   English   中英

在Java中将PDF读作字符串

[英]Reading PDF as a string in Java

所以,我有一个程序,它是一种文本编辑器。 我需要它的输出格式为pdf,但我还需要能够再次编辑该PDF。 由于我的程序输出从未非常复杂,并且由于我的程序是创建PDF的程序,我可以直接从创建的PDF读取,但我认为将其他文件附加到PDF将更容易阅读。

但是,我不希望用户看到文件附加到PDF。

我看过一次的地方,你可以通过改变欺骗的PDF阅读器/EmbeddedFiles/Embeddedfiles 这样他们就不会检测到他们正在处理的PDF附加了文件。

问题是,我如何阅读PDF以进行更改,然后在编辑之前再次将其还原?

我不认为PDF库会帮助我,因为我试图“破坏”PDF。 我想我应该将其解析为某种字符串,然后查找我想要更改的子字符串。 但是我对PDF格式不太熟悉,知道它是否真的那么简单,或者是否有特定的方法来做到这一点......

PDF不是一种用于编辑和添加附件的格式(隐藏或不是我甚至不确定会工作的)是一种不确定的。 假设你的伎俩有效:

  • 这是一个有效的PDF吗? 您可能想欺骗读者,但是您将创建无效的PDF,这比您尝试使用的方法更让我担心。

  • 如果PDF阅读器更新其功能以支持无效语法,该怎么办? 这意味着你的文件突然显现,打败了你的意图。

最好的方法是:

让用户创建其文档。 将文本存储在程序文件夹中。 创建PDF。 编辑时,只需根据PDF标题加载文本文档(或其他)。 PDF再次不是编辑格式。

或者使用Jonathan的解决方案。 这适用于在本地存储文本。

无论哪种方式,都不希望破坏PDF文件。

如果您只想创建自己的二进制格式版本并将其称为PDF,则可以尝试向PDF文件的任何dictonary对象添加“自定义”条目,并将数据流与该条目相关联。 由于该条目将超出PDF规范,所有(实施良好的)读者都应该能够忽略它。
您可以使用PdfDictionary.put在iText中执行此操作, 例如 ,您可以将非标准数据添加到Catalog字典中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM