如何从 Google Go 中的 HTML 输入创建 PDF 文件?如果还不可能,是否有任何旨在解决此问题的举措?
我在 php 中寻找像 TCPDF 这样的解决方案。
原文由 mimrock 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何从 Google Go 中的 HTML 输入创建 PDF 文件?如果还不可能,是否有任何旨在解决此问题的举措?
我在 php 中寻找像 TCPDF 这样的解决方案。
原文由 mimrock 发布,翻译遵循 CC BY-SA 4.0 许可协议
安装
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")
}
上面的代码适用于在具有适当背景图像和嵌入式 Css 样式标签的 golang 中将 html 转换为 pdf
建议(来自 https://wkhtmltopdf.org/status.html ):
不要将 wkhtmltopdf 与任何不受信任的 HTML 一起使用——一定要清理任何用户提供的 HTML/JS,否则它可能会导致运行它的服务器被完全接管!请考虑使用 AppArmor 或 SELinux 等强制访问控制系统,请参阅推荐的 AppArmor 策略。
如果您使用它来生成报告(即使用您控制的 HTML),也可以考虑使用 WeasyPrint 或商业工具 Prince——请注意,我不隶属于这两个项目,请尽您的努力。
如果您使用它来转换使用动态 JS 的网站,请考虑使用 puppeteer 或它拥有的众多包装器之一。
原文由 muthukumar selvaraj 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答2k 阅读✓ 已解决
1 回答3.4k 阅读
2 回答878 阅读✓ 已解决
2 回答2.2k 阅读
gopdf 呢( https://github.com/signintech/gopdf )。
看起来你正在寻找。