Wkhtmltopdf使用

Wkhtmltopdf使用

1.windows本地使用

复制代码
官网地址 https://wkhtmltopdf.org/,直接去里面下载自己想要的版本,这里以windows版本为例

2.golang+windows环境使用

复制代码
1.安装扩展
javascript 复制代码
go get -u github.com/SebastiaanKlippert/go-wkhtmltopdf
复制代码
2.写一段测试代码
javascript 复制代码
// 写一个测试代码测试一下
package generateFile
import (
	"github.com/SebastiaanKlippert/go-wkhtmltopdf"
	"strings"
)
func GeneratePDF(title, content string) (res []byte, err error) {
	content = `<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <style>
        body { font-family: "Microsoft YaHei", SimSun, sans-serif; }
    </style>
</head>
<body>
<h1 style="text-align: center;">` + title + `</h1>
    ` + content + `
</body>
</html>`
	// 创建 PDF 生成器
	var pdf *wkhtmltopdf.PDFGenerator
	pdf, err = wkhtmltopdf.NewPDFGenerator()
	if err != nil {
		return
	}
	// 从 HTML 字符串创建页面
	page := wkhtmltopdf.NewPageReader(strings.NewReader(content))
	// 设置页面选项
	page.DisableSmartShrinking.Set(true)
	page.Zoom.Set(1.25)
	// 将页面添加到生成器
	pdf.AddPage(page)
	// 设置全局选项
	pdf.MarginTop.Set(15)
	pdf.MarginBottom.Set(15)
	pdf.MarginLeft.Set(15)
	pdf.MarginRight.Set(15)
	pdf.Dpi.Set(300)
	pdf.Orientation.Set(wkhtmltopdf.OrientationPortrait)
	pdf.NoPdfCompression.Set(true) // 不压缩PDF以获得更好质量
	pdf.PageSize.Set(wkhtmltopdf.PageSizeA4)
	// 生成 PDF
	err = pdf.Create()
	if err != nil {
		return
	}
	res = pdf.Bytes()
	return
}
复制代码
 3.apifox调用查看效果

3.golang+docker容器中使用

1.编写 dockerfile

javascript 复制代码
FROM golang:1.24.2 as builder

ENV GO111MODULE=on \
    GOPROXY=https://goproxy.cn,direct \
    CGO_ENABLED=0 \
    GOOS=linux \
    GOARCH=amd64

WORKDIR /app

COPY . /app

RUN go build -o main

FROM alpine:3.13

RUN apk add tzdata
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
RUN apk del tzdata


RUN apk add --update --no-cache \
    libgcc libstdc++ libx11 glib libxrender libxext libintl \
    ttf-dejavu ttf-droid ttf-freefont ttf-liberation ttf-ubuntu-font-family

COPY --from=madnight/alpine-wkhtmltopdf-builder:0.12.5-alpine3.10-3660174986 \
    /bin/wkhtmltopdf /bin/wkhtmltopdf

WORKDIR /app

COPY --from=builder /app .

//RUN cp /app/assets/fonts/* /usr/share/fonts/TTF

EXPOSE 80/tcp

CMD ["/app/main"]
复制代码
2.直接代码里面调用就行了效果一样
相关推荐
熊猫_豆豆3 小时前
一个模拟四轴飞行器在随机气流扰动下悬停飞行的交互式3D仿真网页,包含飞行器建模与PID控制算法
javascript·3d·html·四轴无人机模拟飞行
小贺儿开发3 小时前
一句话生成网页 + 自动化办公(OpenCode + DeepSeek-V4)
css·自动化·html·工具·代码·网页·deepseek
希望永不加班6 小时前
var局部变量类型推断的利弊
java·服务器·前端·javascript·html
OrangeForce8 小时前
Monknow 书签导出工具:从本地存储提取数据并转为标准 HTML 书签
javascript·chrome·python·edge·html·firefox
Rauser Mack10 小时前
编程零基础,半小时用AI做了两个经典小游戏(附完整Prompt和HTML代码)
人工智能·html·prompt
w20180010 小时前
新高考答题卡模板全套PDF可打印(语文数学英语等)
pdf·高考
奋斗的老史10 小时前
LibreOffice封装文档转 PDF 工具类
java·pdf
优化控制仿真模型10 小时前
【26年最新】新高考英语大纲词汇表3500个电子版PDF(含正序版、乱序版和默写版)
经验分享·pdf
李燚10 小时前
ReAct 循环的 50 行 Go 实现,逐行拆解
javascript·人工智能·react.js·golang·aigc·agent
Eiceblue11 小时前
使用 C# 高效替换 PDF 中的文本:全页、区域与正则匹配
visualstudio·pdf·c#