2013-02-17 9 views
17

Jak tworzyć pliki PDF z danych wejściowych HTML w Google Go? Jeśli nie jest to jeszcze możliwe, czy są jakieś inicjatywy mające na celu rozwiązanie tego problemu?Utwórz pdf z html w golang

Szukam rozwiązania, takiego jak TCPDF w php.

+0

https://github.com/SebastiaanKlippert/go-wkhtmltopdf zobaczyć ten link – muthukumar

Odpowiedz

3

Nie sądzę, że rozumiem Twoje wymagania. Ponieważ HTML jest językiem znaczników, wymaga kontekstu do renderowania (CSS i rozmiar ekranu). Istniejące implementacje, które widziałem, zazwyczaj otwierają stronę w bezgłowej przeglądarce i tworzą w ten sposób plik PDF.

Osobiście po prostu użyłbym istniejącego pakietu i powłoki z Go. This one wygląda dobrze; jest nawet zalecany w this answer.

Jeśli jesteś naprawdę zdecydowany wdrożyć to wszystko w Go, sprawdź this WebKit wrapper. Nie jestem pewien, czego używałbyś do generowania plików PDF, ale przynajmniej jest to początek.

+0

Nie mam zbyt wielu specjalnych wymagań. Muszę tworzyć pliki pdf, ale najlepiej nie z kodu go, ale ze źródła, które jest dobrym kompromisem między elastycznością a łatwym uczeniem się. W php istnieje wiele bibliotek do konwersji dokumentów HTML do formatu PDF, ponieważ HTML jest łatwy do nauczenia i dość elastyczny. Byłem ciekawy, czy ktoś napisał już taką bibliotekę. Dziękuję za Twoją odpowiedź. – mimrock

3

Istnieje również ten pakiet wkhtmltopdf-go, który korzysta z biblioteki libwkhtmltox. Nie jestem pewien, jak stabilna jest.

+0

To jest dość okropne, utrzymujące procesor z procesami zombie. –

0

Inną opcją jest Athena. Ma mikroserwis napisany w Go lub może być używany jako CLI.

1

Instalacja

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

go version go1.9.2 linux/amd64

kod

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

Powyższy kod działa dla Konwersja HTML do PDF w golang z właściwego obrazu tła i wbudowane Css Styl Tagi

Check repo

See Pull request Documentation Improved