首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直接编辑PDF然后删除编辑仍然会导致pdf损坏。

直接编辑PDF然后删除编辑仍然会导致pdf损坏。
EN

Stack Overflow用户
提问于 2017-07-27 06:30:00
回答 1查看 222关注 0票数 0

我的PDF看起来很好,直到我编辑了它,现在它似乎仍然被破坏,即使我删除了我的编辑。文件diff程序表示这两个文件是相同的,但只有一个文件显示信息。

复制:

1)打开PDF,确保里面有东西

2)在文本编辑器中打开PDF并在顶部添加文本

3)正常打开PDF,它是空的。

4)删除步骤2中添加的文本

5)尽管有相同的文件内容,但PDF仍然损坏。

如果我真的将代码从PDF复制并粘贴到不同的文件中并尝试打开它,也会发生这种情况。打不开。

是否有任何方法可以将文本添加到PDF中,并使其不损坏?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-27 09:56:33

PDF是二进制格式。即使它看起来很像文字,它也不是文字.特别是PDF文件通常包含二进制数据流,例如用于图像或嵌入式字体或压缩的任意内容。此外,PDF依赖于PDF对象,从文件中的交叉引用表或流中注意到的偏移开始。

不过,许多文本编辑器不仅会将您输入的更改应用于文档,而且还会执行其他操作,如统一换行(DOS CRLF或Unix LF或Max CR)、用特殊字符替换无法解释的字节序列(例如Unicode替换字符)或完全删除它们等等。

前者(统一换行)在不更新交叉引用信息的情况下移动数据,使其变得无用。如果解释为换行字符的字节实际上是二进制流数据的一部分,则流数据也会受损。

后者(字节序列替换)通常通过压缩数据或其他无法修复的敏感二进制数据破坏PDF中的流内容。根据序列长度,这也会移动数据,从而使交叉引用无效。

因此,使用文本编辑器编辑PDF通常是破坏PDF的可靠方法。

有没有办法能够将文本添加到pdf中,并使其不被破坏?

是的,使用PDF识别软件,例如Acrobat,但也有其他软件。如果您喜欢编程方法,请使用一个良好的通用PDF库。许多编程平台都有这样的库。

对于极少数类型的更改,您也可以使用十六进制编辑器(只替换一些字节,不插入或删除任何内容),但您确实应该知道自己在做什么。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45342940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档