Gerando PDF de imagens
Publicado por Mauricio (última atualização em 13/09/2012)
[ Hits: 12.629 ]
Homepage: http://www.mbmaciel.com
Gere PDF de imagens num diretório usando o Software Opensource Report Lab.
Visite o site para mais informações: http://www.reportlab.com/software/opensource/
Obs.: O script pega também as imagens de subdiretórios.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# >>> gera_pdf.py - 04/09/2012
# Por Mauricio Maciel <mbmaciel@linuxdepot.com.br>
# Gerador de pdf das imagens no diretorio. Utiliza o report lab.
# Reportlab - http://www.reportlab.com/software/opensource/
# Instalação - sudo easy_install reportlab
import os
import random
import string
from reportlab.pdfgen import canvas
#variaveis
dir = os.getcwd()
def file_generator(size=6, chars=string.ascii_lowercase + string.digits):
'''
Função gera o nome aleatorio
'''
word = ''.join(random.choice(chars) for x in range(size))
return 'file'+word+'.pdf'
def pdfDirectory(imageDirectory, outputPDFName=file_generator()):
'''
Função gera o PDF
'''
dirim = str(imageDirectory)
output = str(outputPDFName)
c = canvas.Canvas(output, pagesize=(425,283))
try:
for root, dirs, files in os.walk(dirim):
for name in files:
lname = name.lower()
if lname.endswith(".jpg") or lname.endswith(".gif") or lname.endswith(".png"):
filepath = os.path.join(root, name)
c.drawImage(filepath, 0, 1, width=425, height=283)
c.showPage()
c.save()
print "PDF das imagens criado!"
except:
print "Falha ao gerar PDF"
# modo de usar
pdfDirectory(dir)
Dividir um grupo de arquivos em vários CDs Ou DVDs
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Warcraft II Remastered no Linux? (7)
O programa assinador digital (5)









