Pular para o conteúdo principal

Lendo e editando PDFs e documentos do Word com Python

Este tutorial mostra como ler documentos PDF e juntar vários PDFs em um só. Também ensina a ler e escrever documentos do Word a partir do Python.
Atualizado 17 de set. de 2026  · 8 min lido

Explorar com IA

ChatGPTClaudePerplexity

Documentos PDF

PDF é o Portable Document Format: um formato de arquivo que pode conter textos, imagens, gráficos e muito mais, diferente de arquivos de texto simples. É um arquivo com a extensão ".pdf", criado pela Adobe. Esse tipo de arquivo é independente de plataforma, funcionando em diferentes softwares, hardwares e sistemas operacionais.

Passos para instalar o pacote:

  1. Você precisa instalar um pacote chamado "pypdf2", que lida com arquivos com a extensão ".pdf". install package 1

  2. Você verá o pacote "pypdf2" instalado, como mostrado abaixo. install package 2

Lendo documentos PDF e extraindo dados

Você vai extrair apenas o texto do arquivo PDF, pois o PyPDF2 tem limitações para extrair conteúdo de mídia rica. Logos, imagens etc. não podem ser extraídos com ele — baixe o PDF a seguir para acompanhar este tutorial.
Baixar arquivo PDF

import pdf

A instrução 'import' no código acima carrega o módulo PyPDF2. Use 'open('pdfFileName', 'openingMode')', onde 'pdfFilename' é 'test.pdf' e 'openingMode' é 'rb', para leitura em formato binário.

open pdf

O PyPDF2 tem o método 'PdfFileReader', que recebe o objeto recém-criado 'pdfFileObject'. Agora você pode acessar o atributo 'numPages' de 'pdfFileObject', que informa o total de páginas.

total number of pages O resultado acima é 1, pois o PDF tem apenas uma página.

first page Use o método 'getPage(0)' no 'pdfReaderObject' para obter a primeira página. Em seguida, armazene o resultado em 'firstPageObject' e imprima todo o texto daquela página com o método 'extractText()'.

all text O código acima retorna todo o texto do arquivo PDF. Porém, a imagem não aparece no terminal — esse conteúdo não é extraído com o PyPDF2.

Unindo vários arquivos PDF em um só

Você vai juntar dois arquivos PDF diferentes em um único PDF. O PDF antigo é o que você usou antes; já o novo pode ser baixado no link abaixo:
Novo arquivo PDF.

new pdf

Vamos importar o módulo 'PdfFileMerger' do pacote PyPDF2, que ajuda a mesclar PDFs. Defina o 'path' com o caminho da pasta onde os arquivos estão, e liste os PDFs a serem unidos em 'pdf_files'.

merger object O objeto 'merger' é criado com 'PdfFileMerger'. Em seguida, faça um loop sobre cada arquivo na lista e faça a união chamando o método 'append' com o caminho e o arquivo. Por fim, gere o resultado com 'merger.write()', criando um novo PDF com o conteúdo mesclado.

merged pdf A imagem acima mostra o arquivo 'merged.pdf', que reúne o conteúdo de 'test.pdf' e 'test-1.pdf'.

Documentos Word

Arquivos do Word têm a extensão ".docx" no final do nome. Diferente de arquivos de texto simples, eles trazem formatação rica: tamanhos, alinhamentos, cores, imagens, fontes e outras estruturas do documento.

Você vai precisar de um aplicativo para trabalhar com documentos do Word. O mais popular para Windows e macOS é o Microsoft Word, mas ele é pago. Uma alternativa gratuita é o "LibreOffice", que vem pré-instalado em muitas distribuições Linux. Você pode baixar os aplicativos para Windows e macOS. Neste tutorial, vamos usar o Microsoft Word no Windows.

Passos para instalar o pacote

  1. Instale o pacote "python-docx", que permite manipular documentos '.docx'. python-docx package

  2. Você verá o pacote 'python-docx' instalado, como mostrado abaixo. installed package

Você pode acompanhar no shell interativo do Python, mas é melhor usar um editor de texto. Aqui usamos o Sublime Text para a parte de código deste tutorial.

Escrevendo um documento do Word

document module imported

No primeiro trecho, o módulo 'document' é importado do pacote 'docx'. A segunda linha cria um novo documento do Word com o objeto Document. O arquivo é salvo como 'first.docx' usando 'document.save()'.

Adicionar um título

add heading

