Extraia imagens de arquivos PDF usando Python
Você pode realizar muitas operações com arquivos externos e fontes usando Python. Uma das operações é extrair imagens de arquivos PDF em Python, o que é muito útil quando o PDF é muito longo e não pode ser gerenciado manualmente.
Este guia mostra como extrair imagens de arquivos PDF em Python.
Instale a biblioteca PyMuPDF
em Python
Para realizar esta operação, deve-se instalar a biblioteca PyMuPDF
em Python. Esta biblioteca ajuda o usuário a lidar com os arquivos nos formatos PDF
, XPS
, FB2
, OpenXPS
e EPUB
. É uma biblioteca muito versátil, conhecida por seu alto desempenho e qualidade de renderização. No entanto, ele não vem pré-instalado em Python. Para instalar esta biblioteca, execute o seguinte comando.
pip install PyMuPDF Pillow
Extraia imagens de um arquivo PDF em Python
Agora, para extrair imagens de um arquivo PDF, há um procedimento passo a passo:
- Primeiro, todas as bibliotecas necessárias são importadas.
import fitz
import io
from PIL import Image
- Em seguida, é definido o caminho para o arquivo do qual as imagens devem ser extraídas. O arquivo é aberto usando a função
open()
do módulofitz
.
file_path = "randomfile.pdf"
open_file = fitz.open(file_path)
- Depois disso, cada página do arquivo PDF é iterada e verificada se há imagens disponíveis em cada página.
for page_number in range(len(open_file)):
page = pdf_file[page_number]
list_image = page.getImageList()
if list_image:
print(f"{len(list_image)} images found on page {page_number}")
else:
print("No images found on page", page_number)
Nesta etapa, a função getImageList()
é usada para extrair todas as imagens na forma de objetos de imagem, como uma lista de tuplas.
- Então, todas as informações extras sobre a imagem, como o tamanho e a extensão da imagem, são retornadas usando a função
extractImage()
. Esta etapa é realizada como uma iteração dentro da própria primeira iteração.
for image_number, img in enumerate(page.getImageList(), start=1):
xref = img[0]
image_base = pdf_file.extractImage(xref)
bytes_image = image_base["image"]
ext_image = base_image["ext"]
Depois de combinar todas essas etapas em um único programa, você pode facilmente extrair todas as imagens de um arquivo PDF.
Agora, suponha que haja 5 páginas no arquivo randomfile.pdf
. Nessas 5 páginas, existe apenas 1 imagem na última, por exemplo, a 5ª página. Portanto, a saída será semelhante a esta.
0 images found on page 0
0 images found on page 1
0 images found on page 2
0 images found on page 3
0 images found on page 4
1 images found on page 5
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn