Google GoでHTML入力からPDFファイルを作成する方法?まだできない場合は、この問題を解決することを目的とした参考資料はありますか?
PHPでTCPDFのようなソリューションを探しています。
gopdf( https://github.com/signintech/gopdf )またはgofpdf( http://godoc.org/code.google.com/p/gofpdf )。
お探しのようです。
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に変換するために機能します
Libwkhtmltoxライブラリを使用するこのパッケージ wkhtmltopdf-go もあります。それがどれほど安定しているかはわかりません。
私はあなたの要件を理解していないと思います。 HTMLはマークアップ言語であるため、レンダリングするにはコンテキストが必要です(CSSと画面サイズ)。私が見た既存の実装では、通常、ヘッドレスブラウザーでページを開いてPDFを作成します。
個人的には、既存のパッケージとGoのShellを使用するだけです。 これ よさそうです。 この答え でも推奨されています。
すべてをGoで実装することに本当に決心している場合は、 このWebKitラッパー を確認してください。 PDFを生成するために何を使用するかはわかりませんが、少なくともそれは始まりです。
より簡単な方法でPDFを作成するための代替libを作成しています( https://github.com/johnfercher/maroto )。 gofpdfを使用し、グリッドシステムとBootstrapのようないくつかのコンポーネントがあります。
別のオプションは Athena です。 Goで記述されたマイクロサービスがあるか、CLIとして使用できます。