0

我想将 PDF 文件作为文本(postscript)读取,在文件结构中添加新对象并将最终输出另存为新 PDF,但如果我只是复制 PDF PostScript 内容并将其粘贴到新创建的 PDF 文件中(其中encoding='ansi'),该文件不起作用。

我确信这可能是编码问题,但我不确定在处理原始 PostScript 内容后应该怎么做才能获得有效的 PDF 文件格式。

这是一段对我不起作用的代码:

pdf_file = open('Input.pdf', 'r', encoding='ansi').read()
pdf_file_bytes = bytearray(pdf_file, 'ansi')
pdf_file = open('Output_bytes.pdf', 'wb').write(pdf_file_bytes)

正如我所说,输出 PDF 无效!

4

2 回答 2

0

PDF 文件是由各种对象组成的复杂文件格式,除非您仔细阅读 PDF 规范的低级语法,否则很难将某些字节任意替换为其他一些字节并使其生成仍然有效的 PDF 文件.

更重要的是你想要完成什么。例如,可能有一种高级方式来执行您尝试执行的任何操作,但不涉及直接操作 PDF 语法。例如,如果您需要修改字体、添加注释、设置 PDF 版本等。否则,如果您确实需要修改 PDF 语法,则需要使用能够处理低级对象的库。

于 2019-03-20T15:12:14.543 回答
0

第一个问题;PDF 文件的内容是 PDF,而不是 PostScript。

其次,PDF 是一种二进制文件格式,因此如果您复制和粘贴它,任何类型的翻译(例如 CR/LF)都会破坏它。

你没有说你的代码使用什么编程语言,虽然它看起来像 Python。如果是 Python,那么将文件作为二进制而不是文本读取可能会有所帮助。

于 2019-03-20T14:42:53.277 回答