2k star,pdf还可以这样玩!

文摘   2024-10-20 17:02   上海  

github.com/johnfercher/maroto

Maroto 是一个开源的 Go 语言库,用于创建 PDF 文档。它的设计灵感来自 Bootstrap,并使用了 gofpdf 库,使得创建 PDF 变得快速且简单。

Maroto 的名字源自巴西葡萄牙语,意为聪明、机智的人。

通过 Maroto,用户可以像使用 Bootstrap 创建网站一样创建 PDF 文档。它采用行和列的布局方式,每一行可以包含多个列,每一列可以包含多个组件。

此外,当内容超出页面的可用区域时,会自动添加新页面,并且可以定义页眉,页眉会在每次新页面出现时自动添加。

功能特点

  1. 灵活的网格系统:Maroto 使用 12 单位的网格系统来管理 PDF 文档的布局。页面的宽度被划分为 12 个相等的部分(即“网格空间”),用户可以通过指定列的宽度来控制布局的灵活性和简洁性。

  2. 多种组件支持:Maroto 支持多种组件,包括文本、图像、条形码、二维码、矩阵码、签名等。用户可以通过简单的 API 调用将这些组件添加到 PDF 文档中。

  3. 内置度量功能:Maroto 内置了度量功能,允许用户在生成 PDF 时进行性能监控和优化。这对于需要生成大量 PDF 文档的应用场景尤为重要。

  4. 可测试性:Maroto 提供了良好的单元测试支持,用户可以方便地对生成的 PDF 文档进行测试,确保其符合预期。

  5. 高效性能:与 V1 版本相比,Maroto V2 的执行速度至少提高了两倍。这得益于其优化的代码和高效的执行逻辑。

  6. 递归行/列支持:Maroto 允许在行和列中嵌套其他行和列,从而实现更复杂的布局。这使得用户可以创建更加灵活和多样化的 PDF 文档。

吸引用户的特点

  1. 简单易用:Maroto 的 API 设计简洁明了,用户可以通过几行代码快速生成 PDF 文档。其类似于 Bootstrap 的布局方式使得前端开发者也能轻松上手。

  2. 高扩展性:Maroto 支持多种组件和布局方式,用户可以根据需求自由组合,生成各种类型的 PDF 文档。

  3. 开源免费:作为一个开源项目,Maroto 完全免费,用户可以自由使用、修改和分发。同时,社区的活跃贡献也使得 Maroto 不断更新和完善。

  4. 性能优越:Maroto 的高效性能使得它在处理大量 PDF 文档生成任务时表现出色,适用于各种高性能需求的应用场景。

  5. 良好的文档和支持:Maroto 提供了详细的文档和示例代码,用户可以通过阅读文档快速了解和使用该库。同时,GitHub 上的社区支持也为用户提供了丰富的资源和帮助。

快速使用指南

  1. 安装 Maroto

    go get github.com/johnfercher/maroto/v2@v2.1.5
  2. 创建一个简单的 PDF 文档

    package main

    import (
        "log"
        "github.com/johnfercher/maroto/v2"
        "github.com/johnfercher/maroto/v2/pkg/consts"
        "github.com/johnfercher/maroto/v2/pkg/props"
    )

    func main() {
        m := maroto.NewMaroto(consts.Portrait, consts.A4)
        m.SetPageMargins(101010)

        m.Row(20func() {
            m.Col(12func() {
                m.Text("Hello, Maroto!", props.Text{
                    Top:   10,
                    Size:  20,
                    Align: consts.Center,
                })
            })
        })

        err := m.OutputFileAndClose("example.pdf")
        if err != nil {
            log.Fatalf("Could not save PDF: %v", err)
        }
    }
  3. 运行代码

    go run main.go

以上代码将生成一个包含“Hello, Maroto!”文本的 PDF 文档。通过这种方式,用户可以快速上手 Maroto,并根据需求创建各种复杂的 PDF 文档。

Maroto 的设计理念和功能特点使其成为创建 PDF 文档的强大工具。无论是简单的文本文档,还是复杂的图表和表格,Maroto 都能轻松应对。


大侠之运维
分享关于运维的资料、工作经验、日常感悟。
 最新文章