web-dev-qa-db-ja.com

GolangでHTMLからPDFを作成する

Google GoでHTML入力からPDFファイルを作成する方法?まだできない場合は、この問題を解決することを目的とした参考資料はありますか?

PHPでTCPDFのようなソリューションを探しています。

23
mimrock

gopdfhttps://github.com/signintech/gopdf )またはgofpdfhttp://godoc.org/code.google.com/p/gofpdf )。

お探しのようです。

18
Juan de Parras

Installation

go get -u github.com/SebastiaanKlippert/go-wkhtmltopdf

go version go1.9.2 linux/AMD64

コード

   import (
        "fmt"
        "strings"
        wkhtml "github.com/SebastiaanKlippert/go-wkhtmltopdf"
    )  

      func main(){
                 pdfg, err :=  wkhtml.NewPDFGenerator()
               if err != nil{
                  return
              }
              htmlStr := `<html><body><h1 style="color:red;">This is an html
 from pdf to test color<h1><img src="http://api.qrserver.com/v1/create-qr-
code/?data=HelloWorld" alt="img" height="42" width="42"></img></body></html>`

              pdfg.AddPage(wkhtml.NewPageReader(strings.NewReader(htmlStr)))


              // Create PDF document in internal buffer
              err = pdfg.Create()
              if err != nil {
                  log.Fatal(err)
              }

               //Your Pdf Name
               err = pdfg.WriteFile("./Your_pdfname.pdf")
              if err != nil {
                  log.Fatal(err)
              }

              fmt.Println("Done")
        }

上記のコードは、適切な背景画像と埋め込みCssスタイルタグを使用してhtmlをgolangのpdfに変換するために機能します

リポジトリをチェック

プルリクエストのドキュメントを参照

5

Libwkhtmltoxライブラリを使用するこのパッケージ wkhtmltopdf-go もあります。それがどれほど安定しているかはわかりません。

5
damonkelley

私はあなたの要件を理解していないと思います。 HTMLはマークアップ言語であるため、レンダリングするにはコンテキストが必要です(CSSと画面サイズ)。私が見た既存の実装では、通常、ヘッドレスブラウザーでページを開いてPDFを作成します。

個人的には、既存のパッケージとGoのShellを使用するだけです。 これ よさそうです。 この答え でも推奨されています。

すべてをGoで実装することに本当に決心している場合は、 このWebKitラッパー を確認してください。 PDFを生成するために何を使用するかはわかりませんが、少なくともそれは始まりです。

4
beatgammit

より簡単な方法でPDFを作成するための代替libを作成しています( https://github.com/johnfercher/maroto )。 gofpdfを使用し、グリッドシステムとBootstrapのようないくつかのコンポーネントがあります。

1

別のオプションは Athena です。 Goで記述されたマイクロサービスがあるか、CLIとして使用できます。

0
Pier