Wkhtmltopdf使用

06-02 1902阅读

Wkhtmltopdf使用

  • 1.windows本地使用
  • 2.golang+windows环境使用
  • 3.golang+docker容器中使用

    1.windows本地使用

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

    Wkhtmltopdf使用

    Wkhtmltopdf使用

    2.golang+windows环境使用

    1.安装扩展
    
    go get -u github.com/SebastiaanKlippert/go-wkhtmltopdf
    
    2.写一段测试代码
    
    // 写一个测试代码测试一下
    package generateFile
    import (
    	"github.com/SebastiaanKlippert/go-wkhtmltopdf"
    	"strings"
    )
    func GeneratePDF(title, content string) (res []byte, err error) {
    	content = `
    
        
        
            body { font-family: "Microsoft YaHei", SimSun, sans-serif; }
        
    
    
    

    ` + title + `

    ` + content + ` ` // 创建 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调用查看效果
    

    Wkhtmltopdf使用

    3.golang+docker容器中使用

    1.编写 dockerfile

    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.直接代码里面调用就行了效果一样
    
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码