Generació de PDF a Golang (PDF)

Generacio De Pdf A Golang Pdf



El format de document portàtil o PDF per abreujar és un format de fitxer increïblement popular i versàtil que s'utilitza als documents. El PDF és compatible amb gairebé totes les plataformes i sistemes, per la qual cosa és una opció excel·lent per compartir els documents.

Quan es tracta de desenvolupadors, és possible que ens trobem amb casos en què necessitem generar els documents PDF de manera programada a partir de les dades d'entrada. Per exemple, podeu tenir una aplicació web que generi les factures PDF a partir de la informació de compra de la base de dades.

Afortunadament, l'ecosistema Go és massiu i hi ha eines i funcions per realitzar la generació de PDF amb facilitat sense construir des de zero.







En aquest tutorial, aprendrem a utilitzar el paquet 'fpdf' que ofereix funcions potents per generar documents PDF basats en dades d'entrada.



Configuració de l'entorn

Abans de continuar, assegureu-vos que teniu instal·lades les eines següents:



  1. Assegureu-vos que teniu l'últim compilador Go instal·lat al vostre sistema
  2. Un editor de codi

Instal·leu Gofpdf

Un cop hàgiu configurat el vostre projecte, utilitzeu l'ordre 'go get' per instal·lar el paquet 'fpdf'.





$ anar obtenir github . amb / anar - pdf / fpdf

Un cop instal·lat, podem continuar i cobrir les característiques que ofereix el paquet per a la generació de PDF.

Creeu un document PDF bàsic

Considereu el codi d'exemple següent que mostra com utilitzar aquest paquet per crear un PDF bàsic donat un text d'entrada bàsic.



paquet principal

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

func principal () {
pdf := fpdf . Nou ( 'P' , 'mm' , 'A4' , '' )
pdf . Afegeix pàgina ()
pdf . SetFont ( 'Arial' , 'B' , 16 )
pdf . Cèl·lula ( 40 , 10 , 'És un mal de cul...' )
pdf . SortidaFileAndClose ( 'lorem.pdf' )
}

En l'exemple donat, comencem per importar els paquets que necessitem. En el nostre cas, només necessitem el paquet 'fpdf'.

A continuació, creem un nou document PDF mitjançant la funció fpdf.New() i especifiquem les propietats del PDF com ara l'orientació de la pàgina, la unitat de mesura i la mida.

A continuació, afegim una pàgina nova mitjançant la funció AddPage().

A continuació, procedim a establir el tipus de lletra i la mida del document mitjançant la funció SetFont(). També afegim una àrea rectangular, també coneguda com a cel·la, amb la funció Cell() per mostrar el text.

Finalment, generem el PDF i el desem amb el mètode OutputFileAndClose().

Afegeix les imatges

També podem afegir un suport per a imatges tal com es mostra al codi d'exemple següent:

paquet principal

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

func principal () {
pdf := fpdf . Nou ( 'P' , 'mm' , 'A4' , '' )
pdf . Afegeix pàgina ()
pdf . Opcions d'imatge ( 'linux-tux.png' , 10 , 10 , 40 , 0 , fals , fpdf . Opcions d'imatge { ImageType : 'PNG' , ReadDpi : veritat }, 0 , '' )
errar := pdf . SortidaFileAndClose ( 'exemple.pdf' )
si errar != nil {
pànic ( errar )
}
}

Això hauria d'incloure la imatge especificada al document.

Document de diverses pàgines amb capçaleres i peus de pàgina

El paquet també admet diverses pàgines, incloent funcions com ara capçaleres i peus de pàgina, tal com es mostra a l'exemple següent:

paquet principal

importar (
'strconv' // Importa el paquet strconv

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

func capçalera ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'B' , 12 )
pdf . Cèl·lula ( 0 , 10 , 'Capçalera de la pàgina' )
pdf . Ln ( 20 )
}

func peu de pàgina ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - 15 )
pdf . SetFont ( 'Arial' , 'jo' , 8 )
pdf . Cèl·lula ( 0 , 10 , 'Pàgina' + strconv . ofegat ( pdf . Núm. de pàgina ()))
}

func principal () {
pdf := fpdf . Nou ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( func () { capçalera ( pdf ) })
pdf . SetFooterFunc ( func () { peu de pàgina ( pdf ) })

pdf . Afegeix pàgina ()
pdf . SetFont ( 'Arial' , '' , 12 )
per i := 0 ; i < 40 ; i ++ {
pdf . Cèl·lula ( 0 , 10 , 'Impressió del número de línia' + strconv . ofegat ( i ))
pdf . Ln ( 12 )
}

pdf . SortidaFileAndClose ( 'multipage.pdf' )
}

En aquest cas, definim funcions de capçalera i peu de pàgina per definir el contingut d'aquestes seccions del PDF.

A continuació, fem servir SetHeaderFunc i SetFooterFunc per especificar les funcions com a capçalera i peu de pàgina del document.

Finalment, fem servir un bucle per crear diverses línies de línies de text que donen lloc a diverses pàgines. El PDF resultant és el següent:

Aquí ho tens!

Conclusió

En aquest tutorial, hem après molt sobre la generació de PDF a Go mitjançant el paquet 'fpdf'. Aquest paquet inclou moltes eines i funcions per generar PDF. Consulteu els documents per obtenir més informació.