Generovanie PDF v Golangu (PDF)

Generovanie Pdf V Golangu Pdf



Portable Document Format alebo skrátene PDF je neuveriteľne populárny a všestranný formát súborov, ktorý sa používa v dokumentoch. PDF je podporované takmer na všetkých platformách a systémoch, čo z neho robí vynikajúcu voľbu na zdieľanie dokumentov.

Pokiaľ ide o vývojárov, môžeme naraziť na prípady, keď potrebujeme programovo generovať dokumenty PDF na základe vstupných údajov. Môžete mať napríklad webovú aplikáciu, ktorá generuje faktúry PDF na základe informácií o nákupe z databázy.

Našťastie je ekosystém Go masívny a existujú nástroje a funkcie na jednoduché vytváranie PDF bez toho, aby ste museli budovať od začiatku.







V tomto návode sa naučíme, ako používať balík „fpdf“, ktorý poskytuje výkonné funkcie na generovanie dokumentov PDF na základe vstupných údajov.



Nastavenie prostredia

Skôr ako budeme pokračovať, uistite sa, že máte nainštalované nasledujúce nástroje:



  1. Uistite sa, že máte v systéme nainštalovaný najnovší Go kompilátor
  2. Editor kódu

Nainštalujte Gofpdf

Po nastavení projektu použite príkaz „go get“ na inštaláciu balíka „fpdf“.





$ ísť získať github . s / ísť - pdf / fpdf

Po inštalácii môžeme pokračovať a pokryť funkcie poskytované balíkom na generovanie PDF.

Vytvorte základný dokument PDF

Zvážte nasledujúci príklad kódu, ktorý ukazuje, ako použiť tento balík na vytvorenie základného PDF so základným vstupným textom.



balík Hlavná

importovať (
'github.com/go-pdf/fpdf'
)

func Hlavná () {
pdf := fpdf . Nový ( 'P' , 'mm' , 'A4' , '' )
pdf . AddPage ()
pdf . SetFont ( 'Arial' , 'B' , 16 )
pdf . Bunka ( 40 , 10 , 'Je to bolesť v zadku...' )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}

V uvedenom príklade začneme importovaním balíkov, ktoré potrebujeme. V našom prípade potrebujeme iba balík „fpdf“.

Ďalej vytvoríme nový dokument PDF pomocou funkcie fpdf.New() a určíme vlastnosti PDF, ako je orientácia strany, merná jednotka a veľkosť.

Ďalej pridáme novú stránku pomocou funkcie AddPage().

Potom pristúpime k nastaveniu písma a veľkosti dokumentu pomocou funkcie SetFont(). Pridáme tiež obdĺžnikovú oblasť, známu aj ako bunka, pomocou funkcie Cell() na zobrazenie textu.

Nakoniec vygenerujeme PDF a uložíme ho pomocou metódy OutputFileAndClose().

Pridajte obrázky

Môžeme tiež pridať podporu pre obrázky, ako je znázornené v nasledujúcom príklade kódu:

balík Hlavná

importovať (
'github.com/go-pdf/fpdf'
)

func Hlavná () {
pdf := fpdf . Nový ( 'P' , 'mm' , 'A4' , '' )
pdf . AddPage ()
pdf . ImageOptions ( 'linux-tux.png' , 10 , 10 , 40 , 0 , falošný , fpdf . ImageOptions { ImageType : 'PNG' , ReadDpi : pravda }, 0 , '' )
chybovať := pdf . OutputFileAndClose ( 'example.pdf' )
ak chybovať != nula {
panika ( chybovať )
}
}

To by malo obsahovať špecifikovaný obrázok dokumentu.

Viacstranový dokument s hlavičkami a pätami

Balík tiež podporuje viacero stránok vrátane funkcií, ako sú hlavičky a päty, ako je znázornené v nasledujúcom príklade:

balík Hlavná

importovať (
'strconv' // Importujte balík strconv

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

func hlavička ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'B' , 12 )
pdf . Bunka ( 0 , 10 , 'Hlavička stránky' )
pdf . Ln ( dvadsať )
}

func päta ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - pätnásť )
pdf . SetFont ( 'Arial' , 'ja' , 8 )
pdf . Bunka ( 0 , 10 , 'stránka' + strconv . utopil ( pdf . Strana č ()))
}

func Hlavná () {
pdf := fpdf . Nový ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( func () { hlavička ( pdf ) })
pdf . SetFooterFunc ( func () { päta ( pdf ) })

pdf . AddPage ()
pdf . SetFont ( 'Arial' , '' , 12 )
pre i := 0 ; i < 40 ; i ++ {
pdf . Bunka ( 0 , 10 , 'Tlač číslo riadku' + strconv . utopil ( i ))
pdf . Ln ( 12 )
}

pdf . OutputFileAndClose ( 'multipage.pdf' )
}

V tomto prípade definujeme funkcie hlavičky a päty na nastavenie obsahu pre tieto časti PDF.

Potom použijeme SetHeaderFunc a SetFooterFunc na určenie funkcií ako hlavičky a päty dokumentu.

Nakoniec použijeme slučku na vytvorenie viacerých riadkov textových riadkov, čo vedie k viacerým stránkam. Výsledné PDF je nasledovné:

Tu to máte!

Záver

V tomto návode sme sa veľa naučili o generovaní PDF v Go pomocou balíka „fpdf“. Tento balík je dodávaný s množstvom nástrojov a funkcií na vytváranie súborov PDF. Viac informácií nájdete v dokumentoch.