Generazione di PDF a Golang (PDF)

Generazione Di Pdf A Golang Pdf



Il formato di documento portatile o PDF in breve è un formato di file incredibilmente popolare e versatile utilizzato nei documenti. Il PDF è supportato in quasi tutte le piattaforme e i sistemi, rendendolo una scelta eccellente per condividere i documenti.

Quando si tratta di sviluppatori, potremmo imbatterci in casi in cui dobbiamo generare a livello di codice i documenti PDF in base ai dati di input. Ad esempio, puoi avere un'app Web che genera fatture PDF in base alle informazioni di acquisto dal database.

Fortunatamente, l’ecosistema Go è enorme e ci sono strumenti e funzionalità per eseguire facilmente la generazione di PDF senza doverli creare da zero.







In questo tutorial impareremo come utilizzare il pacchetto 'fpdf' che fornisce potenti funzionalità per generare documenti PDF in base ai dati di input.



Configurazione dell'ambiente

Prima di procedere, assicurati di aver installato i seguenti strumenti:



  1. Assicurati di avere l'ultimo compilatore Go installato sul tuo sistema
  2. Un editor di codice

Installa Gofpdf

Una volta configurato il progetto, utilizza il comando 'go get' per installare il pacchetto 'fpdf'.





$ andare prendi GitHub . con / andare - PDF / fpdf

Una volta installato, possiamo procedere e coprire le funzionalità fornite dal pacchetto per la generazione di PDF.

Crea un documento PDF di base

Considera il seguente codice di esempio che dimostra come utilizzare questo pacchetto per creare un PDF di base dato un testo di input di base.



pacchetto principale

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

funz principale () {
PDF := fpdf . Nuovo ( 'P' , 'mm' , 'A4' , '' )
PDF . Aggiungi pagina ()
PDF . Imposta carattere ( 'Arial' , 'B' , 16 )
PDF . Cellula ( 40 , 10 , 'È una rottura di palle...' )
PDF . OutputFileAndClose ( 'lorem.pdf' )
}

Nell'esempio fornito, iniziamo importando i pacchetti di cui abbiamo bisogno. Nel nostro caso, abbiamo bisogno solo del pacchetto “fpdf”.

Successivamente, creiamo un nuovo documento PDF utilizzando la funzione fpdf.New() e specifichiamo le proprietà PDF come l'orientamento della pagina, l'unità di misura e la dimensione.

Successivamente, aggiungiamo una nuova pagina utilizzando la funzione AddPage().

Procediamo quindi a impostare il carattere e la dimensione del documento utilizzando la funzione SetFont(). Aggiungiamo anche un'area rettangolare, detta anche cella, con la funzione Cell() per visualizzare il testo.

Infine, generiamo il PDF e lo salviamo con il metodo OutputFileAndClose().

Aggiungi le immagini

Possiamo anche aggiungere un supporto per le immagini come mostrato nel seguente codice di esempio:

pacchetto principale

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

funz principale () {
PDF := fpdf . Nuovo ( 'P' , 'mm' , 'A4' , '' )
PDF . Aggiungi pagina ()
PDF . Opzioni immagine ( 'linux-tux.png' , 10 , 10 , 40 , 0 , falso , fpdf . Opzioni immagine { Tipoimmagine : 'PNG' , LeggiDpi : VERO }, 0 , '' )
errare := PDF . OutputFileAndClose ( 'esempio.pdf' )
Se errare != zero {
panico ( errare )
}
}

Ciò dovrebbe includere l'immagine specificata nel documento.

Documento multipagina con intestazioni e piè di pagina

Il pacchetto supporta anche più pagine incluse funzionalità come intestazioni e piè di pagina, come mostrato nell'esempio seguente:

pacchetto principale

importare (
'strconv' // Importa il pacchetto strconv

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

funz intestazione ( PDF * fpdf . Fpdf ) {
PDF . Imposta carattere ( 'Arial' , 'B' , 12 )
PDF . Cellula ( 0 , 10 , 'Intestazione di pagina' )
PDF . Ln ( venti )
}

funz piè di pagina ( PDF * fpdf . Fpdf ) {
PDF . Imposta Y ( - quindici )
PDF . Imposta carattere ( 'Arial' , 'IO' , 8 )
PDF . Cellula ( 0 , 10 , 'Pagina ' + strconv . affogato ( PDF . Pagina numero ()))
}

funz principale () {
PDF := fpdf . Nuovo ( 'P' , 'mm' , 'A4' , '' )
PDF . SetHeaderFunc ( funz () { intestazione ( PDF ) })
PDF . SetFooterFunc ( funz () { piè di pagina ( PDF ) })

PDF . Aggiungi pagina ()
PDF . Imposta carattere ( 'Arial' , '' , 12 )
per io := 0 ; io < 40 ; io ++ {
PDF . Cellula ( 0 , 10 , 'Numero di riga di stampa' + strconv . affogato ( io ))
PDF . Ln ( 12 )
}

PDF . OutputFileAndClose ( 'multipagina.pdf' )
}

In questo caso, definiamo le funzioni di intestazione e piè di pagina per impostare il contenuto di queste sezioni del PDF.

Utilizziamo quindi SetHeaderFunc e SetFooterFunc per specificare le funzioni come intestazione e piè di pagina per il documento.

Infine, utilizziamo un ciclo per creare più righe di testo che si traducono in più pagine. Il PDF risultante è il seguente:

Ecco qua!

Conclusione

In questo tutorial abbiamo imparato molto sulla generazione di PDF in Go utilizzando il pacchetto 'fpdf'. Questo pacchetto è dotato di numerosi strumenti e funzionalità per generare PDF. Controlla la documentazione per saperne di più.