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.
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.
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.
Il y a aussi ce paquetage wkhtmltopdf-go , qui utilise la bibliothèque libwkhtmltox. Je ne sais pas si c'est stable.
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
Une autre option est Athena . Il possède un microservice écrit en Go ou peut être utilisé en tant que CLI.