PDFs são uma forma comum de partilhar texto. PDF significa Portable Document Format e usa a extensão .pdf. Ele foi criado no início dos anos 90 pelo Adobe Systems.
Ler documentos PDF usando python pode ajudá-lo a automatizar uma grande variedade de tarefas.
Neste tutorial vamos aprender como extrair texto de um arquivo PDF em Python.
Vamos começar.
- Leitura e extracção de texto de um ficheiro PDF em Python
- Usando PyPDF2 para Extrair Texto em PDF
- 1. Instale o pacote
- 2. Importar PyPDF2
- 3. Abra o PDF em modo binário de leitura
- 4. Use PyPDF2.PdfFileReader() para ler o texto
- Código completo para ler texto PDF usando PyPDF2
- Usando PDFplumber para Extrair Texto
- 1. Instale o pacote
- 2. Importar pdfplumber
- 3. Usando PDFplumber para ler pdfs
Leitura e extracção de texto de um ficheiro PDF em Python
Para o propósito deste tutorial estamos a criar um exemplo de PDF com 2 páginas. Você pode fazê-lo usando qualquer processador Word como o Microsoft Word ou Google Docs e salvar o arquivo como PDF.
Texto na página 1:
Hello World. This is a sample PDF with 2 pages. This is the first page.
Texto na página 2:
This is the text on Page 2.
Usando PyPDF2 para Extrair Texto em PDF
Você pode usar PyPDF2 para extrair texto de um PDF. Vamos ver como funciona.
1. Instale o pacote
Para instalar o PyPDF2 no seu sistema introduza o seguinte comando no seu terminal. Você pode ler mais sobre o gerenciador de pacotes pip.
pip install pypdf2
2. Importar PyPDF2
Abrir um novo notebook python e começar a importar o PyPDF2.
import PyPDF2
3. Abra o PDF em modo binário de leitura
Inicie com a abertura do PDF em modo binário de leitura usando a seguinte linha de código:
pdf = open('sample_pdf.pdf', 'rb')
Isto irá criar um objecto PdfFileReader para o nosso PDF e armazená-lo na variável ‘pdf’.
4. Use PyPDF2.PdfFileReader() para ler o texto
Agora você pode usar o método PdfFileReader() do PyPDF2 para ler o arquivo.
pdfReader = PyPDF2.PdfFileReader(pdf)
Para obter o texto da primeira página do PDF, use as seguintes linhas de código:
page_one = pdfReader.getPage(0)print(page_one.extractText())
Será obtido o resultado como:
Hello World. !This is a sample PDF with 2 pages. !This is the first page. !Process finished with exit code 0
Aqui usamos o método getPage para armazenar a página como um objeto. Depois usamos o método extractText() para obter texto do objeto page.
O texto que obtemos é do tipo String.
Simplesmente para obter a segunda página do uso do PDF:
page_one = pdfReader.getPage(1)print(page_one.extractText())
Recebemos a saída como :
Código completo para ler texto PDF usando PyPDF2
O código completo desta seção é dado abaixo:
import PyPDF2pdf = open('sample_pdf.pdf', 'rb')pdfReader = PyPDF2.PdfFileReader(pdf)page_one = pdfReader.getPage(0)print(page_one.extractText())
Se você notar, a formatação da primeira página está um pouco fora da saída acima. Isto porque o PyPDF2 não é muito eficiente na leitura de PDFs.
Por sorte, Python tem uma alternativa melhor ao PyPDF2. Nós vamos ver isso a seguir.
Usando PDFplumber para Extrair Texto
PDFplumber é outra ferramenta que pode extrair texto de um PDF. É mais poderoso em comparação com o PyPDF2.
1. Instale o pacote
Comecemos com a instalação do PDFplumber.
pip install pdfplumber
2. Importar pdfplumber
Comece com a importação de PDFplumber usando a seguinte linha de código :
import pdfplumber
3. Usando PDFplumber para ler pdfs
Você pode começar a ler PDFs usando PDFplumber com o seguinte código:
Isto irá obter o texto da primeira página do nosso PDF. A saída vem como:
Hello World. This is a sample PDF with 2 pages. This is the first page. Process finished with exit code 0
Você pode comparar isso com a saída do PyPDF2 e ver como o PDFplumber é melhor quando se trata de formatação.
PDFplumber também fornece opções para obter outras informações do PDF.
Por exemplo, você pode usar o .page_number para obter o número da página.
print(first_page.page_number)
Saída :