Skip to main content

The Python document processor

Project description

RinohType is a document processor in the style of LaTeX. It can render structured text documents to PDF based on a document template and a style sheet. An important goal of RinohType is to make it easier to use than LaTeX. This includes providing clearer error messages and making it easy for users to adjust the document style.

This is a preview release unsuited for production use, but you can use it to explore RinohType’s features and bugs. I’d highly appreciate if you could create a ticket for any bugs you encounter. You can find articles on my blog discussing RinohType’s development progress.

Currently, RinohType only supports reStructuredText input. It ships with the rinoh command line tool to render basic reStructuredText documents and a preliminary Sphinx builder to render more complex documents. The included document templates and style sheets are fairly basic but these will be improved upon in the future.

Please be warned that some PDF readers have trouble displaying the PDFs generated by RinohType (issue 2). I believe this is due to a bug in these PDF readers. The following PDF viewers are affected:

  • Firefox’s built-in PDF viewer (pdf.js)
  • Evince and other poppler-based applications (e.g. Zathura)


RinohType currently only runs on Python 3.2 and up. It might be back-ported to Python 2.7 at some point in the future, but this is not certain.

For parsing reStructuredText documents RinohType depends on docutils. pip takes care of this requirement when you install RinohType.

If you want to include bitmap images in document, RinohType requires Pillow. Without Pillow, only PDF images are supported.

Getting Started

Command-line reStructuredText renderer

The easiest way to get started with RinohType is to render a reStructuredText document (such as demo.txt) using the rinoh command line tool:

rinoh demo.txt

When the script finishes, you will find demo.pdf alongside the input file.

rinoh renders the input document using the article template. You can specify the paper size using the --paper command line argument.

Sphinx Builder

To use RinohType to render Sphinx documents, you need to adjust the Sphinx project’s

  1. add rinoh.frontend.sphinx to the extensions list, and

  2. set the rinoh_documents configuration option:

    rinoh_documents = [('index', 'target', 'Document Title, 'Author')]
                       # source start file, target name (without PDF extension),
                       # title, author).


All of RinohType’s source code is licensed under the Affero GPL, unless indicated otherwise in the source file (such as

My intention is to make RinohType free for non-commercial use and offer a separate license for commercial use. The AGPL will likely be replaced soon with another license to better reflect this intention.

Brecht Machiels

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Built Distribution

RinohType-0.1.1-py3-none-any.whl (1.9 MB view hashes)

Uploaded 3 4

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page