在python中读取和重写PDF文件使其无法打开

时间:2018-06-12 14:48:14

标签: python pdf

我从PDF文件开始,其中%% EOF之后的额外不需要的内容出现在二进制代码中。

在python代码中,我尝试通过阅读PDF文件删除这些不需要的内容,检查最后一个%% EOF的位置,并创建一个新文件,其中%% EOF之后的内容不再添加。

代码:

def main():
    check_and_correct_file()


def check_and_correct_file():
    # Read file, retrieve content and close file
    read_file = open('any_pdf_extra.pdf', encoding="latin-1", mode='rt')
    file = read_file.readlines()
    read_file.close()

    # Set starting values of variables
    eof_value = '%%EOF'
    line_count = 0
    last_eof = 0

    # Set last occurrence of %%EOF
    for line in file:
        if eof_value in line:
            last_eof = line_count

        line_count += 1

    # Write all content except for data after last occurrence of %%EOF
    write_file = open('any_pdf_fixing.pdf', encoding="latin-1", mode='wt')
    for i in range(0, last_eof + 1):
        write_file.write(file[i])
    write_file.close()

原始PDF文件的二进制代码:

enter image description here

已处理PDF文件的二进制代码:

enter image description here

如图所示,%% EOF之后的内容被删除,但LF(换行)和CR(回车)被两者替换,这使得处理后的PDF文件无法打开。

这个问题有解决方案吗?或者也许是另一种方法吗?

0 个答案:

没有答案