【问题标题】:Manipulating PDF file处理 PDF 文件
【发布时间】:2019-03-20 13:32:12
【问题描述】:

我想将 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 无效!

【问题讨论】:

标签: pdf ansi pdf-manipulation


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      相关资源
      最近更新 更多