
go-wkhtmltopdf配置选项大全打造定制化PDF输出【免费下载链接】go-wkhtmltopdfGolang commandline wrapper for wkhtmltopdf项目地址: https://gitcode.com/gh_mirrors/go/go-wkhtmltopdfgo-wkhtmltopdf是一个强大的Golang命令行包装器用于将HTML内容转换为高质量PDF文档。通过灵活的配置选项您可以轻松定制PDF输出的各个方面从页面大小和边距到页眉页脚和图像质量满足各种业务需求。快速开始安装与基础配置要开始使用go-wkhtmltopdf首先需要克隆项目仓库git clone https://gitcode.com/gh_mirrors/go/go-wkhtmltopdf创建PDF生成器的基础代码非常简单pdfg, err : NewPDFGenerator() if err ! nil { // 处理错误 } defer pdfg.Destroy() // 添加HTML内容 pdfg.AddPage(NewPageReader(strings.NewReader(h1Hello World/h1))) // 生成PDF err pdfg.WriteFile(output.pdf)核心配置选项分类go-wkhtmltopdf的配置选项主要分为五大类覆盖了PDF生成的各个方面全局选项文档级别的设置全局选项影响整个PDF文档的整体特性在options.go中定义了完整的全局配置结构页面尺寸与方向支持A4、Letter等标准尺寸或自定义尺寸可设置横向(Landscape)或纵向(Portrait)模式边距控制可分别设置上、下、左、右页边距支持厘米、毫米等单位颜色模式通过Grayscale选项生成黑白PDF减小文件体积图像设置控制图像DPI默认600和JPEG质量默认94%压缩选项使用NoPdfCompression禁用无损压缩以加快生成速度示例代码// 设置全局选项 pdfg.GlobalOptions.Orientation.Set(OrientationLandscape) pdfg.GlobalOptions.PageSize.Set(PageSizeA4) pdfg.GlobalOptions.MarginTop.Set(20) pdfg.GlobalOptions.Grayscale.Set(true)页面选项控制HTML内容渲染页面选项针对每个HTML页面进行设置定义在options.go的pageOptions结构中主要包括加载控制设置JavaScript延迟执行时间、资源加载错误处理策略链接处理启用/禁用内部或外部链接保持相对链接媒体设置控制是否加载图片、背景设置打印媒体类型认证选项为需要身份验证的页面提供用户名和密码视图设置设置视口大小、缩放比例默认1.0常用配置示例page : NewPageOptions() page.DisableJavascript.Set(true) page.NoImages.Set(false) page.Zoom.Set(1.2) // 120%缩放 page.JavascriptDelay.Set(1000) // 等待1秒JS执行页眉页脚选项打造专业文档样式页眉页脚选项允许您添加自定义页眉页脚内容支持文本和HTML格式相关定义位于options.go的headerAndFooterOptions文本内容设置左、中、右对齐的页眉页脚文本HTML内容通过HeaderHTML和FooterHTML选项添加复杂的HTML页眉页脚样式控制设置字体名称、大小添加分隔线间距调整控制页眉页脚与内容的距离项目中提供了示例页眉页脚文件可直接使用testdata/footer.html示例页脚HTMLtestdata/footer-toc.html带目录的页脚示例testdata/js/footer.js页脚JavaScript脚本配置示例// 使用HTML页眉页脚 pdfg.HeaderAndFooterOptions.HeaderHTML.Set(header.html) pdfg.HeaderAndFooterOptions.FooterHTML.Set(footer.html) // 设置文本页眉 pdfg.HeaderAndFooterOptions.HeaderCenter.Set(文档标题) pdfg.HeaderAndFooterOptions.FooterRight.Set([page]/[toPage]) // 页码 pdfg.HeaderAndFooterOptions.HeaderLine.Set(true) // 添加页眉分隔线目录选项生成结构化导航对于多页面文档目录(TOC)功能非常实用相关选项定义在options.go的tocOptions样式控制禁用点线、设置标题文本、缩进距离和字体大小缩放链接设置启用/禁用从目录到章节的链接自定义样式通过XSL样式表完全自定义目录外观项目中提供了目录样式文件testdata/toc.xls可用于自定义目录样式。配置示例pdfg.TocOptions.TocHeaderText.Set(目录) pdfg.TocOptions.TocLevelIndentation.Set(2) // 缩进2em pdfg.TocOptions.XslStyleSheet.Set(toc.xsl) // 自定义XSL样式高级选项满足特殊需求go-wkhtmltopdf还提供了许多高级选项以满足特殊场景需求Cookie和HTTP头通过Cookie和CustomHeader选项设置请求头和Cookie代理设置配置代理服务器访问需要代理的资源SSL设置提供SSL证书路径和密码表单处理启用表单字段转换为PDF表单缓存控制设置缓存目录提高重复生成效率实用配置示例1. 生成高质量PDF报告pdfg, _ : NewPDFGenerator() defer pdfg.Destroy() // 全局设置 pdfg.GlobalOptions.Dpi.Set(300) pdfg.GlobalOptions.ImageQuality.Set(100) pdfg.GlobalOptions.PageSize.Set(PageSizeLetter) // 页面设置 page : NewPageOptions() page.PrintMediaType.Set(true) // 使用打印媒体类型 page.DisableSmartShrinking.Set(true) // 禁用智能缩放 pdfg.AddPage(NewPage(https://example.com/report.html, page)) pdfg.WriteFile(high_quality_report.pdf)2. 生成带目录的电子书pdfg, _ : NewPDFGenerator() defer pdfg.Destroy() // 全局设置 pdfg.GlobalOptions.Orientation.Set(OrientationPortrait) pdfg.GlobalOptions.PageSize.Set(PageSizeA5) // 目录设置 pdfg.TocOptions.TocHeaderText.Set(目录) pdfg.TocOptions.TocLevelIndentation.Set(1) pdfg.TocOptions.TocTextSizeShrink.Set(0.8) // 添加章节 pdfg.AddPage(NewPage(chapter1.html)) pdfg.AddPage(NewPage(chapter2.html)) pdfg.AddPage(NewPage(chapter3.html)) pdfg.WriteFile(ebook_with_toc.pdf)3. 静默模式生成批量PDFpdfg, _ : NewPDFGenerator() defer pdfg.Destroy() // 静默模式减少输出 pdfg.GlobalOptions.Quiet.Set(true) // 低质量快速生成 pdfg.GlobalOptions.LowQuality.Set(true) pdfg.GlobalOptions.NoPdfCompression.Set(true) // 批量添加页面 for i : 1; i 10; i { pdfg.AddPage(NewPage(fmt.Sprintf(page%d.html, i))) } pdfg.WriteFile(batch_output.pdf)常见问题与解决方案问题中文字体显示乱码解决方案确保HTML中指定了支持中文的字体或通过UserStyleSheet选项全局设置字体page.UserStyleSheet.Set(styles.css) // 在CSS中定义字体问题页面内容被截断解决方案调整页面大小或禁用智能缩放page.DisableSmartShrinking.Set(true) pdfg.GlobalOptions.PageHeight.Set(300) pdfg.GlobalOptions.PageHeightUnit.Set(mm)问题JavaScript未执行完成解决方案增加JavaScript延迟时间page.JavascriptDelay.Set(3000) // 等待3秒总结go-wkhtmltopdf提供了全面的配置选项使您能够完全控制PDF生成过程。通过合理配置全局选项、页面选项、页眉页脚选项和目录选项您可以轻松创建专业、美观的PDF文档。无论是简单的报告还是复杂的电子书go-wkhtmltopdf都能满足您的需求帮助您快速实现HTML到PDF的高质量转换。要了解更多配置细节请查看项目源代码中的options.go文件其中包含了所有可用选项的完整定义和说明。【免费下载链接】go-wkhtmltopdfGolang commandline wrapper for wkhtmltopdf项目地址: https://gitcode.com/gh_mirrors/go/go-wkhtmltopdf创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考