1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas from PyPDF2 import PdfWriter, PdfReader import io # Crear el documento PDF base packet = io.BytesIO() c = canvas.Canvas(packet, pagesize=letter) # Crear contenido para el PDF c.drawString(100, 750, "Este es un PDF con JavaScript incrustado.") c.drawString(100, 730, "Cuando lo abras, debería mostrar una alerta.") c.showPage() c.save() # Mover el contenido creado a un nuevo PDF packet.seek(0) new_pdf = PdfReader(packet) output_pdf = PdfWriter() # Añadir la página generada al PDF final output_pdf.add_page(new_pdf.pages[0]) # Incluir el JavaScript en el PDF js_code = """ app.alert({cMsg: '¡Este es un mensaje de alerta en un PDF!', nIcon: 3, nType: 0}); """ output_pdf.add_js(js_code) # Guardar el PDF final con JavaScript incrustado with open("output_with_js.pdf", "wb") as f: output_pdf.write(f) print("PDF generado exitosamente con JavaScript incrustado.") |
