Automação de Documentos: Convertendo PDF para Word com Python

POR CÓDIGO DA HORA • 12 MARÇO 2026

Manipulação de Arquivos Office

Transformar arquivos PDF em documentos editáveis (.docx) é uma demanda comum em escritórios e automações administrativas. A biblioteca pdf2docx utiliza engenharia reversa para reconstruir layouts, tabelas e imagens no Word.

Procedimento de Instalação

Esta funcionalidade depende da biblioteca pdf2docx. Instale-a via terminal:

pip install pdf2docx

O Código Completo

Este script gerencia o processo de conversão, garantindo que o objeto conversor seja fechado corretamente após o uso para liberar memória do sistema.

from pdf2docx import Converter
import os

def converter_pdf_para_word(arquivo_pdf, arquivo_docx):
    try:
        # Verifica se o arquivo de origem existe
        if not os.path.exists(arquivo_pdf):
            print(f"Erro: O arquivo {arquivo_pdf} não foi encontrado.")
            return

        print(f"Iniciando conversão de: {arquivo_pdf}...")

        # Inicializa o conversor
        cv = Converter(arquivo_pdf)
        
        # Converte o documento completo (start=0, end=None)
        cv.convert(arquivo_docx, start=0, end=None)
        
        # Encerra o conversor obrigatoriamente
        cv.close()

        print(f"Sucesso! Arquivo salvo como: {arquivo_docx}")

    except Exception as e:
        print(f"Ocorreu um erro durante a conversão: {e}")

# Execução
if __name__ == "__main__":
    pdf_entrada = 'documento.pdf'
    docx_saida = 'documento_editavel.docx'
    
    converter_pdf_para_word(pdf_entrada, docx_saida)

Melhorias Aplicadas

  • Gerenciamento de Memória: Adicionamos o método cv.close(). Sem ele, o arquivo PDF pode ficar "travado" no sistema, impedindo que seja movido ou deletado após a execução.
  • Tratamento de Exceções: O código agora prevê erros como falta de permissão de escrita ou arquivos PDF corrompidos.
  • Verificação de Caminho: O uso da biblioteca os garante que o script não falhe silenciosamente caso o nome do arquivo esteja incorreto.
  • Flexibilidade de Páginas: Embora o código converta o arquivo todo, a estrutura preparada permite que você defina páginas específicas (ex: start=0, end=2 para as duas primeiras páginas).