您的位置:首页 > 娱乐 > 八卦 > 网站设计基础教程html5+css3源代码_广东智能网站建设配件_新浪疫情实时数据_好的seo平台

网站设计基础教程html5+css3源代码_广东智能网站建设配件_新浪疫情实时数据_好的seo平台

2024/12/23 5:06:22 来源:https://blog.csdn.net/tatasix/article/details/142893631  浏览:    关键词:网站设计基础教程html5+css3源代码_广东智能网站建设配件_新浪疫情实时数据_好的seo平台
网站设计基础教程html5+css3源代码_广东智能网站建设配件_新浪疫情实时数据_好的seo平台

文章目录

    • 1. 安装`gofpdf`包
    • 2. 基本用法
      • 2.1 创建PDF实例
      • 2.2 添加页面
      • 2.3 设置字体
      • 2.4 添加文本
      • 2.5 添加图像
    • 3. 生成PDF文件
    • 4. 示例代码详解
    • 5. 代码解析
      • 5.1 主函数`generatePdf`
      • 5.2 辅助函数`addPdfContent`
      • 5.3 辅助函数`setPdfLogo`
    • 6. 总结

在现代Web开发中,生成PDF文件是一个常见的需求,无论是生成报告、发票还是其他类型的文档,PDF因其跨平台的特性和丰富的格式支持而成为首选格式。本文将详细介绍如何使用Go语言中的 gofpdf包来生成PDF文件,并通过具体的代码示例来展示其功能和用法。

1. 安装gofpdf

首先,我们需要安装gofpdf包。可以通过以下命令来安装:

go get -u github.com/jung-kurt/gofpdf

2. 基本用法

2.1 创建PDF实例

创建一个新的PDF实例是使用gofpdf的第一步。我们可以指定页面的方向(纵向或横向)、单位(毫米或英寸)和纸张大小(A4、Letter等)。

pdf := gofpdf.New("P", "mm", "A4", "")
  • "P" 表示页面方向为纵向(Portrait),也可以使用 "L" 表示横向(Landscape)。
  • "mm" 表示单位为毫米,也可以使用 "pt"(点)、"in"(英寸)等。
  • "A4" 表示纸张大小为A4,也可以使用 "Letter" 等其他标准纸张大小。

2.2 添加页面

创建PDF实例后,可以使用 AddPage 方法添加新的页面。

pdf.AddPage()

2.3 设置字体

gofpdf 支持多种字体,包括标准的PDF字体和自定义的TrueType字体。为了支持中文,我们需要加载自定义的字体文件。

pdf.AddUTF8Font("NotoSansSC", "", fontPathLight)
pdf.SetFont("NotoSansSC", "", 10)
  • AddUTF8Font 方法用于添加自定义的UTF-8字体。
  • SetFont 方法用于设置当前使用的字体。

2.4 添加文本

使用 MultiCell 方法可以添加多行文本。MultiCell 方法允许指定文本的宽度、高度、内容、边框、对齐方式等。

pdf.SetXY(22, 207)
pdf.SetTextColor(255, 255, 255)
pdf.MultiCell(0, 6, baseInfo, "", "", false)
  • SetXY 方法用于设置文本的起始位置。
  • SetTextColor 方法用于设置文本的颜色。
  • MultiCell 方法用于添加多行文本。

2.5 添加图像

使用 ImageOptions 方法可以添加图像。ImageOptions 方法允许指定图像的路径、位置、大小、是否旋转等。

pdf.ImageOptions("./static/base.png",0, 0,210, 0,false,gofpdf.ImageOptions{ImageType: "png", ReadDpi: true},0,"",
)
  • ImageOptions 方法用于添加图像。
  • 第一个参数是图像文件的路径。
  • 后面的参数分别表示图像的X坐标、Y坐标、宽度、高度、是否旋转、图像选项、链接等。

3. 生成PDF文件

最后,使用 OutputFileAndClose 方法将PDF文件输出到指定的路径。

pdfPath := "./temp-files/" + name + ".pdf"
err = pdf.OutputFileAndClose(pdfPath)
if err != nil {return
}

4. 示例代码详解

以下是一个完整的示例代码,展示了如何使用gofpdf生成包含文本和图像的PDF文件。

