from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas
def crear_pdf(nombre_archivo): c = canvas.Canvas(nombre_archivo, pagesize=letter) ancho, alto = letter
# Título
c.setFont("Helvetica-Bold", 16)
c.drawString(100, alto - 40, "Cuadros Sinópticos y Tablas")
# Cuadro Sinóptico de Modificadores Directos
c.setFont("Helvetica-Bold", 12)
c.drawString(100, alto - 80, "Cuadro Sinóptico de Modificadores Directos")
c.setFont("Helvetica", 10)
c.drawString(100, alto - 100, "Modificadores Directos")
c.drawString(120, alto - 120, "├── Artículos")
c.drawString(140, alto - 140, "│ ├── el")
c.drawString(140, alto - 160, "│ ├── la")
c.drawString(140, alto - 180, "│ ├── los")
c.drawString(140, alto - 200, "│ └── las")
c.drawString(120, alto - 220, "├── Adjetivos")
c.drawString(140, alto - 240, "│ ├── grande")
c.drawString(140, alto - 260, "│ ├── pequeño")
c.drawString(140, alto - 280, "│ ├── rojo")
c.drawString(140, alto - 300, "│ └── feliz")
c.drawString(120, alto - 320, "└── Posesivos")
c.drawString(140, alto - 340, " ├── mi")
c.drawString(140, alto - 360, " ├── tu")
c.drawString(140, alto - 380, " ├── su")
c.drawString(140, alto - 400, " └── nuestro")
# Tabla de Modificadores Directos
c.setFont("Helvetica-Bold", 12)
c.drawString(100, alto - 440, "Tabla de Modificadores Directos")
c.setFont("Helvetica", 10)
data = [
["Tipo de Modificador Directo", "Modificador", "Ejemplo de Uso"],
["Artículo", "el", "El perro ladra."],
["Artículo", "la", "La casa es grande."],
["Artículo", "los", "Los niños juegan."],
["Artículo", "las", "Las flores son bonitas."],
["Adjetivo", "grande", "La casa es grande."],
["Adjetivo", "pequeño", "El gato es pequeño."],
["Adjetivo", "rojo", "El coche es rojo."],
["Adjetivo", "feliz", "El niño está feliz."],
["Posesivo", "mi", "Mi libro está aquí."],
["Posesivo", "tu", "Tu perro es bonito."],
["Posesivo", "su", "Su casa es grande."],
["Posesivo", "nuestro", "Nuestro coche es nuevo."]
]
x_offset = 100
y_offset = alto - 460
for row in data:
for col, text in enumerate(row):
c.drawString(x_offset + col * 150, y_offset, text)
y_offset -= 20
c.save()
crear_pdf("cuadros_sinopticos_y_tablas.pdf")