GoLand IDE创建go项目

这里项目名称为 toPDF

package main

import (

"fmt"

"github.com/adrg/go-wkhtmltopdf"

"log"

)

func main(){

pdf.Init()

defer pdf.Destroy()

// Create object from url

object1, err := pdf.NewObject("https://www.baidu.com/")

if err != nil {

log.Fatal(err)

}

object1.SetOption("footer.right", "[page]")

// Create converter

converter := pdf.NewConverter()

defer converter.Destroy()

// Add created objects to the converter

converter.AddObject(object1)

// Add converter options

converter.SetOption("documentTitle", "Sample document")

converter.SetOption("margin.left", "10mm")

converter.SetOption("margin.right", "10mm")

converter.SetOption("margin.top", "10mm")

converter.SetOption("margin.bottom", "10mm")

// Convert the objects and get the output PDF document

output, err := converter.Convert()

if err != nil {

log.Fatal(err)

}

fmt.Println(string(output))

}

下载下来之后,运行go run main.go

报:找不到gcc编译器

下载安装MinGW

下载安装mingw-w64-install.exe

添加到path环境变量:C:\javaware\mingw\mingw64\bin

下载wkhtmltopdf

go-wkhtmltopdf项目又依赖于wkhtmltopdf,

terminal中输入: go get github.com/wkhtmltopdf/wkhtmltopdf进行下载

再次执行:go run main.go

结果报错:fatal error: wkhtmltox/pdf.h: No such file or directory

报错原因,看了一下,应该是如下的include引起的:

package pdf

/*

#cgo LDFLAGS: -lwkhtmltox

#include

#include

#include

*/

import "C"

import (

"errors"

"unsafe"

)

type Converter struct {

converter *C.wkhtmltopdf_converter

settings *C.wkhtmltopdf_global_settings

objects []*Object

}

...

wkhtmltox

又牵扯到了wkhtmltox,继续下载github.com/tcort/wkhtmltox

尝试go get github.com/tcort/wkhtmltox

结果报:go: warning: “github.com/tcort/wkhtmltox/…” matched no packages

手动下载binary:https://wkhtmltopdf.org/downloads.html

这里我下载了wkhtmltox-0.12.5-1.mxe-cross-win64.7z,里面包含:

./bin

libwkhtmltox.a

wkhtmltox.dll

wkhtmltoimage.exe

wkhtmltopdf.exe

./include/wkhtmltox

dllbegin.inc

dllend.inc

image.h

pdf.h

然后

把include里面的wkhtmltox目录复制到MinGW64的安装目录:

C:\javaware\mingw\mingw64\x86_64-w64-mingw32\include

把bin里面的 libwkhtmltox.a, wkhtmltox.dll拷贝到:

C:\javaware\mingw\mingw64\x86_64-w64-mingw32\lib

把bin里面的wkhtmltoimage.exe,wkhtmltopdf.exe拷贝到:

C:\javaware\mingw\mingw64\x86_64-w64-mingw32\bin

再次执行:go run main.go

这次终于运行成功了:

/CreationDate (D:20181025170310+08'00')

>>

endobj

3 0 obj

<<

/Type /ExtGState

/SA true

/SM 0.02

/ca 1.0

/CA 1.0

...

本文来源于网络:查看 >https://blog.csdn.net/hetoby/article/details/83382685

