Free Go API を介して PDF ドキュメントを作成および管理する
ソフトウェア開発者にPDFドキュメントを作成、編集、変換、操作する機能を提供するライブラリを行きます。
gofpdf は、ソフトウェア開発者が外部依存なしで PDF ファイルを生成および変更する機能を提供するオープン ソース Go ライブラリです。このライブラリは、高レベルのテキスト、図、画像を使用した PDF ドキュメントの生成と操作をサポートしています。このライブラリは、UTF-8 TrueType フォントと「右から左へ」の言語を完全にサポートしています。グリフ数が 256 未満の言語では、UTF-8 ルーン文字からコード ページ エンコーディングへの自動変換がサポートされています。
PDFは、世界中で情報を保存および共有するための世界で最も使用されているファイル形式の一つです。 gofpdfライブラリは、PDF文書の生成と編集などのPDF文書処理のためのいくつかの重要な機能をサポートし、画像(JPEG、NG、GIF、TIFF、SVG画像)をPDFに差し込み、既存のPDFファイル、ページのヘッダーとフッター管理、自動ページのブレーク、内部および外部リンクのサポート、行のブレークやテキストの正当化など、多くのページをインサートします。
gofpdf を始めよう
インストールする推奨方法は、GitHub を使用することです。 システムにgofpdfをインストールするには、次のコマンドを実行してください。
GitHub 経由で gofpdf をインストールする
go get https://github.com/jung-kurt/gofpdf
最新のアップデートについては、次のコマンドを実行してください。
go get -u -v github.com/jung-kurt/gofpdf/...
PDF Go Libraryによる作成と処理
gofpdf ライブラリは、PDF ドキュメントの作成と Go アプリケーション内での編集のための機能を提供します。テキスト、描画、および画像を高レベルでサポートする PDF ドキュメントを作成できます。ドキュメントの作成後、いくつかの簡単なコマンドを使用して、テキストや画像を簡単に挿入したり、新しいページ、レイヤー、テンプレート、バーコードなどを挿入したりできます。複数の列を含む PDF ドキュメントを生成することも、画像を使用してランドスケープ モードで生成することもできます。
ゴーAPIでシンプルなPDFファイルを生成
pdf := gofpdf.New("P", "mm", "A4", "")
pdf.AddPage()
pdf.SetFont("Arial", "B", 16)
pdf.Cell(40, 10, "Hello, world")
err := pdf.OutputFileAndClose("hello.pdf")
経由PDFまでの画像 ゴー API
画像は、より適切で包括的な方法でより多くの情報を提示する上で非常に重要な部分です。常にコンテンツの価値を高めます。オープン ソースの gofpdf API を使用すると、プログラマーは自分で選んだ画像をアプリケーション内の PDF ファイルに挿入できます。 JPEG、PNG、GIF、TIFF、および基本的なパスのみの SVG 画像など、非常に一般的な画像形式をサポートします。必要に応じて画像を変更することもできます。
Go API 経由で PDF ページに画像を追加
func ExampleFpdf_Image() {
pdf := gofpdf.New("P", "mm", "A4", "")
pdf.AddPage()
pdf.SetFont("Arial", "", 11)
pdf.Image(example.ImageFile("logo.png"), 10, 10, 30, 0, false, "", 0, "")
pdf.Text(50, 20, "logo.png")
pdf.Image(example.ImageFile("logo.gif"), 10, 40, 30, 0, false, "", 0, "")
pdf.Text(50, 50, "logo.gif")
pdf.Image(example.ImageFile("logo-gray.png"), 10, 70, 30, 0, false, "", 0, "")
pdf.Text(50, 80, "logo-gray.png")
pdf.Image(example.ImageFile("logo-rgb.png"), 10, 100, 30, 0, false, "", 0, "")
pdf.Text(50, 110, "logo-rgb.png")
pdf.Image(example.ImageFile("logo.jpg"), 10, 130, 30, 0, false, "", 0, "")
pdf.Text(50, 140, "logo.jpg")
fileStr := example.Filename("Fpdf_Image")
err := pdf.OutputFileAndClose(fileStr)
example.Summary(err, fileStr)
// Output:
// Successfully generated pdf/Fpdf_Image.pdf
}
レイヤーを PDF ドキュメントに追加
PDF文書のレイヤーの使用は、コンテンツをより良い方法で整理し、表示する機能を提供します。 この機能は、ユーザーが表示または非表示にしたり、PDF文書の図に詳細を追加したりすることができます。 gofpdfライブラリは、PDFファイル内のレイヤーの追加と管理を完全にサポートします。 レイヤーを定義したり、レイヤーの可視性をコントロールしたり、PDFビューアでレイヤーペインを開くこともできます。
Go Apps内のPDFファイルにレイヤーを表示および追加
func ExampleFpdf_AddLayer() {
pdf := gofpdf.New("P", "mm", "A4", "")
pdf.AddPage()
pdf.SetFont("Arial", "", 15)
pdf.Write(8, "This line doesn't belong to any layer.\n")
// Define layers
l1 := pdf.AddLayer("Layer 1", true)
l2 := pdf.AddLayer("Layer 2", true)
// Open layer pane in PDF viewer
pdf.OpenLayerPane()
// First layer
pdf.BeginLayer(l1)
pdf.Write(8, "This line belongs to layer 1.\n")
pdf.EndLayer()
// Second layer
pdf.BeginLayer(l2)
pdf.Write(8, "This line belongs to layer 2.\n")
pdf.EndLayer()
// First layer again
pdf.BeginLayer(l1)
pdf.Write(8, "This line belongs to layer 1 again.\n")
pdf.EndLayer()
fileStr := example.Filename("Fpdf_AddLayer")
err := pdf.OutputFileAndClose(fileStr)
example.Summary(err, fileStr)
// Output:
// Successfully generated pdf/Fpdf_AddLayer.pdf
}
PDF にヘッダー、フッター、改ページを追加する
Go アプリ内のドキュメント。ヘッダーとフッター機能を使用すると、ページ番号、テキスト ラベル、または画像を PDF ファイルに適用して、すべての PDF ドキュメントに個人的なタッチを加えることができます。ライブラリは、PDF ドキュメント内のヘッダーとフッターの作成、編集、および管理を完全にサポートします。行揃え、ワードラップ、改ページなどの機能も使用できます。
リーダーとフッターの加算をPDFにGo
func ExampleFpdf_AddPage() {
pdf := gofpdf.New("P", "mm", "A4", "")
pdf.SetTopMargin(30)
pdf.SetHeaderFuncMode(func() {
pdf.Image(example.ImageFile("logo.png"), 10, 6, 30, 0, false, "", 0, "")
pdf.SetY(5)
pdf.SetFont("Arial", "B", 15)
pdf.Cell(80, 0, "")
pdf.CellFormat(30, 10, "Title", "1", 0, "C", false, 0, "")
pdf.Ln(20)
}, true)
pdf.SetFooterFunc(func() {
pdf.SetY(-15)
pdf.SetFont("Arial", "I", 8)
pdf.CellFormat(0, 10, fmt.Sprintf("Page %d/{nb}", pdf.PageNo()),
"", 0, "C", false, 0, "")
})
pdf.AliasNbPages("")
pdf.AddPage()
pdf.SetFont("Times", "", 12)
for j := 1; j <= 40; j++ {
pdf.CellFormat(0, 10, fmt.Sprintf("Printing line number %d", j),
"", 1, "", false, 0, "")
}
fileStr := example.Filename("Fpdf_AddPage")
err := pdf.OutputFileAndClose(fileStr)
example.Summary(err, fileStr)
// Output:
// Successfully generated pdf/Fpdf_AddPage.pdf
}