Untitled
unknown
plain_text
9 months ago
2.2 kB
7
Indexable
from PIL import Image
from fpdf import FPDF
import os
# Configurações
imagens_por_pagina = 3 # Altere para 2 se quiser 2 imagens por página
pasta_imagens = "./Photos2"
output_pdf = "resultado3.pdf"
margem_direita = 70 # Margem de 50 mm para notas
espaco_entre_fotos = 5 # Espaço de 5 mm entre as fotos
largura_linha = 0.5 # Espessura da linha de separação
# Criação do PDF
pdf = FPDF(orientation='P', unit='mm', format='A4')
largura_pagina, altura_pagina = 210, 297 # Dimensões da página A4 em mm
largura_disponivel = largura_pagina - margem_direita # Ajustar a largura disponível para as imagens
altura_disponivel = (altura_pagina - ((imagens_por_pagina - 1) * espaco_entre_fotos)) / imagens_por_pagina # Espaço para cada imagem incluindo o espaço entre elas
# Obter e ordenar a lista de imagens pela numeração em seus nomes
imagens = [img for img in os.listdir(pasta_imagens) if img.lower().startswith('img_') and img.lower().endswith(('png', 'jpg', 'jpeg'))]
imagens.sort(key=lambda x: int(x.split('_')[1].split('.')[0])) # Ordenar por número após 'IMG_'
# Adicionar imagens ao PDF
for i, imagem_nome in enumerate(imagens):
imagem_caminho = os.path.join(pasta_imagens, imagem_nome)
if i % imagens_por_pagina == 0:
pdf.add_page()
# Redimensionar imagens para caber na largura disponível e altura calculada
nova_largura = largura_disponivel
nova_altura = altura_disponivel
# Calcular posição da imagem
x = (largura_pagina - margem_direita - nova_largura) / 2
y = (altura_disponivel + espaco_entre_fotos) * (i % imagens_por_pagina)
# Adicionar imagem ao PDF
pdf.image(imagem_caminho, x=x, y=y, w=nova_largura, h=nova_altura)
# Adicionar linha preta abaixo da imagem (exceto a última imagem na página)
if (i % imagens_por_pagina) != (imagens_por_pagina - 1):
pdf.set_line_width(largura_linha)
pdf.set_draw_color(0, 0, 0) # Cor preta
linha_y = y + nova_altura + (espaco_entre_fotos / 2)
pdf.line(10, linha_y, largura_pagina - 10, linha_y) # Linhas de ponta a ponta da página
# Salvar o PDF
pdf.output(output_pdf)
print(f"PDF criado com sucesso: {output_pdf}")
Editor is loading...
Leave a Comment