Generování PDF v Golangu (PDF)

Generovani Pdf V Golangu Pdf



Portable Document Format nebo zkráceně PDF je neuvěřitelně populární a všestranný formát souborů, který se používá v dokumentech. PDF je podporováno téměř na všech platformách a systémech, takže je vynikající volbou pro sdílení dokumentů.

Pokud jde o vývojáře, můžeme narazit na případy, kdy potřebujeme programově generovat dokumenty PDF na základě vstupních dat. Můžete mít například webovou aplikaci, která generuje faktury ve formátu PDF na základě informací o nákupu z databáze.

Naštěstí je ekosystém Go masivní a existují nástroje a funkce pro snadné generování PDF bez vytváření od nuly.







V tomto tutoriálu se naučíme, jak používat balíček „fpdf“, který poskytuje výkonné funkce pro generování dokumentů PDF na základě vstupních dat.



Nastavení prostředí

Než budeme pokračovat, ujistěte se, že máte nainstalované následující nástroje:



  1. Ujistěte se, že máte v systému nainstalovaný nejnovější Go kompilátor
  2. Editor kódu

Nainstalujte Gofpdf

Jakmile máte projekt nastaven, použijte příkaz „go get“ k instalaci balíčku „fpdf“.





$ jít získat github . s / jít - pdf / fpdf

Po instalaci můžeme pokračovat a pokrýt funkce poskytované balíčkem pro generování PDF.

Vytvořte základní dokument PDF

Zvažte následující příklad kódu, který ukazuje, jak použít tento balíček k vytvoření základního PDF se základním vstupním textem.



balík hlavní

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

func hlavní () {
pdf := fpdf . Nový ( 'P' , 'mm' , 'A4' , '' )
pdf . AddPage ()
pdf . SetFont ( 'Arial' , 'B' , 16 )
pdf . Buňka ( 40 , 10 , 'Je to bolest v zadku...' )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}

V uvedeném příkladu začneme importem balíčků, které potřebujeme. V našem případě potřebujeme pouze balíček „fpdf“.

Dále vytvoříme nový dokument PDF pomocí funkce fpdf.New() a určíme vlastnosti PDF, jako je orientace stránky, měrná jednotka a velikost.

Dále přidáme novou stránku pomocí funkce AddPage().

Poté přistoupíme k nastavení písma a velikosti dokumentu pomocí funkce SetFont(). Přidáme také obdélníkovou oblast, známou také jako buňka, pomocí funkce Cell() pro zobrazení textu.

Nakonec vygenerujeme PDF a uložíme jej pomocí metody OutputFileAndClose().

Přidejte obrázky

Můžeme také přidat podporu pro obrázky, jak je znázorněno v následujícím příkladu kódu:

balík hlavní

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

func hlavní () {
pdf := fpdf . Nový ( 'P' , 'mm' , 'A4' , '' )
pdf . AddPage ()
pdf . Možnosti obrázku ( 'linux-tux.png' , 10 , 10 , 40 , 0 , Nepravdivé , fpdf . Možnosti obrázku { Typ obrázku : 'PNG' , ReadDpi : skutečný }, 0 , '' )
chybovat := pdf . OutputFileAndClose ( 'example.pdf' )
-li chybovat != nula {
panika ( chybovat )
}
}

To by mělo zahrnovat zadaný obrázek do dokumentu.

Vícestránkový dokument se záhlavím a zápatím

Balíček také podporuje více stránek včetně funkcí, jako jsou záhlaví a zápatí, jak ukazuje následující příklad:

balík hlavní

import (
'strconv' // Import balíčku strconv

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

func záhlaví ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'B' , 12 )
pdf . Buňka ( 0 , 10 , 'Záhlaví stránky' )
pdf . Ln ( dvacet )
}

func zápatí ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - patnáct )
pdf . SetFont ( 'Arial' , 'já' , 8 )
pdf . Buňka ( 0 , 10 , 'stránka' + strconv . utopil ( pdf . Strana č ()))
}

func hlavní () {
pdf := fpdf . Nový ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( func () { záhlaví ( pdf ) })
pdf . SetFooterFunc ( func () { zápatí ( pdf ) })

pdf . AddPage ()
pdf . SetFont ( 'Arial' , '' , 12 )
pro i := 0 ; i < 40 ; i ++ {
pdf . Buňka ( 0 , 10 , 'Tisk čísla řádku' + strconv . utopil ( i ))
pdf . Ln ( 12 )
}

pdf . OutputFileAndClose ( 'multipage.pdf' )
}

V tomto případě definujeme funkce záhlaví a zápatí pro nastavení obsahu těchto částí PDF.

Potom použijeme SetHeaderFunc a SetFooterFunc k určení funkcí jako záhlaví a zápatí dokumentu.

Nakonec použijeme smyčku k vytvoření více řádků textových řádků, což má za následek více stránek. Výsledné PDF je následující:

Tady to máš!

Závěr

V tomto tutoriálu jsme se naučili hodně o generování PDF v Go pomocí balíčku „fpdf“. Tento balíček je dodáván se spoustou nástrojů a funkcí pro generování souborů PDF. Další informace naleznete v dokumentech.