package pdfimport ("github.com/jung-kurt/gofpdf""os"
)const (fontPathBold    = "./font/PingFang-SC-Bold.ttf"fontPathLight   = "./font/PingFang-SC-Light.ttf"
)// generatePdf 生成PDF文件
func generatePdf(name, baseInfo, content string, images []string) (pdfPath string, err error) {// 删除图片defer func() {for _, image := range images {os.Remove(image)}}()// 创建PDF实例pdf := gofpdf.New("P", "mm", "A4", "")// 生成封面pdf.AddPage()// 读取图像文件pdf.ImageOptions("./static/base.png",0, 0,210, 0,false,gofpdf.ImageOptions{ImageType: "png", ReadDpi: true},0,"",)// 添加字体pdf.AddUTF8Font("NotoSansSC", "", fontPathLight)pdf.SetFont("NotoSansSC", "", 10)// 添加基础信息pdf.SetXY(22, 207)pdf.SetTextColor(255, 255, 255)pdf.MultiCell(0, 6, baseInfo, "", "", false)// 添加内容addPdfContent(pdf, "内容1", content)// 添加图片for _, image := range images {pdf.AddPage()setPdfLogo(pdf)pdf.ImageOptions(image,12, 23,180, 0,false,gofpdf.ImageOptions{ImageType: "png", ReadDpi: true},0,"",)}// 输出PDF文件pdfPath = "./temp-files/" + name + ".pdf"err = pdf.OutputFileAndClose(pdfPath)if err != nil {return}return
}// addPdfContent 添加PDF内容
func addPdfContent(pdf *gofpdf.Fpdf, title, content string) {// 添加字体pdf.AddUTF8Font("NotoSansSC", "", fontPathBold)pdf.SetFont("NotoSansSC", "", 10)// 添加新页面pdf.AddPage()setPdfLogo(pdf)// 设置文本颜色和大小pdf.SetTextColor(0, 0, 0)pdf.SetFontSize(20)// 添加标题pdf.SetXY(10, 10)pdf.MultiCell(0, 5, title, "", "", false)// 添加内容pdf.AddUTF8Font("NotoSansSC", "", fontPathLight)pdf.SetFont("NotoSansSC", "", 12)pdf.SetFontSize(12)pdf.SetXY(10, 23)pdf.MultiCell(0, 5, content, "", "", false)
}// setPdfLogo 设置PDF的logo
func setPdfLogo(pdf *gofpdf.Fpdf) {// 读取图像文件pdf.ImageOptions("./static/logo.png",180, 9,22, 0,false,gofpdf.ImageOptions{ImageType: "png", ReadDpi: true},0,"",)
}

5. 代码解析

5.1 主函数generatePdf

  • 创建PDF实例:使用 gofpdf.New 方法创建一个新的PDF实例。
  • 生成封面:添加一个新页面,并使用 ImageOptions 方法添加背景图像。
  • 添加基础信息:设置字体和文本颜色,使用 MultiCell 方法添加基础信息。
  • 添加内容:调用 addPdfContent 方法添加内容。
  • 添加图片:遍历 images 列表,为每张图片添加一个新页面,并使用 ImageOptions 方法添加图像。
  • 输出PDF文件:使用 OutputFileAndClose 方法将PDF文件输出到指定路径。

5.2 辅助函数addPdfContent

  • 添加字体:使用 AddUTF8Font 方法添加自定义字体。
  • 添加新页面:使用 AddPage 方法添加一个新页面。
  • 设置文本颜色和大小:使用 SetTextColorSetFontSize 方法设置文本颜色和大小。
  • 添加标题:使用 MultiCell 方法添加标题。
  • 添加内容:使用 MultiCell 方法添加内容。

5.3 辅助函数setPdfLogo

  • 添加logo:使用 ImageOptions 方法添加logo图像。

6. 总结

通过本文的介绍,我们详细了解了如何使用gofpdf包生成PDF文件。gofpdf提供了丰富的API,可以方便地添加文本、图像、表格等内容,支持多种字体和格式。希望本文能帮助你在实际项目中更好地使用gofpdf生成高质量的PDF文件。

参考资料:
gofpdf

如果你有任何问题或建议,欢迎留言交流!
关注我

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com