Veamos el siguiente código que lo explica (se usa un archivo llamado lorem.txt, que contiene un párrafo de Lorem Ipsum:
# -*- coding:utf-8 -*- import os from reportlab.lib.pagesizes import A4 from reportlab.pdfgen import canvas c=canvas.Canvas("test.pdf", pagesize = A4) #FUENTES EN CANVAS #----------------- texto = "Lorem ipsum dolor sit amet" x, y = 150, 710 for fuente in c.getAvailableFonts(): # Lista disponible de fuentes c.setFont(fuente, 10) # Cambiamos la fuente y el tamaño c.drawString(x, y, texto) c.setFont("Helvetica", 12) c.drawRightString(x-10, y, fuente + ":") y -= 20 #TRABAJANDO CON OBJETO DE TEXTO #------------------------------- # Indispensable para textos de varias lineas, ya que el método drawString # no podrá dibujar múltiples líneas: textoArchivo = open("lorem.txt", "r") # Abrimos un archivo de texto texto = """Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumyeirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diamvoluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumyeirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diamvoluptua. At vero eos et accusam et justo duo dolores et ea reb""" textobject = c.beginText() # Iniciamos el textobject textobject.setTextOrigin(20, 400) # Ubicamos el cursor donde dibujar textobject.setFont("Helvetica-Oblique", 13) for i in textoArchivo: i = i.replace("\n","") # Remplazamos el salto de linea textobject.setCharSpace(0.5) # Espacio entre caracteres textobject.setWordSpace(1) # Espacio entre palabras textobject.textLine(i) # Dibujamos la linea textobject.moveCursor(5, 10) # Movemos el cursor para luego escribir textobject.setFillGray(0.4) # Rellenamos con Escala de grises textobject.setLeading(20) # Espaciado entre lineas textobject.textLines(texto) # Insertamos el texto y con color gris c.drawText(textobject) # Dibujamos el texto pasando un objeto de texto c.showPage() c.save() os.system("test.pdf")
si el texto simplemente es largo y no tiene saltos (es decir solo una linea) que se puede hacer en ese caso para que una cierta cantidad de caractares salte una linea?
ResponderEliminar