PDF-generering i Golang (PDF)

Pdf Generering I Golang Pdf



Portable Document Format eller PDF for kort er et utrolig populært og allsidig filformat som brukes i dokumenter. PDF støttes i nesten alle plattformer og systemer, noe som gjør det til et utmerket valg for å dele dokumentene.

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:



  1. Sørg for at du har den nyeste Go-kompilatoren installert på systemet ditt
  2. En koderedigerer

Installer Gofpdf

Når du har prosjektoppsettet, bruk 'go get'-kommandoen for å installere 'fpdf'-pakken.





$ skaff deg github . med / - 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.