En ce qui concerne les développeurs, nous pouvons rencontrer des cas où nous devons générer par programme des documents PDF en fonction des données d'entrée. Par exemple, vous pouvez disposer d'une application Web qui génère les factures PDF en fonction des informations d'achat de la base de données.
Heureusement, l'écosystème Go est immense et il existe des outils et des fonctionnalités permettant de générer facilement des PDF sans créer à partir de zéro.
Dans ce didacticiel, nous apprendrons comment utiliser le package « fpdf » qui fournit des fonctionnalités puissantes pour générer des documents PDF en fonction des données d'entrée.
Configuration de l'environnement
Avant de continuer, assurez-vous que les outils suivants sont installés :
- Assurez-vous que le dernier compilateur Go est installé sur votre système.
- Un éditeur de code
Installer Gofpdf
Une fois que vous avez configuré votre projet, utilisez la commande « go get » pour installer le package « fpdf ».
$ aller obtenir github . avec / aller - pdf / fpdf
Une fois installé, nous pouvons continuer et couvrir les fonctionnalités fournies par le package pour la génération de PDF.
Créer un document PDF de base
Considérez l'exemple de code suivant qui montre comment utiliser ce package pour créer un PDF de base à partir d'un texte d'entrée de base.
emballer principal
importer (
'github.com/go-pdf/fpdf'
)
fonction principal () {
pdf := fpdf . Nouveau ( 'P' , 'mm' , 'A4' , '' )
pdf . Ajouter une page ()
pdf . Définir la police ( 'Arial' , 'B' , 16 )
pdf . Cellule ( 40 , dix , 'C'est chiant...' )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}
Dans l'exemple donné, nous commençons par importer les packages dont nous avons besoin. Dans notre cas, nous n’avons besoin que du package « fpdf ».
Ensuite, nous créons un nouveau document PDF à l'aide de la fonction fpdf.New() et spécifions les propriétés PDF telles que l'orientation de la page, l'unité de mesure et la taille.
Ensuite, nous ajoutons une nouvelle page à l'aide de la fonction AddPage().
Nous procédons ensuite à la définition de la police et de la taille du document à l'aide de la fonction SetFont(). Nous ajoutons également une zone rectangulaire, également appelée cellule, avec la fonction Cell() pour afficher le texte.
Enfin, nous générons le PDF et l'enregistrons avec la méthode OutputFileAndClose().
Ajouter les images
Nous pouvons également ajouter un support pour les images comme le montre l'exemple de code suivant :
emballer principalimporter (
'github.com/go-pdf/fpdf'
)
fonction principal () {
pdf := fpdf . Nouveau ( 'P' , 'mm' , 'A4' , '' )
pdf . Ajouter une page ()
pdf . Options d'image ( 'linux-tux.png' , dix , dix , 40 , 0 , FAUX , fpdf . Options d'image { Type d'image : 'PNG' , LireDpi : vrai }, 0 , '' )
se tromper := pdf . OutputFileAndClose ( 'exemple.pdf' )
si se tromper != néant {
panique ( se tromper )
}
}
Cela devrait inclure l'image spécifiée dans le document.
Document multipage avec en-têtes et pieds de page
Le package prend également en charge plusieurs pages, y compris des fonctionnalités telles que les en-têtes et les pieds de page, comme le montre l'exemple suivant :
emballer principalimporter (
'strconv' // Importer le package strconv
'github.com/go-pdf/fpdf'
)
fonction entête ( pdf * fpdf . Fpdf ) {
pdf . Définir la police ( 'Arial' , 'B' , 12 )
pdf . Cellule ( 0 , dix , 'En-tête de page' )
pdf . Ln ( vingt )
}
fonction bas de page ( pdf * fpdf . Fpdf ) {
pdf . EnsembleY ( - quinze )
pdf . Définir la police ( 'Arial' , 'JE' , 8 )
pdf . Cellule ( 0 , dix , 'Page' + strconv . noyé ( pdf . Numéro de page ()))
}
fonction principal () {
pdf := fpdf . Nouveau ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( fonction () { entête ( pdf ) })
pdf . SetFooterFunc ( fonction () { bas de page ( pdf ) })
pdf . Ajouter une page ()
pdf . Définir la police ( 'Arial' , '' , 12 )
pour je := 0 ; je < 40 ; je ++ {
pdf . Cellule ( 0 , dix , 'Impression du numéro de ligne' + strconv . noyé ( je ))
pdf . Ln ( 12 )
}
pdf . OutputFileAndClose ( 'multipage.pdf' )
}
Dans ce cas, nous définissons des fonctions d'en-tête et de pied de page pour définir le contenu de ces sections du PDF.
Nous utilisons ensuite SetHeaderFunc et SetFooterFunc pour spécifier les fonctions d'en-tête et de pied de page du document.
Enfin, nous utilisons une boucle pour créer plusieurs lignes de texte, ce qui donne plusieurs pages. Le PDF résultant est le suivant :
Voilà!
Conclusion
Dans ce tutoriel, nous avons beaucoup appris sur la génération de PDF dans Go à l'aide du package « fpdf ». Ce package est livré avec de nombreux outils et fonctionnalités pour générer des PDF. Consultez la documentation pour en savoir plus.