2013-02-17 6 views
17

Come creare file PDF da un input HTML in Google Go? Se non è ancora possibile, ci sono delle iniziazioni che mirano a risolvere questo problema?Crea pdf da html in golang

Sto cercando una soluzione come TCPDF in php.

+0

https://github.com/SebastiaanKlippert/go-wkhtmltopdf vedere questo link – muthukumar

risposta

12

che dire gopdf (https://github.com/signintech/gopdf) o gofpdf (http://godoc.org/code.google.com/p/gofpdf).

Sembra che tu stia cercando.

+1

Nessuna di queste librerie risponde alla domanda. L'utente sta cercando HTML in PDF. Questi sono solo generatori PDF. Anche se possono essere buoni, nessuno dei due converte un documento HTML in un PDF. Devo fare questa stessa domanda in un thread separato. – taystack

+0

Le suddette dipendenze non funzioneranno per ' in .pdf' – muthukumar

3

Non credo di aver compreso le vostre esigenze. Poiché l'HTML è un linguaggio di markup, ha bisogno di un contesto per il rendering (CSS e dimensioni dello schermo). Le implementazioni esistenti che ho visto generalmente aprono la pagina in un browser headless e creano un PDF in questo modo.

Personalmente, vorrei solo utilizzare un pacchetto esistente e shell out da Go. This one sembra buono; è persino raccomandato in this answer.

Se sei davvero determinato a implementarlo tutto in Go, controlla this WebKit wrapper. Non sono sicuro di cosa useresti per generare PDF, ma almeno è un inizio.

+0

Non ho troppi requisiti speciali. Ho bisogno di creare file pdf, ma preferibilmente non da codice go, ma da una fonte che è un buon compromesso tra flessibilità e facile apprendimento. In PHP, ci sono più librerie per convertire i documenti HTML in pdf, perché HTML è facile da imparare e abbastanza flessibile. Ero curioso di sapere se qualcuno ha già scritto una biblioteca del genere. La ringrazio per la risposta. – mimrock

3

C'è anche questo pacchetto wkhtmltopdf-go, che utilizza la libreria libwkhtmltox. Non sono sicuro di quanto sia stabile.

+0

E 'abbastanza orribile mantenere la mia CPU con i processi di zombie. –

0

Un'altra opzione è Athena. Ha un microservice scritto in Go o può essere usato come CLI.

1

installazione

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

go version go1.9.2 linux/amd64

codice

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

Il codice precedente funziona per la conversione HTML to PDF in golang immagine di sfondo corretta ed embedded con stile CSS Tag

Check repo

See Pull request Documentation Improved