Risposte:
Ho appena scritto una libreria chiamata jsPDF che genera PDF usando solo Javascript. È ancora molto giovane e presto aggiungerò funzionalità e correzioni di bug. Sono state inoltre fornite alcune idee per soluzioni alternative nei browser che non supportano gli URI dei dati. È concesso in licenza con una licenza MIT liberale.
Mi sono imbattuto in questa domanda prima di iniziare a scriverla e ho pensato di tornare e farti sapere :)
Esempio creare un file PDF "Hello World".
// Default export is a4 paper, portrait, using milimeters for units
var doc = new jsPDF()
doc.text('Hello world!', 10, 10)
doc.save('a4.pdf')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.5/jspdf.debug.js"></script>
Un'altra libreria javascript degna di nota è pdfmake .
Il supporto del browser non sembra essere forte come jsPDF, né sembra esserci un'opzione per le forme, ma le opzioni per la formattazione del testo sono più avanzate di quelle attualmente disponibili in jsPDF.
Io sostengo PDFKit , che ha anche poteri pdfmake (già accennato qui). Funziona sia in Node che nel browser e supporta un sacco di cose che altre librerie non:
Dai un'occhiata a http://pdfkit.org/ per un tutorial completo per vedere di persona cosa può fare PDFKit. E per un esempio di quali tipi di documenti possono essere prodotti, controlla i documenti come PDF generati da alcuni file Markdown usando PDFKit stesso: http://pdfkit.org/docs/guide.pdf .
Puoi anche provarlo interattivamente nel browser qui: http://pdfkit.org/demo/browser.html .
Un altro progetto interessante è texlive.js .
Ti permette di compilare (La) TeX in PDF nel browser.
È possibile utilizzare questo servizio gratuito aggiungendo un collegamento che crea pdf da qualsiasi URL (ad esempio http://www.phys.org ):
Anche se tu potessi generare il PDF in memoria in JavaScript, avresti ancora il problema di come trasferire tali dati all'utente. È difficile per JavaScript inviare semplicemente un file all'utente.
Per ottenere il file per l'utente, è necessario eseguire un invio del server per consentire al browser di visualizzare la finestra di dialogo di salvataggio.
Detto questo, non è davvero troppo difficile generare PDF. Leggi le specifiche.