All Projects → jangko → Nimpdf

jangko / Nimpdf

Licence: other
PDF document writer, written in nim lang

Programming Languages

nim
578 projects

Projects that are alternatives of or similar to Nimpdf

Report
Report management package in PHP that aims to help you export information in a variety of formats
Stars: ✭ 125 (-1.57%)
Mutual labels:  pdf, pdf-generation
Phpchrometopdf
A slim PHP wrapper around google-chrome to convert url to pdf or to take screenshots , easy to use and clean OOP interface
Stars: ✭ 127 (+0%)
Mutual labels:  pdf, pdf-generation
Openhtmltopdf
An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support. Now also with accessible PDF support (WCAG, Section 508, PDF/UA)!
Stars: ✭ 1,096 (+762.99%)
Mutual labels:  pdf, pdf-generation
Labelmake
Declarative style JavaScript PDF generator library. Works on Node and the browser 🖨︎
Stars: ✭ 112 (-11.81%)
Mutual labels:  pdf, pdf-generation
Ptext Release
pText is a library for reading, creating and manipulating PDF files in python.
Stars: ✭ 124 (-2.36%)
Mutual labels:  pdf, pdf-generation
Pdfsave
Convert websites into readable PDFs
Stars: ✭ 46 (-63.78%)
Mutual labels:  pdf, pdf-generation
Unipdf
Golang PDF library for creating and processing PDF files (pure go)
Stars: ✭ 1,171 (+822.05%)
Mutual labels:  pdf, pdf-generation
Asciidoctor Pdf
📃 Asciidoctor PDF: A native PDF converter for AsciiDoc based on Asciidoctor and Prawn, written entirely in Ruby.
Stars: ✭ 868 (+583.46%)
Mutual labels:  pdf, pdf-generation
Vectorgraphics2d
Graphics2D implementations to export various vector file formats
Stars: ✭ 87 (-31.5%)
Mutual labels:  pdf, pdf-generation
Laravel Pdf
A Simple package for easily generating PDF documents from HTML. This package is specially for laravel but you can use this without laravel.
Stars: ✭ 79 (-37.8%)
Mutual labels:  pdf, pdf-generation
Mkdocs With Pdf
Generate a single PDF file from MkDocs repository.
Stars: ✭ 39 (-69.29%)
Mutual labels:  pdf, pdf-generation
Play Pdf
A PDF module for the Play framework
Stars: ✭ 108 (-14.96%)
Mutual labels:  pdf, pdf-generation
Alivepdf
[Official AlivePDF] - AlivePDF is a client side AS3 PDF generation library for Adobe Flash, Flex and AIR
Stars: ✭ 29 (-77.17%)
Mutual labels:  pdf, pdf-generation
Sile
Simon’s Improved Layout Engine
Stars: ✭ 1,032 (+712.6%)
Mutual labels:  pdf, pdf-generation
Html Pdf Service
LGPL V3. Java Spring Boot microservice with RESTful webconsole and service endpoints that convert HTML to PDF, optionally styling with CSS and templating with JSON using Flying Saucer, PDF Box and Jackson libraries. Available on Docker Hub.
Stars: ✭ 12 (-90.55%)
Mutual labels:  pdf, pdf-generation
Notion Pdf Export
A tool to allow batch PDF export for free Notion users. You can export as HTML and then use this tool to convert those into PDFs.
Stars: ✭ 66 (-48.03%)
Mutual labels:  pdf, pdf-generation
Itext7
iText 7 for Java represents the next level of SDKs for developers that want to take advantage of the benefits PDF can bring. Equipped with a better document engine, high and low-level programming capabilities and the ability to create, edit and enhance PDF documents, iText 7 can be a boon to nearly every workflow.
Stars: ✭ 913 (+618.9%)
Mutual labels:  pdf, pdf-generation
Hexapdf
Versatile PDF creation and manipulation for Ruby
Stars: ✭ 852 (+570.87%)
Mutual labels:  pdf, pdf-generation
Jsx Pdf
Generate PDFs using JSX! 🎯
Stars: ✭ 71 (-44.09%)
Mutual labels:  pdf, pdf-generation
Pdf Generator
Cordova plugin to generate pdf in the client-side
Stars: ✭ 98 (-22.83%)
Mutual labels:  pdf, pdf-generation

nimPDF

Build Status (Travis) Windows build status (Appveyor) nimble license Github action

nimPDF is a free PDF writer library, written mostly in nim programming language

nimPDF was heavily inspired by PHP-FPDF but also influenced by jagPDF, libHaru(especially for the demo), PyFPDF, pdfkit

after lodePNG substituted with PNG decoder written in nim, nimPDF become one step closer to 100% pure nim

nimPDF implements the following features(see demo.pdf):

nimPDF version 0.4.0 introduces many breaking changes, see migration guide to help you change your code.

  • images

    • PNG -- use LodePNG, still in C now written in nim
    • JPEG -- use uJPEG (MicroJPEG) -- KeyJ's Small Baseline JPEG Decoder, still in C
    • BMP -- use EasyBMP, already ported to nim, support 1bit, 4bit, 8bit, 16bit, 24bit, and 32bit images
    • beside transparency from original image(such as from PNG), you can adjust individual image transparency as easy as other elements in your document
  • text and fonts

    • support TTF/TTC font subsetting -- use Google sfntly, ported(partially) to nim and modified
    • you can easily tell the library to look for fonts in certain folder(s)
    • you only need to ask for font family name and it's style, the library will try to find the right one for you(if avilable)
    • text encoded in UTF-8 if you use TTF/TTC
    • 14 base font in PDF use Standard,MacRoman,WinAnsi encoding
    • TTF/TTC fonts can be written vertically if they have vertical metrics
  • Path construction

    • straight segments, Bezier curves, elliptical arcs, roundrect
    • join styles and miter limits
    • dash patterns
    • path clipping
    • arbitrary path bounding box calculation(i use it to implement gradient too)
    • construct path from mathematical function - taken from C# GraphDisplay
  • Color spaces

    • Gray, RGB, CMYK
    • alpha channel for text, path, and images too!
    • linear gradient to fill any closed shape
    • radial gradient to fill any closed shape
  • Interactive Features(see demo folder)

    • Page Labels
    • Document Outline
    • Hyperlinks
    • Text annotation
    • Encryption(protect document with password)
    • choose between ARC4-40, ARC4-128, AES-128, AES-256 encryption mode
    • Form Field:
      • TextField
      • Combo Box
      • Radio
      • Push Button
      • List Box
      • Check Box
  • Coordinate Space

    • top-down mode
    • bottom-up mode
    • unit measured in point, inch, and mm
  • others

    • output to file or memory using nim stream module
    • images, fonts, and other resources search path(s)
    • document compression using flate decode(use lodePNG compressor)
    • transformation and graphics state
  • unimplemented features

    • CIE based color space
    • patterns(this can be achieved using PDF primitives and path clipping)
    • encryption
    • annotation
    • hyperlinks
    • other encoding beside UTF-8(nim has encoding module, i will use it someday)
    • basic text formating(will be implemented as separate layer)
    • radial gradient and multi color gradient
    • table generator(as in FPDF)(will be implemented as separate layer)
    • document outline
    • permission
    • digital signature

Documentation

The documentation is generated using docutils

The documentation provided may not be complete, please help to improve it

Installation and build instructions

nimble install nimPDF

  • build general demo: nim c demo
  • build specific demo: goto nimPDF/demo folder, type nim e build.nims

Dependencies

  • nimBMP
  • nimPNG
  • nimAES
  • nimSHA2
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].