2013-02-17 111 views
17

如何從Google Go中的HTML輸入創建PDF文件?如果還不可能,是否有任何旨在解決這個問題的嘗試?從golang中的html創建pdf

我正在尋找像TCPDF在PHP解決方案。

+0

https://github.com/SebastiaanKlippert/go-wkhtmltopdf看到這個鏈接 – muthukumar 2018-02-01 17:35:20

回答

12

怎麼樣gopdfhttps://github.com/signintech/gopdf)或gofpdfhttp://godoc.org/code.google.com/p/gofpdf)。

看起來你正在尋找。

+1

這些庫都沒有解決這個問題。用戶正在尋找HTML到PDF。這些只是PDF生成器。雖然它們可能是好的,但它們都不會將HTML文檔轉換爲PDF。我需要在一個單獨的線程中提出同樣的問題。 – taystack 2017-10-02 17:23:18

+0

上述兩個依賴不會爲'轉換爲.pdf'工作 – muthukumar 2018-02-01 17:38:09

3

我不認爲我理解你的要求。由於HTML是一種標記語言,因此需要上下文來呈現(CSS和屏幕大小)。我見過的現有實現通常在無頭瀏覽器中打開頁面,並以這種方式創建PDF。

就個人而言,我只會使用Go中的現有軟件包和shell。 This one看起來不錯;它甚至建議在this answer

如果你真的決心在Go中實現它,請查看this WebKit wrapper。我不確定你會用什麼來生成PDF,但至少這是一個開始。

+0

我沒有太多的特殊要求。我需要創建PDF文件,但最好不要去代碼,而是從靈活性和簡單學習之間的良好折衷的來源。在PHP中,有多個用於將HTML文檔轉換爲pdf的庫,因爲HTML易於學習,而且非常靈活。我很好奇,如果有人已經寫了這樣的圖書館。謝謝您的回答。 – mimrock 2013-02-21 09:09:26

3

還有這個包wkhtmltopdf-go,它使用libwkhtmltox庫。我不確定它是多麼穩定。

+0

這是非常可怕的殭屍進程佔用我的CPU。 – 2016-06-12 00:49:18

0

另一種選擇是Athena。它有一個用Go編寫的微服務,或者它可以用作CLI。

1

安裝

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") 
     } 

上面的代碼適用於在適當的背景圖片golang轉換HTML到PDF和嵌入式CSS樣式的標籤

Check repo

See Pull request Documentation Improved