我的PDF看起来很好,直到我编辑了它,现在它似乎仍然被破坏,即使我删除了我的编辑。文件diff程序表示这两个文件是相同的,但只有一个文件显示信息。
复制:
1)打开PDF,确保里面有东西
2)在文本编辑器中打开PDF并在顶部添加文本
3)正常打开PDF,它是空的。
4)删除步骤2中添加的文本
5)尽管有相同的文件内容,但PDF仍然损坏。
如果我真的将代码从PDF复制并粘贴到不同的文件中并尝试打开它,也会发生这种情况。打不开。
是否有任何方法可以将文本添加到PDF中,并使其不损坏?
发布于 2017-07-27 09:56:33
PDF是二进制格式。即使它看起来很像文字,它也不是文字.特别是PDF文件通常包含二进制数据流,例如用于图像或嵌入式字体或压缩的任意内容。此外,PDF依赖于PDF对象,从文件中的交叉引用表或流中注意到的偏移开始。
不过,许多文本编辑器不仅会将您输入的更改应用于文档,而且还会执行其他操作,如统一换行(DOS CRLF或Unix LF或Max CR)、用特殊字符替换无法解释的字节序列(例如Unicode替换字符)或完全删除它们等等。
前者(统一换行)在不更新交叉引用信息的情况下移动数据,使其变得无用。如果解释为换行字符的字节实际上是二进制流数据的一部分,则流数据也会受损。
后者(字节序列替换)通常通过压缩数据或其他无法修复的敏感二进制数据破坏PDF中的流内容。根据序列长度,这也会移动数据,从而使交叉引用无效。
因此,使用文本编辑器编辑PDF通常是破坏PDF的可靠方法。
有没有办法能够将文本添加到pdf中,并使其不被破坏?
是的,使用PDF识别软件,例如Acrobat,但也有其他软件。如果您喜欢编程方法,请使用一个良好的通用PDF库。许多编程平台都有这样的库。
对于极少数类型的更改,您也可以使用十六进制编辑器(只替换一些字节,不插入或删除任何内容),但您确实应该知道自己在做什么。
https://stackoverflow.com/questions/45342940
复制相似问题