All Projects → brechtm → Rinohtype

brechtm / Rinohtype

Licence: agpl-3.0
The Python document processor

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Rinohtype

Rst2pdf
Use a text editor. Make a PDF.
Stars: ✭ 404 (+10.68%)
Mutual labels:  restructuredtext, pdf, pdf-generation
Sile
Simon’s Improved Layout Engine
Stars: ✭ 1,032 (+182.74%)
Mutual labels:  pdf, pdf-generation, typesetting
Pdfgen
Simple C PDF Writer/Generation library
Stars: ✭ 200 (-45.21%)
Mutual labels:  pdf, pdf-generation
Asciidoctor Web Pdf
Convert AsciiDoc documents to PDF using web technologies
Stars: ✭ 219 (-40%)
Mutual labels:  pdf, pdf-generation
Pdf Bot
🤖 A Node queue API for generating PDFs using headless Chrome. Comes with a CLI, S3 storage and webhooks for notifying subscribers about generated PDFs
Stars: ✭ 2,551 (+598.9%)
Mutual labels:  pdf, pdf-generation
Chrome Headless Render Pdf
Stars: ✭ 164 (-55.07%)
Mutual labels:  pdf, pdf-generation
Resumake.io
📝 A website for automatically generating elegant LaTeX resumes.
Stars: ✭ 2,277 (+523.84%)
Mutual labels:  pdf, pdf-generation
Pagedjs
Display paginated content in the browser and generate print books using web technology
Stars: ✭ 228 (-37.53%)
Mutual labels:  pdf, typesetting
Reportbro Designer
Javascript plugin to visually design report layouts (for pdf and Excel) which can be created with reportbro-lib (a Python package) on the server.
Stars: ✭ 160 (-56.16%)
Mutual labels:  pdf, pdf-generation
Leerraum.js
A PDF typesetting library with exact positioning and hyphenated line breaking
Stars: ✭ 233 (-36.16%)
Mutual labels:  pdf, typesetting
Tea School
Simplified HTML + CSS --> PDF Generator for Nodejs
Stars: ✭ 326 (-10.68%)
Mutual labels:  pdf, pdf-generation
Django Easy Pdf
PDF views, the easy way
Stars: ✭ 324 (-11.23%)
Mutual labels:  pdf, pdf-generation
Wasm Pdf
Generate PDF files with JavaScript and WASM (WebAssembly)
Stars: ✭ 163 (-55.34%)
Mutual labels:  pdf, pdf-generation
Markdown Pdf
📄 Markdown to PDF converter
Stars: ✭ 2,365 (+547.95%)
Mutual labels:  pdf, pdf-generation
Openpdf
OpenPDF is a free Java library for creating and editing PDF files with a LGPL and MPL open source license. OpenPDF is based on a fork of iText. We welcome contributions from other developers. Please feel free to submit pull-requests and bugreports to this GitHub repository. ⛺
Stars: ✭ 2,174 (+495.62%)
Mutual labels:  pdf, pdf-generation
Pdf Lib
Create and modify PDF documents in any JavaScript environment
Stars: ✭ 3,426 (+838.63%)
Mutual labels:  pdf, pdf-generation
Hummusrecipe
A powerful PDF tool for NodeJS based on HummusJS.
Stars: ✭ 274 (-24.93%)
Mutual labels:  pdf, pdf-generation
Svglib
Read SVG files and convert them to other formats.
Stars: ✭ 139 (-61.92%)
Mutual labels:  pdf, pdf-generation
Doctron
Docker-powered html convert to pdf(html2pdf), html to image(html2image like jpeg,png),which using chrome(golang) kernel, add watermarks to pdf, convert pdf to images etc.
Stars: ✭ 141 (-61.37%)
Mutual labels:  pdf, pdf-generation
Android Pdfmyxml
convert android xml layouts into PDF document, works on all versions of Android.
Stars: ✭ 231 (-36.71%)
Mutual labels:  pdf, pdf-generation

rinohtype

.. image:: http://img.shields.io/pypi/v/rinohtype.svg :target: https://pypi.python.org/pypi/rinohtype :alt: PyPI

.. image:: https://img.shields.io/pypi/pyversions/rinohtype.svg :target: https://pypi.python.org/pypi/rinohtype :alt: Python version

.. image:: https://badges.gitter.im/brechtm/rinohtype.svg :target: https://gitter.im/brechtm/rinohtype :alt: Gitter chat

.. image:: https://github.com/brechtm/rinohtype/workflows/Test%20&%20Publish/badge.svg :target: https://github.com/brechtm/rinohtype/actions?query=workflow%3A%22Test+%26+Publish%22 :alt: Tests

.. image:: https://codecov.io/gh/brechtm/rinohtype/branch/master/graph/badge.svg :target: https://codecov.io/gh/brechtm/rinohtype :alt: Test coverage

rinohtype is a batch-mode document processor. It renders structured documents to PDF based on a document template and a style sheet. An important design goal of rinohtype is make document layout and style customization user-friendly. See the documentation_ to learn how to customize the style of your document.

