Generare PDF în Golang (PDF)

Generare Pdf In Golang Pdf



Portable Document Format sau PDF pe scurt este un format de fișier incredibil de popular și versatil care este folosit în documente. PDF-ul este acceptat în aproape toate platformele și sistemele, ceea ce îl face o alegere excelentă pentru partajarea documentelor.

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:



  1. Asigurați-vă că aveți cel mai recent compilator Go instalat pe sistemul dvs
  2. 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 principal

import (
„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 principal

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