web-dev-qa-db-fra.com

Créer un pdf à partir de html en golang

Comment créer des fichiers PDF à partir d'une entrée HTML dans Google Go? Si ce n’est pas encore possible, existe-t-il des initiatives visant à résoudre ce problème?

Je cherche une solution comme TCPDF en php.

20
mimrock

que dire de gopdf ( https://github.com/signintech/gopdf ) ou de gofpdf ( http://godoc.org/code.google.com/p/gofpdf ). 

Il semble que vous cherchiez.

15
Juan de Parras

Je ne pense pas comprendre vos exigences. Étant donné que HTML est un langage de balisage, il doit être rendu par le contexte (CSS et une taille d’écran). Les implémentations existantes que j'ai vues ouvrent généralement la page dans un navigateur sans interface graphique et créent ainsi un PDF.

Personnellement, je voudrais juste utiliser un paquet existant et Shell à partir de Go. Celui-ci a l'air bien; c'est même recommandé dans cette réponse .

Si vous êtes vraiment déterminé à tout mettre en œuvre dans Go, consultez cet emballage WebKit . Je ne suis pas sûr de ce que vous utiliseriez pour générer des PDF, mais au moins c'est un début.

4
beatgammit

Il y a aussi ce paquetage wkhtmltopdf-go , qui utilise la bibliothèque libwkhtmltox. Je ne sais pas si c'est stable.

3
damonkelley

Installation

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

go version go1.9.2 linux/AMD64

code

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

Le code ci-dessus fonctionne pour la conversion de html en pdf en golang avec une image d'arrière-plan appropriée et des balises de style css incorporées 

Check repo

Voir la demande de tirage Documentation améliorée

2
muthukumar

Une autre option est Athena . Il possède un microservice écrit en Go ou peut être utilisé en tant que CLI.

0
Pier