PDF generavimas Golange (PDF)

Pdf Generavimas Golange Pdf



Portable Document Format arba sutrumpintai PDF yra nepaprastai populiarus ir universalus failų formatas, naudojamas dokumentuose. PDF palaiko beveik visos platformos ir sistemos, todėl tai puikus pasirinkimas dalytis dokumentais.

Kalbant apie kūrėjus, galime susidurti su atvejais, kai turime programiškai generuoti PDF dokumentus pagal įvesties duomenis. Pavyzdžiui, galite turėti žiniatinklio programą, kuri generuoja PDF sąskaitas faktūras pagal pirkimo informaciją iš duomenų bazės.

Laimei, „Go“ ekosistema yra didžiulė ir yra įrankių bei funkcijų, leidžiančių lengvai generuoti PDF, nekuriant nuo nulio.







Šioje pamokoje sužinosime, kaip naudoti „fpdf“ paketą, kuriame yra galingų funkcijų, skirtų PDF dokumentams generuoti pagal įvesties duomenis.



Aplinkos sąranka

Prieš tęsdami įsitikinkite, kad įdiegėte šiuos įrankius:



  1. Įsitikinkite, kad jūsų sistemoje įdiegtas naujausias „Go“ kompiliatorius
  2. Kodo redaktorius

Įdiekite Gofpdf

Kai atliksite projekto sąranką, naudokite komandą „go get“, kad įdiegtumėte „fpdf“ paketą.





$ eik gauti github . su / eik - pdf / fpdf

Įdiegę galime tęsti ir padengti PDF generavimo paketo teikiamas funkcijas.

Sukurkite pagrindinį PDF dokumentą

Apsvarstykite toliau pateiktą kodo pavyzdį, kuris parodo, kaip naudoti šį paketą kuriant pagrindinį PDF su pagrindiniu įvesties tekstu.



paketą pagrindinis

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

func pagrindinis () {
pdf := fpdf . Nauja ( 'P' , 'mm' , 'A4' , '' )
pdf . Pridėti puslapį ()
pdf . SetFont ( 'Arial' , 'B' , 16 )
pdf . Ląstelė ( 40 , 10 , „Skauda užpakalį...“ )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}

Pateiktame pavyzdyje pradedame importuoti mums reikalingus paketus. Mūsų atveju mums reikia tik „fpdf“ paketo.

Tada sukuriame naują PDF dokumentą naudodami fpdf.New() funkciją ir nurodome PDF ypatybes, pvz., puslapio orientaciją, matavimo vienetą ir dydį.

Tada pridedame naują puslapį naudodami funkciją AddPage ().

Tada mes pradedame nustatyti dokumento šriftą ir dydį naudodami funkciją SetFont(). Taip pat pridedame stačiakampę sritį, dar vadinamą langeliu, su funkcija Cell(), kad būtų rodomas tekstas.

Galiausiai sugeneruojame PDF ir išsaugome jį naudodami OutputFileAndClose() metodą.

Pridėkite vaizdus

Taip pat galime pridėti vaizdų palaikymą, kaip parodyta šiame pavyzdiniame kode:

paketą pagrindinis

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

func pagrindinis () {
pdf := fpdf . Nauja ( 'P' , 'mm' , 'A4' , '' )
pdf . Pridėti puslapį ()
pdf . Vaizdo parinktys ( 'linux-tux.png' , 10 , 10 , 40 , 0 , klaidinga , fpdf . Vaizdo parinktys { Vaizdo tipas : 'PNG' , ReadDpi : tiesa }, 0 , '' )
klysti := pdf . OutputFileAndClose ( 'pavyzdys.pdf' )
jeigu klysti != nulis {
panika ( klysti )
}
}

Tai turėtų apimti nurodytą vaizdą dokumente.

Kelių puslapių dokumentas su antraštėmis ir poraštėmis

Paketas taip pat palaiko kelis puslapius, įskaitant tokias funkcijas kaip antraštės ir poraštės, kaip parodyta šiame pavyzdyje:

paketą pagrindinis

importuoti (
'strconv' // Importuokite paketą strconv

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

func antraštę ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'B' , 12 )
pdf . Ląstelė ( 0 , 10 , 'Puslapio antraštė' )
pdf . Ln ( dvidešimt )
}

func poraštė ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - penkiolika )
pdf . SetFont ( 'Arial' , 'aš' , 8 )
pdf . Ląstelė ( 0 , 10 , 'Puslapis' + strconv . nuskendo ( pdf . Puslapio Nr ()))
}

func pagrindinis () {
pdf := fpdf . Nauja ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( func () { antraštę ( pdf ) })
pdf . SetFooterFunc ( func () { poraštė ( pdf ) })

pdf . Pridėti puslapį ()
pdf . SetFont ( 'Arial' , '' , 12 )
dėl i := 0 ; i < 40 ; i ++ {
pdf . Ląstelė ( 0 , 10 , 'Spausdinimo eilutės numeris' + strconv . nuskendo ( i ))
pdf . Ln ( 12 )
}

pdf . OutputFileAndClose ( 'multipage.pdf' )
}

Šiuo atveju apibrėžiame antraštės ir poraštės funkcijas, kad nustatytų šių PDF skilčių turinį.

Tada naudojame SetHeaderFunc ir SetFooterFunc, kad nurodytume funkcijas kaip dokumento antraštę ir poraštę.

Galiausiai, mes naudojame kilpą, kad sukurtume kelias teksto eilutes, kurios sukuria kelis puslapius. Gautas PDF yra toks:

Štai jūs tai turite!

Išvada

Šiame vadove mes daug sužinojome apie PDF generavimą programoje „Go“, naudodami „fpdf“ paketą. Šiame pakete yra daug įrankių ir funkcijų PDF failams kurti. Norėdami sužinoti daugiau, patikrinkite dokumentus.