Når det kommer til udviklere, kan vi støde på tilfælde, hvor vi er nødt til at generere PDF-dokumenterne programmæssigt baseret på inputdata. For eksempel kan du have en web-app, der genererer PDF-fakturaerne baseret på købsoplysninger fra databasen.
Heldigvis er Go-økosystemet massivt, og der er værktøjer og funktioner til at udføre PDF-generering med lethed uden at bygge fra bunden.
I denne tutorial lærer vi, hvordan du bruger 'fpdf'-pakken, som giver kraftfulde funktioner til at generere PDF-dokumenter baseret på inputdata.
Miljøopsætning
Før vi fortsætter, skal du sikre dig, at du har følgende værktøjer installeret:
- Sørg for, at du har den nyeste Go-kompiler installeret på dit system
- En kode editor
Installer Gofpdf
Når du har din projektopsætning, skal du bruge kommandoen 'go get' til at installere 'fpdf'-pakken.
$ gå få github . med / gå - pdf / fpdf
Når den er installeret, kan vi fortsætte og dække de funktioner, der leveres af pakken til PDF-generering.
Opret et grundlæggende PDF-dokument
Overvej følgende eksempelkode, der viser, hvordan du bruger denne pakke til at oprette en grundlæggende PDF givet en grundlæggende inputtekst.
pakke vigtigste
importere (
'github.com/go-pdf/fpdf'
)
func vigtigste () {
pdf := fpdf . Ny ( 'P' , 'mm' , 'A4' , '' )
pdf . Tilføj Side ()
pdf . IndstilFont ( 'Arial' , 'B' , 16 )
pdf . Celle ( 40 , 10 , 'Det er ondt i røven...' )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}
I det givne eksempel starter vi med at importere de pakker, vi skal bruge. I vores tilfælde har vi kun brug for 'fpdf'-pakken.
Dernæst opretter vi et nyt PDF-dokument ved hjælp af funktionen fpdf.New() og specificerer PDF-egenskaberne såsom sideretning, måleenhed og størrelse.
Dernæst tilføjer vi en ny side ved hjælp af AddPage()-funktionen.
Vi fortsætter derefter med at indstille skrifttype og størrelse for dokumentet ved hjælp af SetFont()-funktionen. Vi tilføjer også et rektangulært område, også kendt som en celle, med funktionen Cell() for at vise teksten.
Til sidst genererer vi PDF'en og gemmer den med OutputFileAndClose() metoden.
Tilføj billederne
Vi kan også tilføje en understøttelse af billeder som vist i følgende eksempelkode:
pakke vigtigsteimportere (
'github.com/go-pdf/fpdf'
)
func vigtigste () {
pdf := fpdf . Ny ( 'P' , 'mm' , 'A4' , '' )
pdf . Tilføj Side ()
pdf . Billedindstillinger ( 'linux-tux.png' , 10 , 10 , 40 , 0 , falsk , fpdf . Billedindstillinger { ImageType : 'PNG' , ReadDpi : rigtigt }, 0 , '' )
fejl := pdf . OutputFileAndClose ( 'eksempel.pdf' )
hvis fejl != nul {
panik ( fejl )
}
}
Dette bør inkludere det angivne billede til dokumentet.
Flersidet dokument med sidehoveder og sidefødder
Pakken understøtter også flere sider inklusive funktioner såsom sidehoveder og sidefødder som vist i følgende eksempel:
pakke vigtigsteimportere (
'strconv' // Importer strconv-pakken
'github.com/go-pdf/fpdf'
)
func header ( pdf * fpdf . Fpdf ) {
pdf . IndstilFont ( 'Arial' , 'B' , 12 )
pdf . Celle ( 0 , 10 , 'Sidehoved' )
pdf . Ln ( tyve )
}
func sidefod ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - femten )
pdf . IndstilFont ( 'Arial' , 'JEG' , 8 )
pdf . Celle ( 0 , 10 , 'Side ' + strconv . druknede ( pdf . Sidenr ()))
}
func vigtigste () {
pdf := fpdf . Ny ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( func () { header ( pdf ) })
pdf . SetFooterFunc ( func () { sidefod ( pdf ) })
pdf . Tilføj Side ()
pdf . IndstilFont ( 'Arial' , '' , 12 )
til jeg := 0 ; jeg < 40 ; jeg ++ {
pdf . Celle ( 0 , 10 , 'Udskrivning af linjenummer' + strconv . druknede ( jeg ))
pdf . Ln ( 12 )
}
pdf . OutputFileAndClose ( 'multipage.pdf' )
}
I dette tilfælde definerer vi en sidehoved- og sidefodsfunktion for at indstille indholdet for disse sektioner af PDF'en.
Vi bruger derefter SetHeaderFunc og SetFooterFunc til at angive funktionerne som sidehoved og sidefod for dokumentet.
Til sidst bruger vi en løkke til at skabe flere linjer med tekstlinjer, som resulterer i flere sider. Den resulterende PDF er som følger:
Der har du det!
Konklusion
I denne tutorial lærte vi meget om PDF-generering i Go ved hjælp af 'fpdf'-pakken. Denne pakke kommer pakket med masser af værktøjer og funktioner til at generere PDF'er. Tjek dokumenterne for at få flere oplysninger.