#! /usr/bin/env python3 # -*- coding: utf-8 -*- #============================================================================== # img2pdf.py - genera archivos pdf a partir de una imagen #------------------------------------------------------------------------------ # FJA - fja@neocipres.com Julio de 2023 #============================================================================== import sys from reportlab.lib.pagesizes import A4 from reportlab.lib.utils import ImageReader from reportlab.pdfgen import canvas __uso__ = ''' ======================================================================= · img2pdf.py - script que permite construir un archivo pdf a partir de una imagen (png, jpg, bmp, gif o pnm) ----------------------------------------------------------------------- · uso: img2pdf <archivo imagen> <archivo pdf> ======================================================================= ''' if len(sys.argv) < 3: print(__uso__) sys.exit(0) else: ain = sys.argv[1] aout = sys.argv[2] if aout.rfind(".") != -1: pos = aout.rfind(".") aout = aout[:pos] aout = aout + ".pdf" else: aout = aout + ".pdf" try: x0 = 0 y0 = 0 ratio = False ancho, alto= A4 c = canvas.Canvas(aout, pagesize=A4) img = ImageReader(ain) img_w, img_h = img.getSize() if img_w < ancho: x0 = (ancho - img_w) / 2 ancho = img_w ratio = True if img_h < alto: y0 = (alto - img_h) / 2 alto = img_h ratio = True c.drawImage(img, x0, y0, width=ancho, height=alto, preserveAspectRatio=ratio) c.save() print("\n\t => ", aout, " creado ... \n") except Exception as e: print("\n\t No se ha podido generar el PDF: ", e, sys.exc_info()[0], "\n")