Pagdating sa mga developer, maaari tayong makatagpo ng mga pagkakataon kung saan kailangan nating bumuo ng mga PDF na dokumento batay sa data ng pag-input gamit ang programmatically. Halimbawa, maaari kang magkaroon ng web app na bumubuo ng mga PDF invoice batay sa impormasyon ng pagbili mula sa database.
Sa kabutihang-palad, ang Go ecosystem ay napakalaki at may mga tool at feature upang maisagawa ang pagbuo ng PDF nang madali nang walang pagbuo mula sa simula.
Sa tutorial na ito, matututunan natin kung paano gamitin ang package na 'fpdf' na nagbibigay ng mga makapangyarihang feature para makabuo ng mga PDF na dokumento batay sa input data.
Pag-setup ng Kapaligiran
Bago kami magpatuloy, tiyaking mayroon kang mga sumusunod na tool na naka-install:
- Tiyaking mayroon kang pinakabagong Go compiler na naka-install sa iyong system
- Isang code editor
I-install ang Gofpdf
Kapag na-setup mo na ang iyong proyekto, gamitin ang command na 'go get' para i-install ang package na 'fpdf'.
$ pumunta ka kumuha ng github . kasama / pumunta ka - pdf / fpdf
Kapag na-install na, maaari kaming magpatuloy at masakop ang mga tampok na ibinigay ng package para sa pagbuo ng PDF.
Gumawa ng Basic PDF Document
Isaalang-alang ang sumusunod na halimbawang code na nagpapakita kung paano gamitin ang package na ito upang lumikha ng pangunahing PDF na binigyan ng pangunahing input na text.
pakete pangunahing
angkat (
'github.com/go-pdf/fpdf'
)
func pangunahing () {
pdf := fpdf . Bago ( 'P' , 'mm' , 'A4' , '' )
pdf . Magdagdag ng Pahina ()
pdf . SetFont ( 'Arial' , 'B' , 16 )
pdf . Cell ( 40 , 10 , 'Ang sakit sa pwet...' )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}
Sa ibinigay na halimbawa, magsisimula kami sa pamamagitan ng pag-import ng mga pakete na kailangan namin. Sa aming kaso, kailangan lang namin ang 'fpdf' na pakete.
Susunod, gumawa kami ng bagong PDF na dokumento gamit ang function na fpdf.New() at tukuyin ang mga katangian ng PDF gaya ng oryentasyon ng page, unit ng sukat, at laki.
Susunod, nagdagdag kami ng bagong page gamit ang AddPage() function.
Pagkatapos ay magpatuloy kami upang itakda ang font at laki para sa dokumento gamit ang SetFont() function. Nagdaragdag din kami ng isang hugis-parihaba na lugar, na kilala rin bilang isang cell, na may function na Cell() upang ipakita ang teksto.
Sa wakas, binubuo namin ang PDF at i-save ito gamit ang OutputFileAndClose() na pamamaraan.
Idagdag ang Mga Larawan
Maaari din kaming magdagdag ng suporta para sa mga larawan tulad ng ipinapakita sa sumusunod na halimbawang code:
pakete pangunahingangkat (
'github.com/go-pdf/fpdf'
)
func pangunahing () {
pdf := fpdf . Bago ( 'P' , 'mm' , 'A4' , '' )
pdf . Magdagdag ng Pahina ()
pdf . Mga Pagpipilian sa Imahe ( 'linux-tux.png' , 10 , 10 , 40 , 0 , mali , fpdf . Mga Pagpipilian sa Imahe { Uri ng Larawan : 'PNG' , ReadDpi : totoo }, 0 , '' )
magkamali := pdf . OutputFileAndClose ( 'example.pdf' )
kung magkamali != wala {
panic ( magkamali )
}
}
Dapat itong isama ang tinukoy na larawan sa dokumento.
Multi-Page na Dokumento na may mga Header at Footer
Sinusuportahan din ng package ang maramihang mga pahina kabilang ang mga tampok tulad ng mga header at footer tulad ng ipinapakita sa sumusunod na halimbawa:
pakete pangunahingangkat (
'strconv' // I-import ang strconv package
'github.com/go-pdf/fpdf'
)
func header ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'B' , 12 )
pdf . Cell ( 0 , 10 , 'Header ng Pahina' )
pdf . Ln ( dalawampu )
}
func footer ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - labinlima )
pdf . SetFont ( 'Arial' , 'ako' , 8 )
pdf . Cell ( 0 , 10 , 'Pahina' + strconv . nalunod ( pdf . PahinaNo ()))
}
func pangunahing () {
pdf := fpdf . Bago ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( func () { header ( pdf ) })
pdf . SetFooterFunc ( func () { footer ( pdf ) })
pdf . Magdagdag ng Pahina ()
pdf . SetFont ( 'Arial' , '' , 12 )
para sa i := 0 ; i < 40 ; i ++ {
pdf . Cell ( 0 , 10 , 'Pagpi-print ng numero ng linya' + strconv . nalunod ( i ))
pdf . Ln ( 12 )
}
pdf . OutputFileAndClose ( 'multipage.pdf' )
}
Sa kasong ito, tinutukoy namin ang mga function ng header at footer upang itakda ang mga nilalaman para sa mga seksyong ito ng PDF.
Pagkatapos ay gagamitin namin ang SetHeaderFunc at SetFooterFunc para tukuyin ang mga function bilang header at footer para sa dokumento.
Panghuli, gumagamit kami ng loop upang lumikha ng maraming linya ng mga linya ng teksto na nagreresulta sa maraming pahina. Ang resultang PDF ay ang mga sumusunod:
Ayan na!
Konklusyon
Sa tutorial na ito, marami kaming natutunan tungkol sa pagbuo ng PDF sa Go gamit ang 'fpdf' package. Ang package na ito ay puno ng maraming tool at feature para makabuo ng mga PDF. Tingnan ang mga doc para matuto pa.