開発者に関して言えば、入力データに基づいて PDF ドキュメントをプログラムで生成する必要がある場合に遭遇するかもしれません。たとえば、データベースからの購入情報に基づいて PDF 請求書を生成する Web アプリを作成できます。
幸いなことに、Go エコシステムは大規模であり、最初から構築しなくても PDF 生成を簡単に実行できるツールや機能があります。
このチュートリアルでは、入力データに基づいて PDF ドキュメントを生成する強力な機能を提供する「fpdf」パッケージの使用方法を学びます。
環境設定
続行する前に、次のツールがインストールされていることを確認してください。
- 最新の Go コンパイラーがシステムにインストールされていることを確認してください
- コードエディタ
Gofpdf をインストールする
プロジェクトをセットアップしたら、「go get」コマンドを使用して「fpdf」パッケージをインストールします。
$ 行く githubを入手 。 と / 行く - pdf / fpdf
インストールしたら、次に進み、PDF 生成用のパッケージによって提供される機能をカバーします。
基本的な PDF ドキュメントを作成する
このパッケージを使用して、基本的な入力テキストを指定して基本的な PDF を作成する方法を示す次のコード例を考えてみましょう。
パッケージ 主要
輸入 (
「github.com/go-pdf/fpdf」
)
機能 主要 () {
pdf := fpdf 。 新しい ( 「ぷ」 、 'んん' 、 「A4」 、 「」 )
pdf 。 ページの追加 ()
pdf 。 フォントの設定 ( 「エリアル」 、 「B」 、 16 )
pdf 。 細胞 ( 40 、 10 、 「お尻が痛いです…」 )
pdf 。 出力ファイルと閉じる ( 「ローレム.pdf」 )
}
指定された例では、必要なパッケージをインポートすることから始めます。この場合、必要なのは「fpdf」パッケージのみです。
次に、fpdf.New() 関数を使用して新しい PDF ドキュメントを作成し、ページの向き、測定単位、サイズなどの PDF プロパティを指定します。
次に、AddPage() 関数を使用して新しいページを追加します。
次に、SetFont() 関数を使用してドキュメントのフォントとサイズを設定します。また、テキストを表示するための Cell() 関数を使用して、セルとも呼ばれる長方形の領域を追加します。
最後に、PDF を生成し、OutputFileAndClose() メソッドで保存します。
画像を追加する
次のコード例に示すように、画像のサポートを追加することもできます。
パッケージ 主要輸入 (
「github.com/go-pdf/fpdf」
)
機能 主要 () {
pdf := fpdf 。 新しい ( 「ぷ」 、 'んん' 、 「A4」 、 「」 )
pdf 。 ページの追加 ()
pdf 。 画像オプション ( 「linux-tux.png」 、 10 、 10 、 40 、 0 、 間違い 、 fpdf 。 画像オプション { 画像タイプ : 「PNG」 、 読み取りDpi : 真実 }、 0 、 「」 )
エラー := pdf 。 出力ファイルと閉じる ( 「例.pdf」 )
もし エラー != なし {
パニック ( エラー )
}
}
これには、指定された画像がドキュメントに含まれる必要があります。
ヘッダーとフッターを含む複数ページのドキュメント
このパッケージは、次の例に示すように、ヘッダーやフッターなどの機能を含む複数のページもサポートしています。
パッケージ 主要輸入 (
「strconv」 // strconv パッケージをインポートします
「github.com/go-pdf/fpdf」
)
機能 ヘッダ ( pdf * fpdf 。 Fpdf ) {
pdf 。 フォントの設定 ( 「エリアル」 、 「B」 、 12 )
pdf 。 細胞 ( 0 、 10 、 「ページヘッダー」 )
pdf 。 Ln ( 二十 )
}
機能 フッター ( pdf * fpdf 。 Fpdf ) {
pdf 。 セットY ( - 15 )
pdf 。 フォントの設定 ( 「エリアル」 、 '私' 、 8 )
pdf 。 細胞 ( 0 、 10 、 「ページ」 + strconv 。 溺れた ( pdf 。 ページ番号 ()))
}
機能 主要 () {
pdf := fpdf 。 新しい ( 「ぷ」 、 'んん' 、 「A4」 、 「」 )
pdf 。 SetHeaderFunc ( 機能 () { ヘッダ ( pdf ) })
pdf 。 SetFooterFunc ( 機能 () { フッター ( pdf ) })
pdf 。 ページの追加 ()
pdf 。 フォントの設定 ( 「エリアル」 、 「」 、 12 )
のために 私 := 0 ; 私 < 40 ; 私 ++ {
pdf 。 細胞 ( 0 、 10 、 「印刷行番号」 + strconv 。 溺れた ( 私 ))
pdf 。 Ln ( 12 )
}
pdf 。 出力ファイルと閉じる ( 「マルチページ.pdf」 )
}
この場合、ヘッダー関数とフッター関数を定義して、PDF のこれらのセクションの内容を設定します。
次に、SetHeaderFunc と SetFooterFunc を使用して、ドキュメントのヘッダーとフッターとして関数を指定します。
最後に、ループを使用して複数行のテキスト行を作成し、結果として複数のページが作成されます。結果の PDF は次のようになります。
ほら、ありますよ!
結論
このチュートリアルでは、「fpdf」パッケージを使用した Go での PDF 生成について多くのことを学びました。このパッケージには、PDF を生成するための多くのツールと機能が詰め込まれています。詳細については、ドキュメントを確認してください。