我正在尝试获取PDF文件,更改了对象的顺序(索引未更改,只有文件内对象的位置)。 在那之后,我正在使用新的对象偏移量来创建新的外部参照流
我用Python实现了程序,但生成的文件总是被损坏。
问题:
可能我错过了一些重要的事实和细微差别?我将不胜感激任何帮助
答案 0 :(得分:0)
由于既没有显示您的代码也没有描述结果文件损坏的性质(更不用说共享示例原始文件和重新排序的文件),因此很难为您提供帮助。
- 如何使文件非线性化?目前,我正在从文件及其外部参照条目中删除线性化对象
醇>
删除线性化参数字典是个好主意。关于交叉引用,请注意两个表中的条目都是相关的。
- 令牌“endstream”应该通过\ r \ n与其内容明确分开,还是没有必要?
醇>
引用PDF规范:
数据之后和endstream之前应该有行尾标记
(第7.3.8节流对象 - ISO 32000-1)
“应该”表示强烈建议但不是要求。因此,您的代码必须面对那些没有行尾标记的PDF。
顺便说一下,
CARRIAGE RETURN(0Dh)和LINE FEED(0Ah)字符,也称为换行符,应为 作为行尾(EOL)标记处理。 CARRIAGE RETURN的组合紧接着是a LINE FEED应被视为一个EOL标记。
(第7.2.2节字符集 - ISO 32000-1)
因此,即使有行结束标记,它也不一定是\r\n
,也可能是单\r
或\n
。