web-dev-qa-db-fra.com

Génération de fichiers PDF avec JavaScript

J'essaie de convertir des données XML en PDF fichiers d'une page Web et j'espérais pouvoir le faire entièrement en JavaScript. Je dois être capable de dessiner du texte, des images et des formes simples. J'aimerais pouvoir le faire entièrement dans le navigateur.

245
amoeba

Je viens d'écrire une bibliothèque appelée jsPDF qui génère des PDF à l'aide de Javascript uniquement. Il est encore très jeune et j'ajouterai bientôt des fonctionnalités et des corrections de bugs. Vous avez également quelques idées de solutions de contournement dans les navigateurs qui ne prennent pas en charge les URI de données. Il est sous licence libérale MIT.

Je suis tombé sur cette question avant de commencer à l'écrire et je pensais revenir et vous le faire savoir :)

Générer des PDF en Javascript

Exemple: créez un fichier "Hello World" PDF.

// 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>
402
James Hall

Une autre bibliothèque javascript qui mérite d'être mentionnée est pdfmake .

La prise en charge du navigateur ne semble pas être aussi forte que celle de jsPDF, et il ne semble pas y avoir d’option pour les formes, mais les options de formatage du texte sont plus avancées que les options actuellement disponibles dans jsPDF.

126
mg1075

Je maintiens PDFKit , qui alimente également pdfmake (déjà mentionné ici). Cela fonctionne à la fois dans Node et dans le navigateur, et supporte un tas de choses que les autres bibliothèques ne font pas:

  • Incorporation de polices sous-configurées, avec prise en charge de l'unicode.
  • Beaucoup de choses avancées pour la mise en page du texte (colonnes, saut de page, saut de ligne unicode complet, texte enrichi de base, etc.).
  • Travailler sur encore plus de polices pour une typographie avancée (ligatures OpenType/AAT, substitution contextuelle, etc.). Bientôt: consultez la branche fontkit si cela vous intéresse.
  • Plus de graphiques: dégradés, etc.
  • Construit avec des outils modernes tels que browserify et les flux. Utilisable à la fois dans le navigateur et le nœud.

Consultez http://pdfkit.org/ pour un didacticiel complet permettant de voir par vous-même ce que PDFKit peut faire. Et pour obtenir un exemple des types de documents pouvant être produits, consultez la documentation en tant que PDF généré à partir de fichiers de Markdown utilisant PDFKit lui-même: http: // pdfkit.org/docs/guide.pdf .

Vous pouvez également l'essayer de manière interactive dans le navigateur ici: http://pdfkit.org/demo/browser.html .

55
devongovett

Un autre projet intéressant est texlive.js .

Il vous permet de compiler (La) TeX en PDF dans le navigateur.

8
Kpym

Vous pouvez utiliser ce service gratuit en ajoutant un lien qui crée un fichier PDF à partir de n’importe quelle URL (par exemple, http://www.phys.org ):

http://freehtmltopdf.com/?convert=http%3A%2F%2Fwww.phys.org&size=US_Letter&orientation=portrait&framesize=800&language=en

2
boateng