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:
pip install ironpdfpip install ironpdfSHELL -
Biblioteca Tkinter: Tkinter é o conjunto de ferramentas GUI padrão for 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 tkinterpip 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 pillowpip 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, serão necessárias as bibliotecas os, shutil, ironpdf, tkinter e PIL. As bibliotecas os e shutil são usadas para operações com arquivos e pastas, a biblioteca ironpdf é usada para trabalhar com arquivos PDF, a biblioteca tkinter é usada para criar a interface gráfica do usuário (GUI) e a biblioteca PIL é usada para manipulação de imagens.
import os
import shutil
import ironpdf
from tkinter import *
from PIL import Image, ImageTk
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 um 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
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 for 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)
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 como "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)
window = Tk()
window.title("Image Viewer")
window.protocol("WM_DELETE_WINDOW", on_closing)
Criar uma tela rolável
Para exibir as imagens e habilitar a rolagem, crie um widget Canvas. O widget Canvas está 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 da tela.
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"))
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 da tela para conter as imagens usando create_window() para posicionar a moldura dentro da tela. As coordenadas (0, 0) e o parâmetro anchor='nw' garantem que o quadro comece no canto superior esquerdo da tela.
frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")
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 caminho do arquivo PDF de entrada. Essa função extrai as páginas do PDF como imagens e retorna uma lista com os caminhos das imagens. Ao iterar pelos 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)
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()
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.
Perguntas frequentes
Como posso visualizar arquivos PDF em Python?
Você pode usar a biblioteca IronPDF para visualizar arquivos PDF em Python. Ela permite converter páginas de PDF em imagens, que podem então ser exibidas em um aplicativo com interface gráfica usando Tkinter.
Quais são os passos necessários para criar um visualizador de PDF em Python?
Para criar um visualizador de PDF em Python, você precisa instalar o IronPDF, usar o Tkinter para a interface gráfica e o Pillow para processamento de imagens. Converta as páginas do PDF em imagens usando o IronPDF e exiba-as em uma tela rolável criada com o Tkinter.
Como faço para instalar o IronPDF para usar em um projeto Python?
Você pode instalar o IronPDF usando o pip, executando o comando pip install ironpdf no seu terminal ou prompt de comando.
Quais bibliotecas são necessárias para criar um aplicativo visualizador de PDF em Python?
Você precisará do IronPDF para manipulação de PDFs, do Tkinter para a interface gráfica e do Pillow para processamento de imagens.
Posso extrair imagens de um PDF usando Python?
Sim, o IronPDF permite extrair imagens de PDFs, que podem então ser processadas ou exibidas usando a biblioteca Pillow.
Como posso converter uma página PDF em uma imagem usando Python?
Você pode usar a funcionalidade do IronPDF para converter páginas PDF em formatos de imagem, que podem então ser manipuladas ou exibidas em um aplicativo Python.
Como lidar com o fechamento de janelas em um aplicativo visualizador de PDF em Python?
Em um aplicativo visualizador de PDF, você pode lidar com o fechamento da janela limpando as imagens extraídas e garantindo que todos os recursos sejam liberados corretamente, geralmente usando as funções de tratamento de eventos do Tkinter.
Como posso proteger arquivos PDF em Python?
O IronPDF oferece opções para aprimorar a segurança de PDFs, adicionando senhas e restrições de uso aos arquivos PDF.
Qual a vantagem de usar Tkinter em um aplicativo de visualização de PDF?
O Tkinter permite criar uma interface gráfica amigável para o seu visualizador de PDF, possibilitando recursos como visualizações com rolagem para navegar pelas páginas do PDF.
Qual a finalidade de usar o Pillow em um projeto PDF?
O Pillow é usado em um projeto PDF para processar imagens, como carregar e exibir imagens que foram extraídas de arquivos PDF usando o IronPDF.




