Pagbuo ng PDF sa Golang (PDF)

Pagbuo Ng Pdf Sa Golang Pdf



Ang Portable Document Format o PDF para sa maikli ay isang hindi kapani-paniwalang sikat at maraming nalalaman na format ng file na ginagamit sa mga dokumento. Ang PDF ay sinusuportahan sa halos lahat ng mga platform at system, na ginagawa itong isang mahusay na pagpipilian para sa pagbabahagi ng mga dokumento.

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:



  1. Tiyaking mayroon kang pinakabagong Go compiler na naka-install sa iyong system
  2. 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 pangunahing

angkat (
'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 pangunahing

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