Чтение и перезапись PDF-файла в python делает невозможным его открытие - PullRequest
0 голосов
/ 12 июня 2018

Я начинаю с файла 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 (Carriage)return) заменяются обоими, что делает невозможным открытие обработанного файла PDF.

Есть ли решение этой проблемы?Или, возможно, альтернативный способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...