Call for Contributions

Since rinohtype is a fairly sizable project and currently being maintained by a single person, your contribution can make a big difference. Specifically, the following things can help move rinohtype forward:

  • development of professional-looking stylesheets and document templates
  • volunteering to be a maintainer: fix issues that pop up when new versions of dependencies are released (Python, Sphinx, ...)
  • help with maintaining and improving the documentation
  • development of new features, e.g. widow/orphan handling, Knuth-Plass line breaking, mathematics typesetting, performance improvements, ...
  • companies might be interested in funding the development of particular features

So if you are interested in helping with any of these items, please don't hesitate to get in touch via [email protected], GitHub issues_ or Gitter_!

.. _GitHub issues: https://github.com/brechtm/rinohtype/issues .. _Gitter: https://gitter.im/brechtm/rinohtype

Features

rinohtype is still in beta, so you might run into some issues when using it. I'd highly appreciate it if you could create a ticket_ for any bugs you may encounter. That said, rinohtype is already quite capable. For example, it should be able to replace Sphinx_'s LaTeX builder in most cases. Here is an overview of the main features:

  • a powerful page layout system supporting columns, running headers/footers, floatable elements and footnotes
  • support for figures and (large) tables
  • automatic generation of table of contents and index
  • automatic numbering and cross-referencing of section headings, figures and tables
  • configure one of the included document templates or create your own
  • an intuitive style sheet system inspired by CSS
  • modular design allowing for multiple frontends (such as reStructuredText, Markdown, DocBook, ...)
  • handles OpenType, TrueType and Type1 fonts with support for advanced typographic features such as kerning, ligatures, small capitals and old style figures
  • embeds PDF, PNG and JPEG images, preserving transparency and color profiles
  • easy to install and deploy; pure-Python with few dependencies
  • built on Unicode; ready for non-latin languages

rinohtype's primary input format is reStructuredText_. The rinoh command line tool renders reStructuredText documents and the included Sphinx_ builder makes it possible to output large documents with your own style applied. Have a look at the rinohtype manual_ for an example of the output.

There is also a commercial DITA_ frontend, but it's development is currently on hold. Please contact me_ if you are interested in testing it.

.. _documentation: http://www.mos6581.org/rinohtype/master/ .. _create a ticket: https://github.com/brechtm/rinohtype/issues/new/choose .. _reStructuredText: http://docutils.sourceforge.net/rst.html .. _Sphinx: http://sphinx-doc.org .. _rinohtype manual: http://www.mos6581.org/rinohtype/master/manual.pdf .. _DITA: https://en.wikipedia.org/wiki/Darwin_Information_Typing_Architecture .. _contact me: [email protected]

Requirements

rinohtype supports all stable Python 3 versions that have not reached end-of-life_ status. For parsing reStructuredText and CommonMark documents, rinohtype depends on docutils_ and recommonmark_ respectively. pip_ takes care of installing these requirements when you install rinohtype.

Syntax highlighting of code blocks is eneabled if Pygments_ is installed, which will be installed automatically with Sphinx_. If you want to include images other than PDF, PNG or JPEG, you also need to install Pillow_.

.. _end-of-life: https://devguide.python.org/#status-of-python-branches .. _docutils: http://docutils.sourceforge.net/index.html .. _recommonmark: https://recommonmark.readthedocs.io .. _pip: https://pip.pypa.io .. _Pygments: https://pygments.org .. _Pillow: http://python-pillow.github.io

Getting Started

Installation is trivial::

pip install rinohtype

reStructuredText Renderer


The easiest way to get started with rinohtype is to render a reStructuredText
document (such as ``CHANGES.rst`` from this repository) using the ``rinoh``
command line tool::

   rinoh CHANGES.rst

When ``rinoh`` finishes, you will find ``CHANGES.pdf`` alongside the input
file.

By default ``rinoh`` renders the input document using the article template. Run
``rinoh --help`` to see how you can tell ``rinoh`` which document template and
style sheet to use.


Sphinx Builder
~~~~~~~~~~~~~~

rinohtype can be used as a drop-in replacement for the LaTeX builder (the
``latex_documents`` configuration variable has to be set). Simply select the
`rinoh` builder when building the Sphinx project::

    sphinx-build -b rinoh . _build/rinoh


Contributing
------------

See ``CONTRIBUTING.rst`` and ``DEVELOPING.rst``


License
-------

All of rinohtype's source code is licensed under the `Affero GPL 3.0`_, unless
indicated otherwise in the source file (such as ``hyphenator.py`` and
``purepng.py``).

The Affero GPL requires for software that builds on rinohtype to also be
released as open source under this license. For building closed-source
applications, you can obtain a `commercial license`_. The author of rinohtype
is also available for consultancy projects involving rinohtype.

.. _Affero GPL 3.0: https://www.gnu.org/licenses/agpl-3.0.html
.. _commercial license: `contact me`_
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].