
Como visualizar um arquivo PDF em Python
Este artigo irá explorar como visualizar arquivos PDF em Python usando a biblioteca IronPDF .
IronPDF - Biblioteca Python
IronPDF é uma poderosa biblioteca Python que permite aos desenvolvedores trabalhar com arquivos PDF de forma programática. Com o IronPDF, você pode facilmente gerar, manipular e extrair dados de documentos PDF, tornando-o uma ferramenta versátil para diversas tarefas relacionadas a PDFs. Seja para criar PDFs do zero, modificar PDFs existentes ou extrair conteúdo de PDFs, o IronPDF oferece um conjunto abrangente de recursos para simplificar seu fluxo de trabalho.
Algumas funcionalidades da biblioteca IronPDF for Python incluem:
- Crie um novo arquivo PDF do zero usando HTML ou URL.
- Editar arquivos PDF existentes
- Girar páginas do PDF
- Extrair texto , metadados e imagens de arquivos PDF
- Converter arquivos PDF para outros formatos
- Proteja arquivos PDF com senhas e restrições.
- Dividir e mesclar PDFs
Observação: o IronPDF gera um arquivo PDF com marca d'água. Para remover a marca d'água, você precisa licenciar o IronPDF. Se você deseja usar uma versão licenciada do IronPDF, visite o site do IronPDF para obter uma chave de licença .
Pré-requisitos
Antes de trabalhar com o IronPDF em Python, existem alguns pré-requisitos:
-
Instalação do Python: Certifique-se de que o Python esteja instalado em seu sistema. O IronPDF é compatível com as versões 3.x do Python, portanto, certifique-se de ter uma instalação do Python compatível.
-
Biblioteca IronPDF : Instale a biblioteca IronPDF para acessar suas funcionalidades. Você pode instalá-lo usando o gerenciador de pacotes do Python ( pip ) executando o seguinte comando na sua interface de linha de comando:
-
Biblioteca Tkinter: Tkinter é o conjunto de ferramentas GUI padrão para Python. É utilizado para criar a interface gráfica do usuário para o visualizador de PDF no trecho de código fornecido. O Tkinter geralmente vem pré-instalado com o Python, mas se você encontrar algum problema, pode instalá-lo usando o gerenciador de pacotes:
pip install tkinterSHELL -
Biblioteca Pillow: A biblioteca Pillow é um fork da Python Imaging Library (PIL) e fornece recursos adicionais de processamento de imagens. É utilizado no trecho de código para carregar e exibir as imagens extraídas do PDF. Instale o Pillow usando o gerenciador de pacotes:
pip install pillowSHELL -
Ambiente de Desenvolvimento Integrado (IDE): Utilizar um IDE para lidar com projetos em Python pode melhorar significativamente sua experiência de desenvolvimento. Oferece funcionalidades como preenchimento automático de código, depuração e um fluxo de trabalho mais simplificado. Uma IDE popular para desenvolvimento em Python é o PyCharm. Você pode baixar e instalar o PyCharm no site da JetBrains ( https://www.jetbrains.com/pycharm/ ).
-
Editor de texto: Como alternativa, se preferir trabalhar com um editor de texto leve, você pode usar qualquer editor de texto de sua escolha, como o Visual Studio Code, o Sublime Text ou o Atom. Esses editores oferecem realce de sintaxe e outros recursos úteis para o desenvolvimento em Python. Você também pode usar o próprio aplicativo IDE do Python para criar scripts em Python.
Criando um projeto de visualizador de PDF usando o PyCharm
Após instalar o PyCharm IDE, crie um projeto Python no PyCharm seguindo os passos abaixo:
-
Inicie o PyCharm: Abra o PyCharm a partir do iniciador de aplicativos do seu sistema ou do atalho na área de trabalho.
-
Criar um novo projeto: Clique em "Criar novo projeto" ou abra um projeto Python existente.
IDE PyCharm -
Configurar as definições do projeto: Dê um nome ao seu projeto e escolha o local onde deseja criar o diretório do projeto. Selecione o interpretador Python para o seu projeto. Em seguida, clique em "Criar".
Criar um novo projeto em Python -
Criar arquivos de origem: O PyCharm criará a estrutura do projeto, incluindo um arquivo Python principal e um diretório para arquivos de origem adicionais. Comece a escrever o código e clique no botão "Executar" ou pressione Shift+F10 para executar o script.
Passos para visualizar arquivos PDF em Python usando o IronPDF
Importe as bibliotecas necessárias.
Para começar, importe as bibliotecas necessárias. Neste caso, as bibliotecas os, shutil, ironpdf, tkinter e PIL serão necessárias. As bibliotecas os e shutil são usadas para operações de arquivos e pastas, ironpdf é a biblioteca para trabalhar com arquivos PDF, tkinter é usada para criar a interface gráfica do usuário (GUI), e PIL é usada para manipulação de imagens.
import os
import shutil
import ironpdf
from tkinter import *
from PIL import Image, ImageTk
Converter documento PDF em imagens
Em seguida, defina uma função chamada convert_pdf_to_images. Esta função recebe o caminho do arquivo PDF como entrada. Dentro da função, a biblioteca IronPDF é usada para carregar o documento PDF do arquivo. Em seguida, especifica-se o caminho da pasta para armazenar os arquivos de imagem extraídos. O método pdf.RasterizeToImageFiles do IronPDF é usado para converter cada página do PDF em arquivo de imagem e salvá-lo na pasta especificada. Uma lista é usada para armazenar os caminhos das imagens. O exemplo de código completo é o seguinte:
def convert_pdf_to_images(pdf_file):
"""Convert each page of a PDF file to an image."""
pdf = ironpdf.PdfDocument.FromFile(pdf_file)
# Extract all pages to a folder as image files
folder_path = "images"
pdf.RasterizeToImageFiles(os.path.join(folder_path, "*.png"))
# List to store the image paths
image_paths = []
# Get the list of image files in the folder
for filename in os.listdir(folder_path):
if filename.lower().endswith((".png", ".jpg", ".jpeg", ".gif")):
image_paths.append(os.path.join(folder_path, filename))
return image_paths
Para extrair texto de documentos PDF, visite esta página de exemplos de código .
Fecho de janela com maçaneta
Para limpar os arquivos de imagem extraídos quando a janela do aplicativo é fechada, defina uma função on_closing. Dentro desta função, use o método shutil.rmtree() para excluir toda a pasta images. Em seguida, defina essa função como o protocolo a ser executado quando a janela for fechada. O código a seguir ajuda a realizar a tarefa:
def on_closing():
"""Handle the window closing event by cleaning up the images."""
# Delete the images in the 'images' folder
shutil.rmtree("images")
window.destroy()
window.protocol("WM_DELETE_WINDOW", on_closing)
Criar a janela da GUI
Agora, vamos criar a janela principal da GUI usando o construtor Tk(), definir o título da janela para "Visualizador de Imagens" e definir a função on_closing() como o protocolo para lidar com o fechamento da janela.
window = Tk()
window.title("Image Viewer")
window.protocol("WM_DELETE_WINDOW", on_closing)
Criar uma tela rolável
Para exibir as imagens e permitir rolagem, crie um widget Canvas. O widget Canvas é configurado para preencher o espaço disponível e expandir em ambas as direções usando pack(side=LEFT, fill=BOTH, expand=True). Além disso, crie um widget Scrollbar e configure-o para controlar a rolagem vertical de todas as páginas e do canvas.
canvas = Canvas(window)
canvas.pack(side=LEFT, fill=BOTH, expand=True)
scrollbar = Scrollbar(window, command=canvas.yview)
scrollbar.pack(side=RIGHT, fill=Y)
canvas.configure(yscrollcommand=scrollbar.set)
# Update the scrollregion to encompass the entire canvas
canvas.bind("<Configure>", lambda e: canvas.configure(
scrollregion=canvas.bbox("all")))
# Configure the vertical scrolling using mouse wheel
canvas.bind_all("<MouseWheel>", lambda e: canvas.yview_scroll(
int(-1*(e.delta/120)), "units"))
Criar uma moldura para imagens
Em seguida, crie um widget Frame dentro do canvas para conter as imagens usando create_window() para posicionar o frame dentro do canvas. As coordenadas (0, 0) e o parâmetro anchor='nw' garantem que o frame comece no canto superior esquerdo do canvas.
frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")
Converter arquivo PDF em imagens e exibi-las
O próximo passo é chamar a função convert_pdf_to_images() com o nome do caminho do arquivo PDF de entrada. Esta função extrai as páginas do PDF como imagens e retorna uma lista de caminhos de imagem. Ao iterar através dos caminhos das imagens e carregar cada imagem usando o método Image.open() da biblioteca PIL, um objeto PhotoImage é criado usando ImageTk.PhotoImage(). Em seguida, crie um widget Label para exibir a imagem.
images = convert_pdf_to_images("input.pdf")
# Load and display the images in the Frame
for image_path in images:
image = Image.open(image_path)
photo = ImageTk.PhotoImage(image)
label = Label(frame, image=photo)
label.image = photo # Store a reference to prevent garbage collection
label.pack(pady=10)
O arquivo de entrada
Executar o loop principal da GUI
Finalmente, vamos executar o loop de eventos principal usando window.mainloop(). Isso garante que a janela da interface gráfica permaneça aberta e responsiva até que seja fechada pelo usuário.
window.mainloop()
A saída da interface do usuário
Conclusão
Este tutorial explorou como visualizar documentos PDF em Python usando a biblioteca IronPDF . O tutorial abordava os passos necessários para abrir um arquivo PDF e convertê-lo em uma série de arquivos de imagem, exibi-los em uma tela com rolagem e lidar com a limpeza das imagens extraídas quando o aplicativo é fechado.
Para obter mais detalhes sobre a biblioteca IronPDF for Python, consulte a documentação .
Baixe e instale a biblioteca IronPDF for Python e obtenha também uma versão de avaliação gratuita para testar todas as suas funcionalidades em desenvolvimento comercial.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.
Artigos relacionados


