Какой тип файла является магическим числом "7a7e656a"? - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу извлечь все имеющиеся изображения в файл PDF. Я пробовал несколько библиотек, таких как fixz, pdfminer, minecart и т. Д., Но ни одна из них не дает удовлетворительных результатов

при использовании кода pdfminer согласно https://denis.papathanasiou.org/archive/2010.08.04.post.pdf,, когда я пытаюсь напечатать bytes_as_hex, он возвращает "7a7e656a"которого нет в глобальном списке всех сигнатур файлов (https://en.wikipedia.org/wiki/List_of_file_signatures), так как же продолжить, чтобы получить правильное расширение этого изображения и сохранить его?

def determine_image_type (stream_first_4_bytes):
    """Find out the image file type based on the magic number comparison of the first 4 (or 2) bytes"""
    file_type = None
    bytes_as_hex = b2a_hex(stream_first_4_bytes)
    bytes_as_hex = (bytes_as_hex).decode('utf-8')
    print(bytes_as_hex)   #output: 7a7e656a
    if bytes_as_hex.startswith('ffd8'):
        file_type = '.jpeg'
    elif bytes_as_hex == '89504e47':
        file_type = '.png'
    elif bytes_as_hex == '47494638':
        file_type = '.gif'
    elif bytes_as_hex.startswith('424d'):
        file_type = '.bmp'

    return file_type

онлайн-инструмент PDF Candy(https://pdfcandy.com/pdf-ocr.html) может извлечь все изображения из входного файла. Я хочу получить аналогичный выходной файл. Ref, содержащий 4 изображения (https://drive.google.com/file/d/1A6v-FJXW_ujEBCvY1HTa1TodGZKy5QAo/view?usp=sharing)

1 Ответ

0 голосов
/ 05 ноября 2019

следующая команда выдала ожидаемый результат с координатами изображения, сохраненного в файле XML, и изображений, которые будут сохранены в локальной системе. (коэффициент масштабирования по умолчанию равен 1,5, поэтому я явно написал 1, чтобы не принимать во внимание какой-либо фактор)

pdftohtml -xml -zoom 1 file.pdf
...