実際の開発プロジェクトでは、印刷や配布のために一部のページを PDF ファイルとして保存するなど、HTML を PDF に変換する必要がある場合があります。 Golang 言語を使用してこの要件を実現することも非常に簡単ですので、Golang を使用して HTML から PDF への変換機能を実現する方法を順を追って説明しましょう。
まず、いくつかの概念を明確にする必要があります。
HTML (ハイパー テキスト マークアップ言語) はハイパーテキスト マークアップ言語であり、ブラウザーからアクセスできる構造化ドキュメントと Web ページを作成するために使用されます。 。
PDF (Portable Document Format) はポータブル ドキュメント形式であり、複数のオペレーティング システムに適しており、異なるデバイスで同じ外観を表示できます。
次に、いくつかの重要なライブラリを使用する必要があります。
gofpdf ライブラリは、Golang で PDF ファイルを生成するために使用されます。次のコマンドでインストールできます:
go get -u github.com/jung-kurt/gofpdf
これら 2 つのライブラリをインストールした後、HTML 変換 PDF の実装を開始できます。関数を使用する場合の具体的な手順は次のとおりです。
まずローカルで変換する HTML ファイルのコンテンツを読み取る必要があります。使用することができます。 os パッケージの Open メソッドを使用してファイルを開き、ioutil パッケージの ReadFile メソッドを使用してファイルのコンテンツを読み取ります。具体的なコードは次のとおりです:
content, err := ioutil.ReadFile("path/to/html") if err != nil { log.Fatalf("Could not read html file: %v", err) }
exec パッケージを使用して wkhtmltopdf コマンド ライン ツールを呼び出し、HTML コンテンツを PDF ファイルに変換できます。具体的なコードは次のとおりです:
cmd := exec.Command("wkhtmltopdf", "-", "path/to/pdf") stdin, err := cmd.StdinPipe() if err != nil { log.Fatalf("Could not get stdin pipe: %v", err) } go func() { defer stdin.Close() _, _ = io.WriteString(stdin, string(content)) }() out, err := cmd.CombinedOutput() if err != nil { log.Fatalf("Could not convert html to pdf: %v: %s", err, out) }
その中で、cmd.StdinPipe() はコマンドの標準入力に書き込むことができるパイプを返します。コマンドの標準入力として HTML コンテンツを使用できます。 cmd.CombinedOutput() はコマンドが完了するまで待機し、コマンド出力を返します。エラーがある場合は、エラー メッセージを返します。
最後に、HTML ファイルが PDF ファイルに正常に変換されたことをユーザーに通知する必要があります。コードは次のとおりです:
fmt.Println("Convert completed.")
完全なコードは次のとおりです:
package main import ( "fmt" "io" "io/ioutil" "log" "os/exec" ) func main() { content, err := ioutil.ReadFile("path/to/html") if err != nil { log.Fatalf("Could not read html file: %v", err) } cmd := exec.Command("wkhtmltopdf", "-", "path/to/pdf") stdin, err := cmd.StdinPipe() if err != nil { log.Fatalf("Could not get stdin pipe: %v", err) } go func() { defer stdin.Close() _, _ = io.WriteString(stdin, string(content)) }() out, err := cmd.CombinedOutput() if err != nil { log.Fatalf("Could not convert html to pdf: %v: %s", err, out) } fmt.Println("Convert completed.") }
上記のコードでは、gofpdf ライブラリを使用して、Golang コードを通じて PDF ファイルを生成します。 gofpdf ライブラリの関連メソッドを使用して、テキスト、画像、表などを追加し、PDF ファイルを生成できます。コードは次のとおりです:
package main import ( "fmt" "github.com/jung-kurt/gofpdf" "log" ) func main() { pdf := gofpdf.New("P", "mm", "A4", "") pdf.AddPage() pdf.SetFont("Arial", "B", 16) pdf.Cell(40, 10, "Hello, World!") pdf.Image("path/to/image", 10, 20, 30, 0, false, "", 0, "") pdf.OutputFileAndClose("path/to/pdf") fmt.Println("PDF created.") }
上記のコードでは、PDF を作成しますファイルを作成し、Hello, World! と画像を追加します。最後に、PDF ファイルをローカルに保存し、PDF ファイルが正常に作成されたことをユーザーに通知します。
概要: HTML から PDF への変換は非常に一般的な要件であり、コマンド ライン ツールや Golang 言語の関連ライブラリを通じても実現できます。この記事を通じて、読者がこのプロセスを包括的かつ深く理解し、実際の開発で柔軟に活用できるようになることを願っています。
以上がHTMLからPDFへのgolangの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。