O código acima usa 'Document()' para abrir um novo arquivo e 'document.save('addHeader.docx')' para salvar o documento editado. Adicione um título com o método 'add_heading('texto', level=número)', que recebe o texto e o nível de título, de 0 a 4.

heading levels

O resultado é o arquivo 'addedHeader.docx'. O nível 0 cria um destaque com uma linha horizontal abaixo do texto; o nível 1 é o título principal. Os demais níveis são subtítulos com tamanhos de fonte em ordem decrescente.

Adicionar um parágrafo

add a paragraph

O código acima usa 'Document()' para abrir um novo documento e 'document.save('addParagraph.docx')' para salvar o arquivo editado. Adicione parágrafos com 'add_paragraph('texto', style='estilo_opcional')'. O parâmetro 'style' é opcional; você pode usar, por exemplo, 'List Number' e 'List Bullet'.

newly created file

O resultado é o arquivo 'addedParagraph.docx', com um parágrafo simples na primeira linha. Depois, um título e, abaixo dele, uma lista ordenada com os itens 1 e 2. Em seguida, há outro título com dois itens em uma lista com marcadores.

Adicionar uma imagem

add a picture

O código acima usa 'Document()' para criar um novo arquivo e 'document.save('addPicture.docx')' para salvar o documento editado. Adicione a imagem com 'add_picture()', cujo primeiro parâmetro é o caminho do arquivo, por exemplo 'cat-1.jpeg'. Largura e altura são parâmetros opcionais, com padrão de 72 dp; aqui usamos 'Inches' para definir as dimensões.

added picture

O resultado é o arquivo 'addedPicture.docx', com uma imagem de gato com 1,25 polegadas de largura e altura.

Lendo um documento do Word

Agora vamos ler um documento de exemplo no Python. Baixe em:
Baixar exemplo.

reading word document

A primeira linha importa 'Document' do módulo 'docx' para carregar o arquivo necessário e criar um objeto. 'obtainText' é uma função que recebe o arquivo 'fullText.docx'. O loop percorre cada parágrafo acessado por 'document.paragraphs' e os insere em uma lista vazia com 'append'. Por fim, a função retorna a lista de parágrafos, cada um terminado por uma nova linha.

plain text

A saída acima traz apenas o texto simples, sem estilo, cor etc., ou seja, não é um documento de texto rico.

Parabéns

Parabéns, você concluiu a leitura deste tutorial.

Se quiser aprender mais sobre importação de dados no Python, experimente o curso Introduction to Importing Data in Python da DataCamp.

Confira também nosso tutorial de estruturas de dados em Python.

Você também pode explorar os recursos abaixo para ampliar seu conhecimento em tópicos específicos.

  1. Documentação do python-docx
  2. Documentação do PyPDF2

Referências:
Automate the Boring Stuff with Python: Working with Word Documents

Tópicos
Python

Saiba mais sobre Python

Curso

Introdução à importação de dados em Python

3 h
340.9K
Aprenda a importar dados para o Python de várias fontes, como Excel, SQL, SAS e diretamente da web.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

Tutorial

Tutorial sobre concatenação de strings em Python

Aprenda vários métodos para concatenar strings em Python, com exemplos para ilustrar cada técnica.
DataCamp Team's photo

DataCamp Team

5 min

Tutorial

Tutorial do Python Excel: O guia definitivo

Saiba como ler e importar arquivos do Excel em Python, gravar dados nessas planilhas e encontrar os melhores pacotes para fazer isso.
Natassha Selvaraj's photo

Natassha Selvaraj

15 min

Tutorial

Tutorial de como executar scripts Python

Saiba como executar um script Python a partir da linha de comando e também como fornecer argumentos de linha de comando ao seu script.
Aditya Sharma's photo

Aditya Sharma

10 min

Tutorial

Tutorial de junção de DataFrames no pandas

Neste tutorial, você aprenderá várias maneiras pelas quais vários DataFrames podem ser mesclados em python usando a biblioteca Pandas.
DataCamp Team's photo

DataCamp Team

13 min

Tutorial

Funções em Python: como chamar e escrever funções

Descubra como escrever funções em Python reutilizáveis e eficientes. Domine parâmetros, instruções de retorno e temas avançados como funções lambda. Organize melhor seu código com main() e outras boas práticas.
Karlijn Willems's photo

Karlijn Willems

14 min

Tutorial

Instruções IF, ELIF e ELSE em Python

Neste tutorial, você vai aprender só sobre as instruções if else do Python.
Sejal Jaiswal's photo

Sejal Jaiswal

9 min

Ver MaisVer Mais