PDF-generering i Golang (PDF)

Pdf Generering I Golang Pdf



Portable Document Format eller PDF for kort er et utroligt populært og alsidigt filformat, der bruges i dokumenter. PDF understøttes i næsten alle platforme og systemer, hvilket gør det til et glimrende valg til deling af dokumenter.

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:



  1. Sørg for, at du har den nyeste Go-kompiler installeret på dit system
  2. En kode editor

Installer Gofpdf

Når du har din projektopsætning, skal du bruge kommandoen 'go get' til at installere 'fpdf'-pakken.





$ få github . med / - 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 vigtigste

importere (
'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 vigtigste

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