All Projects → hyperboloide → Pdfgen

hyperboloide / Pdfgen

Licence: mit
HTTP service to generate PDF from Json requests

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Pdfgen

Gotenberg Go Client
Go client for the Gotenberg API
Stars: ✭ 35 (-30%)
Mutual labels:  pdf
Naps2
Scan documents to PDF and other file types, as simply as possible.
Stars: ✭ 1,018 (+1936%)
Mutual labels:  pdf
Sile
Simon’s Improved Layout Engine
Stars: ✭ 1,032 (+1964%)
Mutual labels:  pdf
Thinreports
Thinreports is an open source report creation tool for Ruby.
Stars: ✭ 40 (-20%)
Mutual labels:  pdf
Node Prince
Node API for executing PrinceXML via prince(1) CLI
Stars: ✭ 42 (-16%)
Mutual labels:  pdf
Html2pdfrenderer
Take any HTML loaded in WKWebView and make PDF out of it.
Stars: ✭ 44 (-12%)
Mutual labels:  pdf
Cv Boilerplate
Programmatic generation of high-quality CVs
Stars: ✭ 967 (+1834%)
Mutual labels:  pdf
Pdf Annotate.js
Annotation layer for pdf.js
Stars: ✭ 49 (-2%)
Mutual labels:  pdf
Reportbro Lib
PDF and Excel report generation library. Reports can be designed with reportbro-designer, a javascript plugin.
Stars: ✭ 43 (-14%)
Mutual labels:  pdf
Pdfsave
Convert websites into readable PDFs
Stars: ✭ 46 (-8%)
Mutual labels:  pdf
Mkdocs With Pdf
Generate a single PDF file from MkDocs repository.
Stars: ✭ 39 (-22%)
Mutual labels:  pdf
Cv Template
An easy way to create HTML and PDF versions of your resume, and automatically host them on GitHub Pages.
Stars: ✭ 41 (-18%)
Mutual labels:  pdf
Mybox
Easy tools of document, image, file, network, location, color, and media.
Stars: ✭ 45 (-10%)
Mutual labels:  pdf
Ng2 Pdf Viewer
📄 PDF Viewer Component for Angular 5+
Stars: ✭ 997 (+1894%)
Mutual labels:  pdf
Format parser
file metadata parsing, done cheap
Stars: ✭ 46 (-8%)
Mutual labels:  pdf
Pdfforms
Populate fillable pdf forms from csv data file
Stars: ✭ 33 (-34%)
Mutual labels:  pdf
Elixirbooks
List of Elixir books
Stars: ✭ 1,021 (+1942%)
Mutual labels:  pdf
Koreader
An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices
Stars: ✭ 9,467 (+18834%)
Mutual labels:  pdf
Mobius
Scripts to extract data from the COVID-19 Google Community Mobility Reports
Stars: ✭ 47 (-6%)
Mutual labels:  pdf
Owasp Masvs
The Mobile Application Security Verification Standard (MASVS) is a standard for mobile app security.
Stars: ✭ 1,030 (+1960%)
Mutual labels:  pdf

pdfgen

Build Status Go Report Card

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].