Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Adobe a développé le format de document portable (Portable Document Format) (PDF (EN ANGLAIS)) pour partager des documents contenant du texte et des graphiques. Un programme supplémentaire est nécessaire pour ouvrir un fichier PDF en ligne. Dans le monde moderne, les fichiers PDF sont indispensables pour les documents importants. De nombreuses entreprises utilisent des fichiers PDF pour créer des documents et des factures. Les développeurs produisent et génèrent des documents au format PDF pour répondre aux besoins des clients. La création de PDF n'a jamais été aussi facile grâce aux bibliothèques modernes. Lors de la sélection de la bibliothèque idéale pour un projet, nous devons tenir compte d'un certain nombre de facteurs, notamment les capacités de construction, de lecture et de conversion de la bibliothèque.
Dans cet article, nous aborderons différentes bibliothèques JavaScript pour la création de PDF. Nous explorerons les fonctionnalités et les cas d'utilisation de la bibliothèque JS, en nous concentrant sur trois aspects clés :
Facilité d'utilisation
À la fin de cet article, vous serez en mesure de choisir la bibliothèque PDF la mieux adaptée à votre application JavaScript. Nous présenterons également IronPDF, une bibliothèque PDF puissante et pratique.
texte
method of the PDFKit library to insert texte into the PDFcréerPdf
de la bibliothèque pdfmake en JavaScripthtml2pdf
de la bibliothèque html2pdfRenderHtmlAsPdf
de la bibliothèque IronPDFSupposons que nous souhaitions que le client puisse télécharger et imprimer une facture que nous avons établie. Nous voulons également que cette facture s'imprime correctement, avec un bon formatage. Nous examinerons ici quelques-unes des bibliothèques les plus populaires pour convertir cette facture du format HTML au format PDF.
PDFKit est l'une des premières bibliothèques PDF à avoir été introduites dans le vaste écosystème JavaScript. Depuis sa sortie initiale en 2012, elle a gagné une popularité substantielle et continue de recevoir des mises à jour régulières en 2021. PDFKit offre un support à la fois pour Node.js et les navigateurs web via Webpack, bien qu'il puisse présenter un niveau de complexité légèrement plus élevé par rapport aux autres bibliothèques discutées ici. De plus, comme nous le verrons dans la comparaison, certaines bibliothèques PDF sont essentiellement des enveloppes pour PDFKit.
Les polices personnalisées et l'intégration d'images sont prises en charge, mais il n'existe pas d'API de haut niveau. En outre, la documentation est souvent compliquée. Comme vous pouvez vous en douter, il faut un peu de temps pour s'y habituer et, au début, vous découvrirez que la création de PDF n'est pas la tâche la plus simple.
const PDFDocument = require('pdfkit');
const fs = require('fs');
// create a document the same way as above
const doc = new PDFDocument;
// add your content to the document here, as usual
doc.text('Hello world!');
// get a blob when you're done
doc.pipe(fs.createWriteStream('Demo.pdf'));
doc.end();
Une bibliothèque d'encapsulation pour PDFKit s'appelle pdfmake. La principale différence entre les deux réside dans leurs paradigmes de programmation :
pdfmake adopte une approche déclarative, tandis que PDFKit suit la technique impérative traditionnelle. Par conséquent, il est plus facile de se concentrer sur la fonctionnalité souhaitée de la génération de PDF avec la bibliothèque pdfmake, plutôt que de passer du temps à donner des instructions à la bibliothèque sur la manière d'obtenir un résultat spécifique.
Toutefois, il convient de noter que tout ce qui semble prometteur n'est pas sans faille. L'utilisation de Webpack et la tentative d'intégration de polices personnalisées avec pdfmake peuvent potentiellement conduire à des problèmes. Malheureusement, peu d'informations sont disponibles en ligne sur ce problème. Si vous n'utilisez pas Webpack, vous pouvez toujours cloner le dépôt Git et exécuter le script d'intégration des polices.
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/vfs_fonts.js"></script>
</head>
<body>
<script type="text/javascript">
function downloadPdf() {
var docDefinition = {
content: [
{text:"Hello world"}
],
defaultStyle: {
}
};
pdfMake.createPdf(docDefinition).print();
}
</script>
<button onclick="downloadPdf()">Print pdf</button>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/vfs_fonts.js"></script>
</head>
<body>
<script type="text/javascript">
function downloadPdf() {
var docDefinition = {
content: [
{text:"Hello world"}
],
defaultStyle: {
}
};
pdfMake.createPdf(docDefinition).print();
}
</script>
<button onclick="downloadPdf()">Print pdf</button>
</body>
</html>
Le résultat de l'opération susmentionnée est affiché ci-dessous.
jsPDF est un logiciel libre qui utilise exclusivement du JavaScript pur pour générer des fichiers PDF. Il crée une page PDF et la met en forme en fonction du formatage que vous avez fourni. jsPDF est la bibliothèque PDF la plus utilisée sur GitHub. Elle est très fiable et bien entretenue. Il propose des modules faciles à utiliser pour Node.js et les navigateurs web, car ils sont exportés conformément à la norme de module AMD.
En ce qui concerne PDFKit, ses API adhèrent à un paradigme impératif, ce qui peut compliquer la conception de mises en page complexes. En ce qui concerne l'intégration des polices, la seule étape supplémentaire requise est la conversion des polices en fichiers TTF, ce qui est un processus simple.
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script>
<script>
function generatePDF() {
var pdf = new jsPDF({
orientation: 'p',
unit: 'mm',
format: 'a5',
putOnlyUsedFonts:true
});
pdf.text("Hello World", 20, 20);
pdf.save('Demopdf.pdf');
}
</script>
</head>
<body>
<button onclick="generatePDF()">print Pdf</button>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script>
<script>
function generatePDF() {
var pdf = new jsPDF({
orientation: 'p',
unit: 'mm',
format: 'a5',
putOnlyUsedFonts:true
});
pdf.text("Hello World", 20, 20);
pdf.save('Demopdf.pdf');
}
</script>
</head>
<body>
<button onclick="generatePDF()">print Pdf</button>
</body>
</html>
La sortie du code ci-dessus est illustrée ci-dessous.
Pour convertir les pages web et les modèles en fichiers PDF, html2pdf combine les fonctionnalités de jsPDF et de Html2Canvas en un seul module.
Pour convertir votre site web en PDF, suivez les étapes suivantes :
getElementById
pour sélectionner le segment souhaité.generatePDF
lorsqu'il est cliqué.<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js"></script>
<script>
function generatePDF() {
const page = 'Hello World!';
var opt = {
margin: 1,
filename: 'Demopdf.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
};
// Choose the element that our invoice is rendered in.
html2pdf().set(opt).from(page).save();
}
</script>
</head>
<body>
<button onclick="generatePDF()">print Pdf</button>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js"></script>
<script>
function generatePDF() {
const page = 'Hello World!';
var opt = {
margin: 1,
filename: 'Demopdf.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
};
// Choose the element that our invoice is rendered in.
html2pdf().set(opt).from(page).save();
}
</script>
</head>
<body>
<button onclick="generatePDF()">print Pdf</button>
</body>
</html>
Voici le résultat du code ci-dessus.
IronPDF for Node.js simplifie le processus de création et de personnalisation des documents PDF de manière programmatique. Développé par Iron Software, fournisseur de confiance de bibliothèques de traitement de documents haute performance, IronPDF offre une solution robuste pour la génération de PDF dans les environnements Node.js. Il s'intègre de manière transparente aux projets Node.js, offrant aux développeurs des outils puissants pour générer, formater et éditer des PDF en toute simplicité.
La bibliothèque IronPDF offre un large éventail de fonctionnalités, notamment la possibilité de diviser et de combiner des pages dans des documents PDF nouveaux ou existants, de lire et de modifier des fichiers PDF existants, d'extraire des images de fichiers PDF, d'ajouter du texte, des graphiques, des signets, des filigranes, des en-têtes et des pieds de page à des fichiers PDF, le tout sans avoir besoin d'Acrobat Reader. Des documents PDF peuvent être produits à partir de fichiers CSS et CSS Media. IronPDF permet aux utilisateurs de créer, de télécharger et de mettre à jour des formulaires PDF nouveaux ou préexistants.
Principales caractéristiques d'IronPDF pour Node.js :
Performance optimisée : IronPDF est conçu pour offrir des performances optimales, avec une prise en charge complète du multithreading et de l'asynchronisme. Cela garantit une génération efficace de PDF, ce qui le rend adapté aux applications critiques où les performances sont primordiales. Ensemble complet de fonctions : Avec plus de 50 fonctions de création, de formatage et d'édition de documents PDF, IronPDF constitue une solution complète pour toutes les tâches liées aux PDF. De la génération de documents de base à la personnalisation avancée et à la sécurité, IronPDF offre un large éventail de possibilités pour répondre aux besoins des développeurs.
Pour générer un fichier PDF à l'aide de javaScript personnaliséle code suivant permet de rendre le contenu HTML plus attrayant sans effort :
import {PdfDocument} from "@ironsoftware/ironpdf";
(async () => {
// Define the JavaScript code to change text color to red
const javascriptCode = "document.querySelectorAll('h1').forEach(function(el){el.style.color='red';})";
// Create rendering options object
const renderOptions = {
enableJavaScript: true,
javascript: javascriptCode,
};
// HTML content to be rendered
const htmlContent = "<h1>Hello World!!</h1>";
// Render HTML content to a PDF
const pdf = await PdfDocument.fromHtml(htmlContent, { renderOptions: renderOptions });
// Save the PDF with the executed JavaScript
await pdf.saveAs("result1.pdf");
})();
Dans le code ci-dessus, un extrait de code JavaScript est défini pour changer la couleur de tous les éléments <h1>
en rouge. Ce code est ensuite intégré dans les options de rendu avec l'activation de l'exécution de JavaScript. Ensuite, un contenu HTML contenant un élément <h1>
avec le texte "Hello World!!"est spécifié. Le document PDF est généré à partir de ce contenu HTML avec les options de rendu définies, en veillant à ce que le code JavaScript soit exécuté pendant le processus de rendu. Enfin, le document PDF résultant est enregistré sous le nom de "result1.pdf". Ce code illustre la capacité d'IronPDF à incorporer des modifications JavaScript dynamiques dans la génération de PDF, ce qui permet aux développeurs de créer des documents PDF personnalisés et interactifs de manière programmatique.
En conclusion, le code JavaScript présenté ci-dessus peut faire l'objet d'une utilisation abusive et présenter des risques potentiels pour la sécurité lorsqu'il est utilisé par d'autres personnes. Il est important de prendre en compte la possibilité d'un accès non autorisé et les vulnérabilités en matière de sécurité des données lors de la mise en œuvre d'un tel code sur un site web. Les questions de compatibilité entre les différents navigateurs et plateformes doivent également être prises en compte, y compris la nécessité d'assurer la prise en charge des anciens navigateurs qui peuvent ne pas disposer de toutes les fonctionnalités requises.
En revanche, la bibliothèque IronPDF Node.js offre des mesures de sécurité renforcées pour se prémunir contre les menaces potentielles. Il ne dépend pas de navigateurs spécifiques et est compatible avec tous les principaux navigateurs. Avec seulement quelques lignes de code, les développeurs peuvent facilement créer et lire des fichiers PDF à l'aide d'IronPDF.
La bibliothèque propose plusieurs options de licence pour répondre aux différents besoins des développeurs, y compris une licence d'utilisation de la bibliothèque essai gratuit pour les développeurs et des licences supplémentaires pour les licences disponibles à l'achat. La formule License Lite, au prix de $749, comprend une licence permanente, un an d'assistance produit et des options de mise à niveau, sans frais récurrents. Ces licences peuvent être utilisées dans des environnements de développement, d'essai et de production. En outre, il est également disponible pour d'autres langues telles que C# .NET, Java et Python. Visitez le site IronPDF pour plus de détails.
9 produits de l'API .NET pour vos documents de bureau