Profile
Back to NewsBack
GitHub Trending 3 min
Reader Mode
johnfercher/maroto: A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple.

johnfercher/maroto: A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple.

6 hours ago

Maroto V2

GoDoc</a> Mentioned in Awesome Go</a> CI</a> Lint</a> Codecov</a> Visits Badge</a> Stars Badge</a>

A Maroto way to create PDFs. Maroto is inspired in Bootstrap and uses Gofpdf. Fast and simple.

!sirmaroto

Maroto definition: Brazilian expression, means an astute/clever/intelligent person.
Art by @marinabankr

You can write your PDFs like you are creating a site using Bootstrap. A Row may have many Cols, and a Col may have many components. Besides that, pages will be added when content may extrapolate the useful area. You can define a header which will be added always when a new page appear, in this case, a header may have many rows, lines or tablelist.

Maroto v2.4.3 is here! Try out:

  • Installation withgo get:
go get github.com/johnfercher/maroto/[email protected]
  • You can see the full v2 documentation here.
  • The v1 still exists in this branch, and you can see the doc here).
!result

Agent Skills

Maroto ships a set of skills for AI coding agents (Claude, Copilot, Cursor, etc.): Markdown instruction files that teach an agent how to generate PDFs with maroto — setup, config, layout, components, tables and testing — with every default and pitfall spelled out. The files work together as one package: copy the whole skills/maroto-pdf/ folder into your project and point your agent at its entry file, generation.md. Full description on the docs site.

Contributing

If you are an AI agent/LLM working on this repository, read AGENTS.md first
and follow the standards defined in .github/skills.

| Command | Description | Dependencies | |-----------------|---------------------------------------------------|---------------------------------------------------------------| | make build | Build project | go | | make test | Run unit tests | go | | make fmt | Format files | go (runs gofumpt/goimports via tools/go.mod) | | make lint | Check files | go (runs golangci-lint via tools/go.mod) | | make dod | (Definition of Done) Format files and check files | Same as make build, make test, make fmt, make lint and make codecov | | make install | Install all dependencies and the pre-commit hook | go and npm (for docsify-cli) | | make examples | Run all examples | go | | make mocks | Generate mocks | go (runs mockery via tools/go.mod) | | make docs | Run docsify docs server local | docsify | | make godoc | Run godoc server local | go (runs godoc via tools/go.mod) | | make install-hooks | Point git at .githooks so make dod runs on every commit | git | | make codecov | Warn about functions with 0% test coverage (never fails) | go |

goimports, gofumpt, golangci-lint, mockery, and godoc are versioned tool dependencies declared in tools/go.mod, a separate module so their transitive dependencies never end up in the main go.sum. See contribution.md for details.

make install (or make install-hooks on its own) configures a pre-commit git hook, tracked at .githooks/pre-commit, that runs make dod before every commit and blocks it if build, test, fmt, or lint fail.

Stargazers over time

Stargazers over time</a>
Chat with me