PDF-generatie in Golang (PDF)

Pdf Generatie In Golang Pdf



Portable Document Format of kortweg PDF is een ongelooflijk populair en veelzijdig bestandsformaat dat in documenten wordt gebruikt. PDF wordt op vrijwel alle platforms en systemen ondersteund, waardoor het een uitstekende keuze is voor het delen van documenten.

Als het om ontwikkelaars gaat, kunnen we gevallen tegenkomen waarin we de PDF-documenten programmatisch moeten genereren op basis van invoergegevens. U kunt bijvoorbeeld een webapp hebben die de PDF-facturen genereert op basis van aankoopinformatie uit de database.

Gelukkig is het Go-ecosysteem enorm en zijn er tools en functies om het genereren van PDF's gemakkelijk uit te voeren zonder helemaal opnieuw te hoeven bouwen.







In deze tutorial leren we hoe we het “fpdf” -pakket kunnen gebruiken, dat krachtige functies biedt om PDF-documenten te genereren op basis van invoergegevens.



Omgeving instellen

Voordat we verder gaan, moet u ervoor zorgen dat de volgende hulpprogramma's zijn geïnstalleerd:



  1. Zorg ervoor dat de nieuwste Go-compiler op uw systeem is geïnstalleerd
  2. Een code-editor

Installeer Gofpdf

Zodra u uw project hebt ingesteld, gebruikt u de opdracht “go get” om het pakket “fpdf” te installeren.





$ gaan download github . met / gaan - pdf / fpdf

Eenmaal geïnstalleerd, kunnen we doorgaan en de functies van het pakket voor het genereren van PDF's behandelen.

Maak een eenvoudig PDF-document

Bekijk de volgende voorbeeldcode die laat zien hoe u dit pakket kunt gebruiken om een ​​basis-PDF te maken op basis van een basisinvoertekst.



pakket voornaamst

importeren (
'github.com/go-pdf/fpdf'
)

func voornaamst () {
pdf := fpdf . Nieuw ( 'P' , 'mm' , 'A4' , '' )
pdf . Pagina toevoegen ()
pdf . Lettertype instellen ( 'Arial' , 'B' , 16 )
pdf . Cel ( 40 , 10 , 'Het is een pijn in de kont...' )
pdf . UitvoerBestandEnSluiten ( 'lorem.pdf' )
}

In het gegeven voorbeeld beginnen we met het importeren van de pakketten die we nodig hebben. In ons geval hebben we alleen het pakket “fpdf” nodig.

Vervolgens maken we een nieuw PDF-document met behulp van de functie fpdf.New() en specificeren we de PDF-eigenschappen zoals de paginarichting, maateenheid en grootte.

Vervolgens voegen we een nieuwe pagina toe met behulp van de AddPage() functie.

Vervolgens gaan we verder met het instellen van het lettertype en de grootte voor het document met behulp van de SetFont() functie. We voegen ook een rechthoekig gebied toe, ook wel cel genoemd, met de functie Cell() om de tekst weer te geven.

Ten slotte genereren we de PDF en slaan deze op met de OutputFileAndClose() -methode.

Voeg de afbeeldingen toe

We kunnen ook ondersteuning voor afbeeldingen toevoegen, zoals weergegeven in de volgende voorbeeldcode:

pakket voornaamst

importeren (
'github.com/go-pdf/fpdf'
)

func voornaamst () {
pdf := fpdf . Nieuw ( 'P' , 'mm' , 'A4' , '' )
pdf . Pagina toevoegen ()
pdf . Afbeeldingopties ( 'linux-tux.png' , 10 , 10 , 40 , 0 , vals , fpdf . Afbeeldingopties { Beeldtype : 'PNG' , LeesDpi : WAAR }, 0 , '' )
fout := pdf . UitvoerBestandEnSluiten ( 'voorbeeld.pdf' )
als fout != nul {
paniek ( fout )
}
}

Dit moet de opgegeven afbeelding bij het document bevatten.

Document van meerdere pagina's met kop- en voetteksten

Het pakket ondersteunt ook meerdere pagina's, inclusief functies zoals kop- en voetteksten, zoals weergegeven in het volgende voorbeeld:

pakket voornaamst

importeren (
'strconv' // Importeer het strconv-pakket

'github.com/go-pdf/fpdf'
)

func koptekst ( pdf * fpdf . Fpdf ) {
pdf . Lettertype instellen ( 'Arial' , 'B' , 12 )
pdf . Cel ( 0 , 10 , 'Pagina hoofd' )
pdf . Ln ( twintig )
}

func voettekst ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - vijftien )
pdf . Lettertype instellen ( 'Arial' , 'I' , 8 )
pdf . Cel ( 0 , 10 , 'Bladzijde ' + strconv . verdronken ( pdf . Pagina nee ()))
}

func voornaamst () {
pdf := fpdf . Nieuw ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( func () { koptekst ( pdf ) })
pdf . Voettekst instellenFunc ( func () { voettekst ( pdf ) })

pdf . Pagina toevoegen ()
pdf . Lettertype instellen ( 'Arial' , '' , 12 )
voor i := 0 ; i < 40 ; i ++ {
pdf . Cel ( 0 , 10 , 'Afdrukregelnummer' + strconv . verdronken ( i ))
pdf . Ln ( 12 )
}

pdf . UitvoerBestandEnSluiten ( 'meerdere pagina's.pdf' )
}

In dit geval definiëren we kop- en voettekstfuncties om de inhoud voor deze secties van de PDF in te stellen.

Vervolgens gebruiken we SetHeaderFunc en SetFooterFunc om de functies op te geven als kop- en voettekst voor het document.

Ten slotte gebruiken we een lus om meerdere regels tekstregels te maken, wat resulteert in meerdere pagina's. De resulterende PDF is als volgt:

Daar heb je het!

Conclusie

In deze tutorial hebben we veel geleerd over het genereren van PDF's in Go met behulp van het 'fpdf' -pakket. Dit pakket zit boordevol tools en functies om PDF's te genereren. Bekijk de documenten voor meer informatie.