golang html转成pdf,使用_go-wkhtmltopdf_将html转pdf相关推荐

  1. 中批注转成pdf看不到_超实用的PDF在线转换器,你绝对用的到~

    PDF 是我们工作中常用的文档形式,有时候需要对它进行转换或者编辑等工作. 给大家分享一款界面简洁,操作简单的一站式 PDF 工具:LightPDF.LightPDF 是一款线上 PDF 转换器与编辑 ...

  2. 转https_PDF怎么转成JPG最简单?分享免费的PDF转图片方法

    PDF怎么转成JPG最简单?能够独立完成PDF文件转换是我们日常工作中需要掌握的一项技能,PDF转换方面就有PDF转Word.PDF转PPT.PDF转图片等,也包括Word转PDF.PPT转PDF.图 ...

  3. Golang PDF转图片 拼接长图 压缩PDF及图片 输出JPEG

    PDF转PNG主要是用到Xpdf的库 根据操作系统选择命令行工具下载- Download the Xpdf command line tools: 在bin64目录下可以找到PDFTOPNG可执行文件 ...

  4. 怎样把多个pdf合并为一份?多个pdf怎么合并成一个pdf?

    怎么把单个的pdf文件合并在一起?怎么把几个单独的pdf文件合并为一个?有时候我们需要把多个pdf合并成一个pdf,但是还有些小伙伴不知道pdf合并成一个pdf软件哪个好?有时候我们需要把多个pdf合 ...

  5. PDF合并:如何将两个PDF文件合并成一个PDF文件

    PDF文件是我们在工作中经常能够用到的文件,尤其是在办公中会遇到很多PDF文件在传输的过程中为了传输更快被拆分成了几个PDF文件,但是要找一个完整的PDF文件就需要把两个被拆分的PDF文件合并成一个P ...

  6. HTML转换成PDF 指定网页转换PDF(实际上是截取网页) pdf.js , dompdf , html2ps , wkhtmltopdf

    开发背景 在实际开发过程中,有一些特殊需要:需要把相关网页转换成PDF格式,作为资料留存 下面讲一下我所遇到的相关需求:证书的发放,在前期的需求调研的时候甲方提出一个需求,电子证书需要实时生成并且通过 ...

  7. PDF迅捷转换器html网址,如何把PDF转换成HTML?迅捷PDF转换器

    原标题:如何把PDF转换成HTML?迅捷PDF转换器 很多人都知道,PDF格式的文件是可以直接用网页来打开的,那么你是否知道,其实PDF格式的文件还可以直接给转换成HTML这样的网页格式呢?那么如何把 ...

  8. PDF怎么转换成WORD?3大方法助您PDF转Word!

    还不知道PDF怎么转换成WORD吗,本文将提供完整的PDF转Word方案,包括离线.在线或者SDK API等各种方式,总有一款满足您的需求. 什么是PDF转Word? PDF是出版和图形领域的软件厂商 ...

  9. 图片怎么转换成pdf格式?如何把图片转pdf?

    图片怎么转换成pdf格式?如何把图片转pdf?在pdf的制作过程中,经常需要插入很多图片,或者把图片制作成单独的pdf文件.以往我们会一张一张的插入制作.现在,对于这些操作,您只要通过适当的技巧,即可 ...

  10. 压缩pdf大小的方法?怎样压缩pdf大小?pdf文档怎么压缩?pdf文件太大怎么压缩?pdf文件太大怎么压缩成小内存?如何降低pdf文件大小?怎么把pdf文件压缩到指定大小?压缩pdf的简单方法

    pdf在线压缩大小?在工作中需要处理大量PDF文件,我们通常要对PDF文件进行压缩处理.那么问题来了,PDF文件该怎么压缩呢?可能很多人都不知道具体的操作方法,今天要分享给大家的正是PDF压缩的方法, ...

最新文章

  1. CString的用法
  2. “大型票务系统”和“实物电商系统”的数据库选型
  3. Lesson 8.5 SOFTMAX回归
  4. GreenPlum查看表和数据库大小
  5. python对浏览器的常用操作有哪些_Python Selenium中对象常用操作方法
  6. mod_wsgi的工作模式和配置
  7. 结构体中.和-的用法
  8. corntab定时执行任务
  9. xcode 获取模拟器app沙盒路径_使用Xcode12进行App内购测试
  10. UltraCompare 22 for Mac(文件比较工具)
  11. Leetcode之删除链表的倒数第N个节点
  12. 【数学建模】基于matlab银行多机排队论模型【含Matlab源码 1096期】
  13. linux系统怎么安装小小输入法,CentOS 7.0下安装小小输入法
  14. 全国哀悼日,我们也把博客灰一下吧
  15. 六爪机器人_六爪机器人
  16. Millet谷仓:新型电商势在必行
  17. pyinstaller 打包 python3项目,遇到failed to execute script XXX 错误的解决方法
  18. 揭秘奥运会四大难解之谜
  19. 老夫我写代码的起手式是怎么样的?
  20. OpenStack T版 搭建【全网最全】

热门文章

  1. java j2se下载_J2SE基础之下载eclipse并创建项目
  2. SQL Server 2008 R2每天自动备份数据库
  3. Windows 10不能安装mini版迅雷的解决方法
  4. st7789 旋转_st7789v spi通信
  5. ROS动态IP端口映射
  6. 超薄内置DSP数字功放芯片
  7. CMOS模拟集成电路设计学习笔记
  8. 全体是合同,多学学吧。当前少吃亏。
  9. 论坛源码推荐(12月24日):OS X原生开源游戏模拟器OpenEmu iOS 7条形码扫描器
  10. 如鹏网.Net高级技术4.String特点及常用方法