PDF-Generierung in Golang (PDF)

Pdf Generierung In Golang Pdf



Portable Document Format oder kurz PDF ist ein unglaublich beliebtes und vielseitiges Dateiformat, das in Dokumenten verwendet wird. PDF wird auf fast allen Plattformen und Systemen unterstützt und ist daher eine ausgezeichnete Wahl für die gemeinsame Nutzung von Dokumenten.

Wenn es um Entwickler geht, stoßen wir möglicherweise auf Fälle, in denen wir die PDF-Dokumente basierend auf Eingabedaten programmgesteuert generieren müssen. Sie können beispielsweise über eine Web-App verfügen, die die PDF-Rechnungen basierend auf Kaufinformationen aus der Datenbank generiert.

Glücklicherweise ist das Go-Ökosystem riesig und es gibt Tools und Funktionen, mit denen Sie die PDF-Generierung problemlos durchführen können, ohne alles von Grund auf neu erstellen zu müssen.







In diesem Tutorial erfahren Sie, wie Sie das Paket „fpdf“ verwenden, das leistungsstarke Funktionen zum Generieren von PDF-Dokumenten basierend auf Eingabedaten bietet.



Umgebungseinrichtung

Bevor wir fortfahren, stellen Sie sicher, dass Sie die folgenden Tools installiert haben:



  1. Stellen Sie sicher, dass auf Ihrem System der neueste Go-Compiler installiert ist
  2. Ein Code-Editor

Installieren Sie Gofpdf

Sobald Sie Ihr Projekt eingerichtet haben, verwenden Sie den Befehl „go get“, um das Paket „fpdf“ zu installieren.





$ gehen Holen Sie sich Github . mit / gehen - pdf / fpdf

Nach der Installation können wir fortfahren und die vom Paket bereitgestellten Funktionen für die PDF-Generierung abdecken.

Erstellen Sie ein einfaches PDF-Dokument

Betrachten Sie den folgenden Beispielcode, der zeigt, wie Sie mit diesem Paket eine einfache PDF-Datei mit einem einfachen Eingabetext erstellen.



Paket hauptsächlich

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

Funktion hauptsächlich () {
pdf := fpdf . Neu ( 'P' , „mm“ , „A4“ , „“ )
pdf . Seite hinzufügen ()
pdf . SetFont ( „Arial“ , 'B' , 16 )
pdf . Zelle ( 40 , 10 , „Es ist eine Nervensäge…“ )
pdf . OutputFileAndClose ( „lorem.pdf“ )
}

Im gegebenen Beispiel beginnen wir mit dem Importieren der Pakete, die wir benötigen. In unserem Fall benötigen wir nur das Paket „fpdf“.

Als nächstes erstellen wir mit der Funktion fpdf.New() ein neues PDF-Dokument und geben die PDF-Eigenschaften wie Seitenausrichtung, Maßeinheit und Größe an.

Als nächstes fügen wir mit der Funktion AddPage() eine neue Seite hinzu.

Anschließend legen wir mit der Funktion SetFont() die Schriftart und -größe für das Dokument fest. Außerdem fügen wir mit der Funktion Cell() einen rechteckigen Bereich, auch Zelle genannt, hinzu, um den Text anzuzeigen.

Abschließend generieren wir das PDF und speichern es mit der Methode OutputFileAndClose().

Fügen Sie die Bilder hinzu

Wir können auch eine Unterstützung für Bilder hinzufügen, wie im folgenden Beispielcode gezeigt:

Paket hauptsächlich

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

Funktion hauptsächlich () {
pdf := fpdf . Neu ( 'P' , „mm“ , „A4“ , „“ )
pdf . Seite hinzufügen ()
pdf . Bildoptionen ( „linux-tux.png“ , 10 , 10 , 40 , 0 , FALSCH , fpdf . Bildoptionen { Bildtyp : „PNG“ , ReadDpi : WAHR }, 0 , „“ )
irren := pdf . OutputFileAndClose ( „Beispiel.pdf“ )
Wenn irren != Null {
Panik ( irren )
}
}

Dies sollte das angegebene Bild zum Dokument enthalten.

Mehrseitiges Dokument mit Kopf- und Fußzeilen

Das Paket unterstützt auch mehrere Seiten einschließlich Funktionen wie Kopf- und Fußzeilen, wie im folgenden Beispiel gezeigt:

Paket hauptsächlich

importieren (
„strconv“ // Importiere das strconv-Paket

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

Funktion Header ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( „Arial“ , 'B' , 12 )
pdf . Zelle ( 0 , 10 , 'Kopfzeile' )
pdf . Ln ( zwanzig )
}

Funktion Fusszeile ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - fünfzehn )
pdf . SetFont ( „Arial“ , 'ICH' , 8 )
pdf . Zelle ( 0 , 10 , 'Seite ' + strconv . ertrank ( pdf . Seite Nummer ()))
}

Funktion hauptsächlich () {
pdf := fpdf . Neu ( 'P' , „mm“ , „A4“ , „“ )
pdf . SetHeaderFunc ( Funktion () { Header ( pdf ) })
pdf . SetFooterFunc ( Funktion () { Fusszeile ( pdf ) })

pdf . Seite hinzufügen ()
pdf . SetFont ( „Arial“ , „“ , 12 )
für ich := 0 ; ich < 40 ; ich ++ {
pdf . Zelle ( 0 , 10 , „Zeilennummer drucken“ + strconv . ertrank ( ich ))
pdf . Ln ( 12 )
}

pdf . OutputFileAndClose ( „multipage.pdf“ )
}

In diesem Fall definieren wir Kopf- und Fußzeilenfunktionen, um den Inhalt für diese Abschnitte der PDF festzulegen.

Anschließend verwenden wir SetHeaderFunc und SetFooterFunc, um die Funktionen als Kopf- und Fußzeile für das Dokument anzugeben.

Schließlich verwenden wir eine Schleife, um mehrere Textzeilen zu erstellen, was zu mehreren Seiten führt. Das resultierende PDF sieht wie folgt aus:

Hier hast du es!

Abschluss

In diesem Tutorial haben wir viel über die PDF-Generierung in Go mithilfe des Pakets „fpdf“ gelernt. Dieses Paket enthält viele Tools und Funktionen zum Generieren von PDFs. Sehen Sie sich die Dokumente an, um mehr zu erfahren.