Ko gre za razvijalce, lahko naletimo na primere, ko moramo programsko generirati dokumente PDF na podlagi vhodnih podatkov. Imate lahko na primer spletno aplikacijo, ki ustvari račune PDF na podlagi informacij o nakupu iz baze podatkov.
Na srečo je ekosistem Go ogromen in obstajajo orodja in funkcije za enostavno ustvarjanje PDF-jev brez ustvarjanja iz nič.
V tej vadnici se bomo naučili uporabljati paket »fpdf«, ki ponuja zmogljive funkcije za ustvarjanje dokumentov PDF na podlagi vhodnih podatkov.
Nastavitev okolja
Preden nadaljujemo, se prepričajte, da imate nameščena naslednja orodja:
- Prepričajte se, da imate v sistemu nameščen najnovejši prevajalnik Go
- Urejevalnik kode
Namestite Gofpdf
Ko imate nastavljen projekt, uporabite ukaz »go get« za namestitev paketa »fpdf«.
$ pojdi pridobi github . z / pojdi - pdf / fpdf
Ko je nameščen, lahko nadaljujemo in pokrivamo funkcije, ki jih ponuja paket za ustvarjanje PDF.
Ustvarite osnovni dokument PDF
Oglejte si naslednji primer kode, ki prikazuje, kako uporabiti ta paket za ustvarjanje osnovnega PDF-ja glede na osnovno vhodno besedilo.
paket glavni
uvoz (
'github.com/go-pdf/fpdf'
)
funk glavni () {
pdf := fpdf . Novo ( 'P' , 'mm' , 'A4' , '' )
pdf . AddPage ()
pdf . SetFont ( 'Arial' , 'B' , 16 )
pdf . Celica ( 40 , 10 , 'To je bolečina v riti ...' )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}
V danem primeru začnemo z uvozom paketov, ki jih potrebujemo. V našem primeru potrebujemo samo paket “fpdf”.
Nato ustvarimo nov dokument PDF s funkcijo fpdf.New() in določimo lastnosti PDF-ja, kot so usmerjenost strani, merska enota in velikost.
Nato dodamo novo stran s funkcijo AddPage().
Nato nadaljujemo z nastavitvijo pisave in velikosti dokumenta s funkcijo SetFont(). Dodamo tudi pravokotno območje, znano tudi kot celica, s funkcijo Cell() za prikaz besedila.
Na koncu ustvarimo PDF in ga shranimo z metodo OutputFileAndClose().
Dodajte slike
Dodamo lahko tudi podporo za slike, kot je prikazano v naslednji vzorčni kodi:
paket glavniuvoz (
'github.com/go-pdf/fpdf'
)
funk glavni () {
pdf := fpdf . Novo ( 'P' , 'mm' , 'A4' , '' )
pdf . AddPage ()
pdf . ImageOptions ( 'linux-tux.png' , 10 , 10 , 40 , 0 , lažno , fpdf . ImageOptions { ImageType : 'PNG' , ReadDpi : prav }, 0 , '' )
napaka := pdf . OutputFileAndClose ( 'primer.pdf' )
če napaka != nič {
panika ( napaka )
}
}
To mora vsebovati navedeno sliko v dokumentu.
Večstranski dokument z glavami in nogami
Paket podpira tudi več strani, vključno s funkcijami, kot so glave in noge, kot je prikazano v naslednjem primeru:
paket glavniuvoz (
'strconv' // Uvozi paket strconv
'github.com/go-pdf/fpdf'
)
funk glava ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'B' , 12 )
pdf . Celica ( 0 , 10 , 'Glava strani' )
pdf . Ln ( dvajset )
}
funk noga ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - petnajst )
pdf . SetFont ( 'Arial' , 'JAZ' , 8 )
pdf . Celica ( 0 , 10 , 'Stran' + strconv . utopljen ( pdf . stran št ()))
}
funk glavni () {
pdf := fpdf . Novo ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( funk () { glava ( pdf ) })
pdf . SetFooterFunc ( funk () { noga ( pdf ) })
pdf . AddPage ()
pdf . SetFont ( 'Arial' , '' , 12 )
za jaz := 0 ; jaz < 40 ; jaz ++ {
pdf . Celica ( 0 , 10 , 'Številka vrstice tiskanja' + strconv . utopljen ( jaz ))
pdf . Ln ( 12 )
}
pdf . OutputFileAndClose ( 'večstranski.pdf' )
}
V tem primeru definiramo funkciji glave in noge za nastavitev vsebine teh odsekov PDF-ja.
Nato uporabimo SetHeaderFunc in SetFooterFunc, da določimo funkciji kot glavo in nogo dokumenta.
Nazadnje uporabimo zanko za ustvarjanje več vrstic besedilnih vrstic, kar povzroči več strani. Nastali PDF je naslednji:
Tukaj imaš!
Zaključek
V tej vadnici smo se naučili veliko o ustvarjanju PDF-jev v Go z uporabo paketa »fpdf«. Ta paket vsebuje veliko orodij in funkcij za ustvarjanje PDF-jev. Preverite dokumente, če želite izvedeti več.