Când vine vorba de dezvoltatori, s-ar putea să întâlnim situații în care trebuie să generăm în mod programatic documentele PDF pe baza datelor de intrare. De exemplu, puteți avea o aplicație web care generează facturile PDF pe baza informațiilor de achiziție din baza de date.
Din fericire, ecosistemul Go este masiv și există instrumente și funcții pentru a efectua generarea PDF cu ușurință, fără a construi de la zero.
În acest tutorial, vom învăța cum să folosim pachetul „fpdf” care oferă caracteristici puternice pentru a genera documente PDF pe baza datelor de intrare.
Configurarea mediului
Înainte de a continua, asigurați-vă că aveți instalate următoarele instrumente:
- Asigurați-vă că aveți cel mai recent compilator Go instalat pe sistemul dvs
- Un editor de coduri
Instalați Gofpdf
Odată ce ați configurat proiectul, utilizați comanda „go get” pentru a instala pachetul „fpdf”.
$ merge obține github . cu / merge - pdf / fpdf
Odată instalat, putem continua și acoperi caracteristicile oferite de pachet pentru generarea PDF.
Creați un document PDF de bază
Luați în considerare următorul exemplu de cod care demonstrează cum să utilizați acest pachet pentru a crea un PDF de bază având în vedere un text de intrare de bază.
pachet principal
import (
„github.com/go-pdf/fpdf”
)
func principal () {
pdf := fpdf . Nou ( 'P' , 'mm' , „A4” , '' )
pdf . Adauga pagina ()
pdf . SetFont ( 'Arial' , 'B' , 16 )
pdf . Celulă ( 40 , 10 , „Este o durere în fund...” )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}
În exemplul dat, începem prin a importa pachetele de care avem nevoie. În cazul nostru, avem nevoie doar de pachetul „fpdf”.
Apoi, creăm un nou document PDF utilizând funcția fpdf.New() și specificăm proprietățile PDF, cum ar fi orientarea paginii, unitatea de măsură și dimensiunea.
Apoi, adăugăm o pagină nouă folosind funcția AddPage().
Continuăm apoi să setăm fontul și dimensiunea documentului folosind funcția SetFont(). Adăugăm și o zonă dreptunghiulară, cunoscută și ca celulă, cu funcția Cell() pentru a afișa textul.
În cele din urmă, generăm PDF-ul și îl salvăm cu metoda OutputFileAndClose().
Adăugați imaginile
De asemenea, putem adăuga un suport pentru imagini, așa cum se arată în următorul exemplu de cod:
pachet principalimport (
„github.com/go-pdf/fpdf”
)
func principal () {
pdf := fpdf . Nou ( 'P' , 'mm' , „A4” , '' )
pdf . Adauga pagina ()
pdf . ImageOptions ( „linux-tux.png” , 10 , 10 , 40 , 0 , fals , fpdf . ImageOptions { ImageType : 'PNG' , ReadDpi : Adevărat }, 0 , '' )
a greșit := pdf . OutputFileAndClose ( „exemplu.pdf” )
dacă a greșit != zero {
panică ( a greșit )
}
}
Aceasta ar trebui să includă imaginea specificată în document.
Document cu mai multe pagini cu anteturi și subsoluri
Pachetul acceptă, de asemenea, mai multe pagini, inclusiv funcții precum anteturi și subsoluri, așa cum se arată în exemplul următor:
pachet principalimport (
'strconv' // Import pachetul strconv
„github.com/go-pdf/fpdf”
)
func antet ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'B' , 12 )
pdf . Celulă ( 0 , 10 , „Antetul paginii” )
pdf . Ln ( douăzeci )
}
func subsol ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - cincisprezece )
pdf . SetFont ( 'Arial' , 'eu' , 8 )
pdf . Celulă ( 0 , 10 , 'Pagina' + strconv . înecat ( pdf . Pagina nr ()))
}
func principal () {
pdf := fpdf . Nou ( 'P' , 'mm' , „A4” , '' )
pdf . SetHeaderFunc ( func () { antet ( pdf ) })
pdf . SetFooterFunc ( func () { subsol ( pdf ) })
pdf . Adauga pagina ()
pdf . SetFont ( 'Arial' , '' , 12 )
pentru i := 0 ; i < 40 ; i ++ {
pdf . Celulă ( 0 , 10 , „Se imprimă numărul liniei” + strconv . înecat ( i ))
pdf . Ln ( 12 )
}
pdf . OutputFileAndClose ( „multipage.pdf” )
}
În acest caz, definim funcții de antet și subsol pentru a seta conținutul acestor secțiuni ale PDF-ului.
Apoi folosim SetHeaderFunc și SetFooterFunc pentru a specifica funcțiile ca antet și subsol pentru document.
În cele din urmă, folosim o buclă pentru a crea mai multe linii de linii de text care rezultă în mai multe pagini. PDF-ul rezultat este după cum urmează:
Iată-l!
Concluzie
În acest tutorial, am învățat multe despre generarea PDF în Go folosind pachetul „fpdf”. Acest pachet vine cu o mulțime de instrumente și funcții pentru a genera PDF-uri. Consultați documentele pentru a afla mai multe.