2013-02-17 2 views
17

Как создать PDF-файлы с HTML-входа в Google Go? Если это еще не возможно, есть ли какие-либо инициативы, направленные на решение этой проблемы?Создать pdf из html в golang

Я ищу решение, такое как TCPDF в php.

+0

https://github.com/SebastiaanKlippert/go-wkhtmltopdf видеть эту ссылку – muthukumar

ответ

12

насчет gopdf (https://github.com/signintech/gopdf) или gofpdf (http://godoc.org/code.google.com/p/gofpdf).

похоже, что вы ищите.

+1

Ни одна из этих библиотек не задает вопрос. Пользователь ищет HTML для PDF. Это просто генераторы PDF. Хотя они могут быть хорошими, ни один из них не конвертирует HTML-документ в PDF-файл. Мне нужно задать этот же вопрос в отдельном потоке. – taystack

+0

Вышеуказанная обе зависимости не будут работать для ' .pdf' – muthukumar

3

Я не думаю, что я понимаю ваши требования. Поскольку HTML является языком разметки, ему нужен контекст для рендеринга (CSS и размер экрана). Существующие реализации, которые я видел, обычно открывают страницу в браузере без браузера и создают PDF-файл таким образом.

Лично я бы просто использовал существующий пакет и оболочку из Go. This one выглядит хорошо; это даже рекомендуется в this answer.

Если вы действительно настроены реализовать все это в Go, ознакомьтесь с this WebKit wrapper. Я не уверен, что вы будете использовать для создания PDF-файлов, но, по крайней мере, это начало.

+0

У меня слишком много особых требований. Мне нужно создавать pdf-файлы, но желательно не из кода go, а из источника, который является хорошим компромиссом между гибкостью и простотой обучения. В php существует несколько библиотек для преобразования HTML-документов в pdf, потому что HTML легко учится и довольно гибкий. Мне было любопытно, кто-то уже написал такую ​​библиотеку. Спасибо за ваш ответ. – mimrock

3

Существует также этот пакет wkhtmltopdf-go, который использует библиотеку libwkhtmltox. Я не уверен, насколько он стабилен.

+0

Это довольно ужасно, когда я держу свой процессор с зомби-процессами. –

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

Вышеуказанное код работает для преобразования HTML в PDF в golang с надлежащим фоновым изображением и встроенных стилей CSS Теги

Check repo

See Pull request Documentation Improved

Смежные вопросы