Извлеките первую страницу pdf-файла с помощью библиотеки pdfminer python3

#python #pdf #pdfminer

Вопрос:

Я хочу получить данные первой страницы из файла pdffile.

Я использовал pdfminer и получил все данные pdffile в выводе, но я хочу получить только данные первой страницы pdffile. что мне делать?

Мой код приведен ниже.

 from pdfminer.high_level import extract_pages
from pdfminer.layout import LTTextContainer, LTChar,LTLine,LAParams
import os
path=r'/home/user/Desktop/abc.pdf'

Extract_Data=[]

for page_layout in extract_pages(path):
    print(page_layout)
    for element in page_layout:
        if isinstance(element, LTTextContainer):
            for text_line in element:
                for character in text_line:
                    if isinstance(character, LTChar):
                        Font_size=character.size
            Extract_Data.append([Font_size,(element.get_text())])
 

Моя проблема, я думаю, в page_layout.
как получить только данные первой страницы??

Ответ №1:

extract_pages имеет необязательный аргумент, который может это сделать:

 def extract_pages(pdf_file, password='', page_numbers=None, maxpages=0,
                  caching=True, laparams=None):
    """Extract and yield LTPage objects
    :param pdf_file: Either a file path or a file-like object for the PDF file
        to be worked on.
    :param password: For encrypted PDFs, the password to decrypt.
    :param page_numbers: List of zero-indexed page numbers to extract.
    :param maxpages: The maximum number of pages to parse
 

Источник: https://github.com/pdfminer/pdfminer.six/blob/22f90521b823ac5a22785d1439a64c7bdf2c2c6d/pdfminer/high_level.py#L126

Поэтому extract_pages(path, page_numbers=[0], maxpages=1)[0] следует возвращать только данные первой страницы, если я правильно понимаю.

Комментарии:

1. Спасибо, что это работает, но в моем случае это так, extract_pages(путь, номера страниц=[0], maxpages=1). Спасибо, это решило мою проблему.