fork download
  1. from fpdf import FPDF
  2.  
  3. class DidacticPDF(FPDF):
  4. def header(self):
  5. self.set_font("Arial", 'B', 16)
  6. self.set_text_color(100, 100, 255)
  7. self.cell(0, 10, 'Aprendo las sílabas con P, M y S', ln=True, align='C')
  8. self.ln(5)
  9.  
  10. def footer(self):
  11. self.set_y(-15)
  12. self.set_font("Arial", 'I', 8)
  13. self.set_text_color(150)
  14. self.cell(0, 10, f'Página {self.page_no()}', align='C')
  15.  
  16. def add_syllable_section(self, letra, silabas, palabras):
  17. self.add_page()
  18. self.set_font("Arial", 'B', 14)
  19. self.set_text_color(0)
  20. self.cell(0, 10, f'Letra: {letra}', ln=True)
  21.  
  22. self.set_font("Arial", '', 12)
  23. self.cell(0, 10, 'Sílabas para practicar:', ln=True)
  24. self.ln(5)
  25.  
  26. self.set_font("Arial", '', 36)
  27. for s in silabas:
  28. self.cell(38, 20, s, border=1, align='C')
  29. self.ln(30)
  30.  
  31. self.set_font("Arial", '', 12)
  32. self.cell(0, 10, f'Palabras con la letra {letra}:', ln=True)
  33. self.set_font("Arial", '', 24)
  34. for palabra in palabras:
  35. self.cell(0, 12, f'- {palabra}', ln=True)
  36. self.ln(10)
  37.  
  38. self.set_font("Arial", 'I', 12)
  39. self.set_text_color(100, 100, 100)
  40. self.multi_cell(0, 10, "✍️ Practica escribiendo las sílabas y luego léelas en voz alta. Puedes dibujar junto a cada palabra.")
  41.  
  42. datos = {
  43. 'P': {
  44. 'silabas': ['pa', 'pe', 'pi', 'po', 'pu'],
  45. 'palabras': ['papá', 'pera', 'pico', 'pollo', 'pulpo']
  46. },
  47. 'M': {
  48. 'silabas': ['ma', 'me', 'mi', 'mo', 'mu'],
  49. 'palabras': ['mamá', 'mesa', 'mimo', 'moto', 'muro']
  50. },
  51. 'S': {
  52. 'silabas': ['sa', 'se', 'si', 'so', 'su'],
  53. 'palabras': ['sol', 'silla', 'sopa', 'sello', 'suma']
  54. }
  55. }
  56.  
  57. pdf = DidacticPDF()
  58. pdf.set_auto_page_break(auto=True, margin=15)
  59.  
  60. for letra, contenido in datos.items():
  61. pdf.add_syllable_section(letra, contenido['silabas'], contenido['palabras'])
  62.  
  63. pdf.output("/mnt/data/guia_didactica_silabas_nina.pdf")
  64.  
Success #stdin #stdout 0.02s 25940KB
stdin
Standard input is empty
stdout
from fpdf import FPDF

class DidacticPDF(FPDF):
    def header(self):
        self.set_font("Arial", 'B', 16)
        self.set_text_color(100, 100, 255)
        self.cell(0, 10, 'Aprendo las sílabas con P, M y S', ln=True, align='C')
        self.ln(5)

    def footer(self):
        self.set_y(-15)
        self.set_font("Arial", 'I', 8)
        self.set_text_color(150)
        self.cell(0, 10, f'Página {self.page_no()}', align='C')

    def add_syllable_section(self, letra, silabas, palabras):
        self.add_page()
        self.set_font("Arial", 'B', 14)
        self.set_text_color(0)
        self.cell(0, 10, f'Letra: {letra}', ln=True)

        self.set_font("Arial", '', 12)
        self.cell(0, 10, 'Sílabas para practicar:', ln=True)
        self.ln(5)

        self.set_font("Arial", '', 36)
        for s in silabas:
            self.cell(38, 20, s, border=1, align='C')
        self.ln(30)

        self.set_font("Arial", '', 12)
        self.cell(0, 10, f'Palabras con la letra {letra}:', ln=True)
        self.set_font("Arial", '', 24)
        for palabra in palabras:
            self.cell(0, 12, f'- {palabra}', ln=True)
        self.ln(10)

        self.set_font("Arial", 'I', 12)
        self.set_text_color(100, 100, 100)
        self.multi_cell(0, 10, "✍️ Practica escribiendo las sílabas y luego léelas en voz alta. Puedes dibujar junto a cada palabra.")

datos = {
    'P': {
        'silabas': ['pa', 'pe', 'pi', 'po', 'pu'],
        'palabras': ['papá', 'pera', 'pico', 'pollo', 'pulpo']
    },
    'M': {
        'silabas': ['ma', 'me', 'mi', 'mo', 'mu'],
        'palabras': ['mamá', 'mesa', 'mimo', 'moto', 'muro']
    },
    'S': {
        'silabas': ['sa', 'se', 'si', 'so', 'su'],
        'palabras': ['sol', 'silla', 'sopa', 'sello', 'suma']
    }
}

pdf = DidacticPDF()
pdf.set_auto_page_break(auto=True, margin=15)

for letra, contenido in datos.items():
    pdf.add_syllable_section(letra, contenido['silabas'], contenido['palabras'])

pdf.output("/mnt/data/guia_didactica_silabas_nina.pdf")