Når det gjelder utviklere, kan vi komme over tilfeller der vi må generere PDF-dokumentene programmatisk basert på inndata. Du kan for eksempel ha en nettapp som genererer PDF-fakturaene basert på kjøpsinformasjon fra databasen.
Heldigvis er Go-økosystemet massivt, og det er verktøy og funksjoner for å utføre PDF-generering med letthet uten å bygge fra bunnen av.
I denne opplæringen vil vi lære hvordan du bruker 'fpdf'-pakken som gir kraftige funksjoner for å generere PDF-dokumenter basert på inndata.
Miljøoppsett
Før vi fortsetter, sørg for at du har følgende verktøy installert:
- Sørg for at du har den nyeste Go-kompilatoren installert på systemet ditt
- En koderedigerer
Installer Gofpdf
Når du har prosjektoppsettet, bruk 'go get'-kommandoen for å installere 'fpdf'-pakken.
$ gå skaff deg github . med / gå - pdf / fpdf
Når den er installert, kan vi fortsette og dekke funksjonene som tilbys av pakken for PDF-generering.
Lag et grunnleggende PDF-dokument
Tenk på følgende eksempelkode som viser hvordan du bruker denne pakken til å lage en grunnleggende PDF gitt en grunnleggende inndatatekst.
pakke hoved-
import (
'github.com/go-pdf/fpdf'
)
func hoved- () {
pdf := fpdf . Ny ( 'P' , 'mm' , 'A4' , '' )
pdf . AddPage ()
pdf . SetFont ( 'Arial' , 'B' , 16 )
pdf . Celle ( 40 , 10 , 'Det er vondt...' )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}
I det gitte eksemplet starter vi med å importere pakkene vi trenger. I vårt tilfelle trenger vi bare 'fpdf'-pakken.
Deretter lager vi et nytt PDF-dokument ved å bruke funksjonen fpdf.New() og spesifiserer PDF-egenskapene som sideretning, måleenhet og størrelse.
Deretter legger vi til en ny side ved å bruke AddPage()-funksjonen.
Vi fortsetter deretter med å angi font og størrelse for dokumentet ved å bruke SetFont()-funksjonen. Vi legger også til et rektangulært område, også kjent som en celle, med Cell()-funksjonen for å vise teksten.
Til slutt genererer vi PDF-en og lagrer den med OutputFileAndClose()-metoden.
Legg til bildene
Vi kan også legge til støtte for bilder som vist i følgende eksempelkode:
pakke hoved-import (
'github.com/go-pdf/fpdf'
)
func hoved- () {
pdf := fpdf . Ny ( 'P' , 'mm' , 'A4' , '' )
pdf . AddPage ()
pdf . Bildealternativer ( 'linux-tux.png' , 10 , 10 , 40 , 0 , falsk , fpdf . Bildealternativer { ImageType : 'PNG' , ReadDpi : ekte }, 0 , '' )
feil := pdf . OutputFileAndClose ( 'eksempel.pdf' )
hvis feil != null {
panikk ( feil )
}
}
Dette bør inkludere det angitte bildet til dokumentet.
Flersidig dokument med topp- og bunntekst
Pakken støtter også flere sider, inkludert funksjoner som topptekst og bunntekst som vist i følgende eksempel:
pakke hoved-import (
'strconv' // Importer strconv-pakken
'github.com/go-pdf/fpdf'
)
func Overskrift ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'B' , 12 )
pdf . Celle ( 0 , 10 , 'Sideoverskrift' )
pdf . Ln ( tjue )
}
func bunntekst ( pdf * fpdf . Fpdf ) {
pdf . SettY ( - femten )
pdf . SetFont ( 'Arial' , 'JEG' , 8 )
pdf . Celle ( 0 , 10 , 'Side' + strconv . druknet ( pdf . Sidenr ()))
}
func hoved- () {
pdf := fpdf . Ny ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( func () { Overskrift ( pdf ) })
pdf . SetFooterFunc ( func () { bunntekst ( pdf ) })
pdf . AddPage ()
pdf . SetFont ( 'Arial' , '' , 12 )
til Jeg := 0 ; Jeg < 40 ; Jeg ++ {
pdf . Celle ( 0 , 10 , 'Skriver ut linjenummer' + strconv . druknet ( Jeg ))
pdf . Ln ( 12 )
}
pdf . OutputFileAndClose ( 'flerside.pdf' )
}
I dette tilfellet definerer vi en topptekst- og bunntekstfunksjon for å angi innholdet for disse delene av PDF-en.
Vi bruker deretter SetHeaderFunc og SetFooterFunc for å spesifisere funksjonene som topp- og bunntekst for dokumentet.
Til slutt bruker vi en løkke for å lage flere linjer med tekstlinjer som resulterer i flere sider. Den resulterende PDF-en er som følger:
Der har du det!
Konklusjon
I denne opplæringen lærte vi mye om PDF-generering i Go ved å bruke 'fpdf'-pakken. Denne pakken kommer fullpakket med mange verktøy og funksjoner for å generere PDF-filer. Sjekk dokumentene for å finne ut mer.