pdfgen alternatives and similar packages
Based on the "Miscellaneous" category.
Alternatively, view pdfgen alternatives based on common mentions on social networks and blogs.
-
go-formatter
A curated list of awesome Go frameworks, libraries and software -
golang-standards/project-layout
Standard Go Project Layout -
archiver
Easily create & extract archives, and compress & decompress files of various formats -
ardanlabs/service
Starter-kit for writing services in Go using Kubernetes. -
go-multierror
A Go (golang) package for representing a list of errors as a single error. -
ghorg
Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, Bitbucket, and more 🥚 -
go-restful-api
An idiomatic Go REST API starter kit (boilerplate) following the SOLID principles and Clean Architecture -
xstrings
Implements string functions widely used in other languages but absent in Go. -
go-shortid
Super short, fully unique, non-sequential and URL friendly Ids -
container
A lightweight yet powerful IoC dependency injection container for the Go programming language -
gountries
Gountries provides: Countries (ISO-3166-1), Country Subdivisions(ISO-3166-2), Currencies (ISO 4217), Geo Coordinates(ISO-6709) as well as translations, country borders and other stuff exposed as struct data. -
health
An easy to use, extensible health check library for Go applications. -
go-starter
An opinionated production-ready SQL-/Swagger-first RESTful JSON API written in Go, highly integrated with VSCode DevContainers by allaboutapps. -
countries
Countries - ISO-639, ISO-3166 countries codes with subdivisions and names, ISO-4217 currency designators, ITU-T E.164 IDD phone codes, countries capitals, UN M.49 codes, IANA ccTLD countries domains, FIPS, IOC/NOC and FIFA codes, VERY VERY FAST, compatible with Databases/JSON/BSON/GOB/XML/CSV, Emoji countries flags and currencies, Unicode CLDR. -
golang-templates/seed
Go application GitHub repository template. -
gotoprom
Type-safe Prometheus metrics builder library for golang [managed by soy-programador] -
antch
Antch, a fast, powerful and extensible web crawling & scraping framework for Go
WorkOS - The modern identity platform for B2B SaaS
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of pdfgen or a related project?
Popular Comparisons
README
pdfgen
HTTP service to generate PDF from Json requests
Install and run
The recommended method is to use the docker container by mounting your template
directory (here with the provided example template
directory):
docker run --rm -it -p 8888:8888 \
--mount src=my_templates/,target=/etc/pdfgen/templates,type=bind \
hyperboloide/pdfgen
If you rather not using Docker, you need to install wkhtmltopdf first, then run:
go install github.com/hyperboloide/pdfgen
PDFGEN_TEMPLATES=./templates pdfgen
Once installed you can test with something like this:
curl -H "Content-Type: application/json" -X POST -d @my_json_file.json \
http://localhost:8888/invoice > result.pdf
Note that the rendering may differ depending on your os (especially OSX) and installed fonts, that's why it is recommended to test and develop on the Docker environment to get the same result in production.
Templates
The PDF are generated from HTML templates. These templates closely ressemble Django Templates.
the following template:
<h1>Hello, {{ user }}</h1>
can be generated with a application/json
POST request:
{"user": "fred"}
The response is of type application/pdf
and contains the resulting PDF.
Each PDF template should be in it's own directory under the root directory
defined in the PDFGEN_TEMPLATES
environment variable.
The urls endpoints will be generated from these directories names. For example a template
in the directory invoice
will be a reachable at a url that look like that: http://host:port/invoice
The template directory must contain an index.html
file and optionnaly
a footer.html
file. Other assets like images and CSS should be in
that directory too.
Note that each PDF is generated in isolation and so
your templates should use absolutes paths.
For example if you use bower and have a path like that:
invoices/bower_components/
you should have:
<link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.min.css" media='screen,print'>
Finally don't forget to set the PDFGEN_TEMPLATES
env variable to the path of
your templates parent directory
Alternatively you copy your templates to either :
/etc/pdfgen/templates
or ~/.templates
.
Adding fonts
You could just create a new container with your fonts and rebuild the cache. Bellow an example Dockerfile.
FROM hyperboloide/pdfgen
COPY my_fonts /usr/local/share/fonts/
RUN fc-cache -f -v