Génération PDF dans Golang (PDF)

Generation Pdf Dans Golang Pdf



Le format de document portable ou PDF en abrégé est un format de fichier incroyablement populaire et polyvalent utilisé dans les documents. Le PDF est pris en charge sur presque toutes les plates-formes et tous les systèmes, ce qui en fait un excellent choix pour partager des documents.

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 :



  1. Assurez-vous que le dernier compilateur Go est installé sur votre système.
  2. 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 principal

importer (
'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 principal

importer (
'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.