My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Wiki pages
Links

Contents

Introduction

The usual way of creating PDF from reStructuredText is by going through LaTeX. This tool provides an alternative by producing PDF directly using the ReportLab library.

Here is some sample output, the beginning of "The Count of Montecristo".

Here you can see some large documents rendered with rst2pdf:Rst2pdf 0.16 is out!

The Python Documentation

Some Manuals

There is a book typeset with rst2pdf

Try it Online

You can try some of the power of rst2pdf online trying it at http://www.rst2pdf.net/ This is not done by me, so I don't know what version of rst2pdf they are using, or what limitations it has, but it's quite nice!

Installation

Download it from this site, then

install manually

python setup.py install

or try the egg with the provided buildout:

python bootstrap.py
bin/buildout

you'll get a rst2pdf executable in the bin directory

or get it via PyPI:

easy_install rst2pdf

Features

  • User-defined page layout. Multiple frames per page, multiple layouts per document.
  • Page transitions
  • Cascading stylesheet mechanism, define only what you want changed.
  • Supports TTF and Type1 font embedding.
  • Any number of paragraph styles using the class directive.
  • Any number of character styles using text roles.
  • Custom page sizes and margins.
  • Syntax highlighter for many languages, using Pygments.
  • Supports embedding almost any kind of raster or vector images.
  • Fast
  • Supports hyphenation and kerning (using wordaxe).

Screenshot

Not really, since this is a terminal app, but ok :-)

Changes

New in 0.91

  • Unbreak Sphinx

New in 0.90

  • Added raw HTML support, by Dimitri Christodoulou
  • Fixed  Issue 422 : Having no .afm files made font lookup slow.
  • Fixed  Issue 411 : Sometimes the windows registry has the font's abspath.
  • Fixed  Issue 430 : Using --config option caused other options to be ignored (by charles at cstanhope dot com)
  • Fixed  Issue 436 : Add pdf_style_path to sphinx (by tyler@datastax.com)
  • Added support for many pygments options in code-block (by Joaquin Sorianello)
  • Fixed  Issue 379 : Wrong style applied to paragraphs in definitions.
  • Implemented  Issue 11 : FrameBreak (and conditional FrameBreak)
  • The description of frames in page templates was just wrong.
  • Fixed  Issue 374 : in some cases, literal blocks were split inside a page, or the pagebreak came too early.
  • Fixed  Issue 370 : warning about sphinx.addnodes.highlightlang not being handled removed.
  • Fixed  Issue 369 : crash in hyphenator when specifying "en" as a language.
  • Compatibility fix to Sphinx 0.6.x (For python 2.7 docs)

New in 0.16

  • Fix for  Issue 287 : there is still a corner case if you have two sections with the same title, at the same level, in the same page, in different files where the links will break.
  • Fixed  Issue 367 : german-localized dates are MM. DD. YYYY so when used in sphinx's template cover they appeared weird, like a list item. Fixed with a minor workaround in the template.
  • Made definitions from definition lists more stylable.
  • Moved definition lists to SplitTables, so you can have very long definitions.
  • Fixed  Issue 318 : Implemented Domain specific indexes for Sphinx 1.0.x
  • Fixed Index links when using Sphinx/pdfbuilder.
  • Fixed  Issue 360 : Set literal.wordWrap to None by default so it doesn't inherit wordWrap CJK when you use the otherwise correct japanese settings. In any case, literal blocks are not supposed to wrap at all.
  • Switched pdfbuilder to use SplitTables by default (it made no sense not to do it)
  • Fixed  Issue 365 : some TTF fonts don't validate but they work anyway.
  • Set a valid default baseurl for Sphinx (makes it much faster!)
  • New feature: --use-numbered-links to show section numbers in links to sections, like "See section 2.3 Termination"
  • Added stylesheets for landscape paper sizes (i.e: a4-landscape.style)
  • Fixed  Issue 364 : Some options not respected when passed in per-doc options in sphinx.
  • Fixed  Issue 361 : multiple linebreaks in line blocks were collapsed.
  • Fixed  Issue 363 : strange characters in some cases in math directive.
  • Fixed  Issue 362 : Smarter auto-enclosing of equations in $...$
  • Fixed Issue 358: --real--footnotes defaults to False, but help text indicates default is True
  • Fixed  Issue 356 : missing cells if a cell spawns rows and columns.
  • Fixed  Issue 349 : Work correctly with languages that are available in form aa_bb and not aa (example: zh_cn)
  • Fixed  Issue 345 : give file/line info when there is an error in a raw PDF directive.
  • Fixed  Issue 336 : JPEG images should work even without PIL (but give a warning because sizes will probably be wrong)
  • Fixed  Issue 351 : footnote/citation references were generated incorrectly, which caused problems if there was a citation with the same text as a heading.
  • Fixed  Issue 353 : better handling of graphviz, so that it works without vectorpdf but gives a warning about it.
  • Fixed bug where nested lists broke page layout if the page was small.
  • Smarter --inline-links option
  • New feature: tab-width option in code-block directive (defaults to 8).
  • Fixed  Issue 335 : ugly crash when using images in some specific places (looks like a reportlab bug)
  • Fixed  Issue 329 : make the figure alignment/class attributes work more like LaTeX than

HTML.

  • Fixed  Issue 186 : new --use-floating-images makes images with :align: set work like in HTML, with the next flowable flowing beside it.
  • Fixed  Issue 307 : header/footer from stylesheet now supports inline rest markup and substitutions defined in the main document.
  • New pdf_toc_depth option for Sphinx/pdfbuilder
  • New pdf_use_toc option for Sphinx/pdfbuilder
  • Fixed  Issue 323 : errors in the config.sample made it work weird.
  • Fixed  Issue 322 : Image substitutions didn't work in document title.
  • Implemented  Issue 321 : underline and strikethrough available in stylesheet.
  • Fixed  Issue 317 : Ugly error message when file does not exist

New in 0.15

  • Fixed  Issue 315 : crash when using an undefined class for a list.
  • Fixed Issue 110: new --real-footnotes option (buggy).
  • Fixed  Issue 65 : References to Helvetica/Times when it was not used.
  • Fixed  Issue 310 : added option linenos_offset to code blocks.
  • Fixed  Issue 305 : support wildcards in image name and then use the best one available.
  • Improved widow/orphan support for literal blocks
  • Fixed  Issue 304 : Code blocks didn't respect fontSize in class.

New in 0.14.2

  • Fixed  Issue 301 : Respect paddings in SplitTables (list items)

New in 0.14.1

  • Make it compatible with Sphinx 0.6.3 again

New in 0.14

  • Fixed  Issue 297 : styles from default.json leaked onto other syntax highlighting stylesheets.
  • Fixed  Issue 295 : keyword replacement in headers/footers didn't work if ###Page### and others was inside a table.
  • New feature: oddeven directive to display alternative content on odd/even pages (good for headers/footers!)
  • Switched all stylesheets to more readable RSON format.
  • Fixed  Issue 294 : Images were deformed when only height was specified.
  • Fixed  Issue 293 : Accept left/center/right as alignments in stylesheets.
  • Fixed  Issue 292 : separate style for line numbers in codeblocks
  • Fixed  Issue 104 : total number of pages in header/footer works in all cases now.
  • Fixed  Issue 168 : linenos and linenothreshold options in Sphinx now work correctly.
  • Fixed regression in 0.12 (interaction between rst2pdf and sphinx math)
  • Documented extensions in the manual
  • Better font finding in windows (patch by techtonik,  Issue 282 ).
  • Fixed  Issue 166 : Implemented Sphinx's hlist (horizontal lists)
  • Fixed  Issue 165 : Definition lists not properly indented inside admonitions or tables.
  • SVG Images work inline when using the inkscape extension.

New in 0.13

  • New TOC code (supports dots between title and page number)
  • New extension framework
  • New preprocessor extension
  • New vectorpdf extension

  • Support for nested stylesheets

  • New headerSeparator/footerSeparator stylesheet options
  • Foreground image support (useful for watermarks)
  • Support transparency (alpha channel) when specifying colors
  • Inkscape extension for much better SVG support
  • Ability to show total page count in header/footer
  • New RSON format for stylesheets (JSON superset)
  • Fixed  Issue 251 : added support for rst2pdf extensions when using sphinx
  • Fixed  Issue 256 : ugly crash when using SVG images without SVG support
  • Fixed  Issue 257 : support aafigure when using sphinx/pdfbuilder
  • Initial support for graphviz extension in pdfbuilder
  • Fixed  Issue 249 : Images distorted when specifiying width and height
  • Fixed  Issue 224 : Tables can be left/center/right aligned in the page.
  • Fixed  Issue 243 : Wrong spacing for second paragraphs in bullet lists.
  • Big refactoring of the code.
  • Support for Python 2.4
  • Fully reworked test suite, continuous integration site.
  • Optionally use SWFtools for PDF images

New in 0.12.3

New in 0.12.2

  • Added pdf_default_dpi option for pdfbuilder
  • More style docs in the manual
  • Better styling of lists
  • Fix bug reported in comments in my blog where a stylesheet with showHeader=True and no explicit header caused an exception.

New in 0.12.1

  • Ship local patched copy of pypoppler-qt4
  • Switched --enable-splittables to True by default

New in 0.12

  • Bookrest: A GUI frontend
  • New "options" section in stylesheets. New ["options"]["stylesheets"] subsection, which works similar to -s or to an include file: a list of stylesheets to be processed before the current one.
  • New --config option
  • Fix For  Issue 188  (uniconvertor "'unicode' object has no attribute 'readline'" error)
  • New raw directive command: SetPageCounter. This enables page counter manipulation, and use of different styles, roman, lowerroman, alpha, loweralpha and arabic.
  • New raw directive commands: EvenPageBreak and OddPageBreak
  • New option to make sections break to odd or even pages: --break-side=VALUE
  • New option to make sections break to odd or even pages: --break-side=VALUE
  • Fixed bug in authors field width calculation
  • Support % in bullet and field lists column widths
  • Use bullet_list or item_list styles for bullet and item lists respectively.
  • Support % in field list column width description.
  • New admonition code based on SplitTable (beta quality)
  • Fix for  Issue 180  (support for very very long list items. Needs testing)
  • Worked around  Issue 173  (quotes didn't indent inside table cells)
  • Respect spaceBefore and spaceAfter for footnotes/endnotes
  • Added tests for (almost) all of sphinx's custom markup
  • Fixed  Issue 159  (Admonition and table widths were miscalculated)
  • Changed default language policy as described in  Issue 53 
  • Fixed  Issue 148  (Images should be looked for relative to source document)
  • Fixed  Issue 155  (crash when sidebars split in a certain way)
  • Fixed  issue 152  (padding and alignment of table styles, like when using literal blocks inside lists)
  • Integrated pdfbuilder sphinx extension (more work needed)
  • Kerning support for true type fonts (thanks to wordaxe!), added to the docs, added convenience stylesheet.
  • Fixed problem in admonition titles.
  • Fixed section names in headers/footers: FIRST section on the page is used, not LAST.
  • Fixed bug: paragraphs with ids should have the matching anchors
  • Fixed bug: internal references were not linked correctly
  • Fixed  Issue 144 : PDF TOC had wrong page numbers in some cases
  • More sphinx compatibility
  • New table styles code, also make class directive work for tables
  • Fixed  Issue 140 : html-like markup in titles was kept in the PDF TOC
  • Fixed  Issue 138 : Better figure styling. Also fixed bugs in BoxedContainer
  • Fixed  Issue 137 : bugs in escaping characters in interpreted roles
  • Make it work (in a slightly degraded mode) without PIL, as long as you are only using JPGs or have PythonMagick installed.
  • Fixed  issue 134 : entities were replaced in interpreted roles
  • AAFigure support (diagrams using ASCII art)

New in 0.11

  • Implemented  issue 127 : support images in PDF format. Right now they are rasterized, so it's not ideal. Perhaps something better will come up later.
  • Fixed  issue 129 : make it work around a prblem with KeepTogether in RL 2.1 it probably makes the output look worse in some cases when using that. RL 2.1 is not really supported, so added a warning.
  • Fixed  issue 130 : use os.pathsep instead of ":" since ":" in windows is used in disk names (and we still pay for DOS idiocy, in 2009)
  • Ugly bugfix for  Issue 126 : crashes when using images in header + TOC
  • More configurable list layouts and more powerful table styling
  • Better syntax highlighting (supports bold/italic)
  • New collection of utility stylesheets (change paper size, default font, etc with just a command)
  • Better support for %width in images
  • Better handling of missing images
  • Added styles abstract, contents, dedication, fieldvalue, optionlist, topic-title,
  • Vertical alignment for inline images (:align: parameter)
  •  Issue 118 : Support for :scale: in images and handle resizing of inline images
  • New background property for page templates (nice for presentations, for example)
  • Support all required measurement units ("em" "ex" "px" "in" "cm"
  • "mm" "pt" "pc" "%" "")
  • New automated scripts to check test cases for "visual differences"
  • Tested with Reportlab SVN trunk
  • Support for Dinu Gherman's svglib

New in 0.10.1

New in 0.10

  •  Issue 87 : Table headers can be repeated in each page (thanks to Yasushi Masuda)
  •  Issue 93 : Line number support for code blocks (:linenos: true)
  •  Issue 107 : Support localized directives/roles (example: sommaire instead of contents)
  •  Issue 98 : Nobreak support, and set as default for inline-literals so they don't hyphenate.
  • Slightly better tests
  • Background colors in text styles work with reportlab 2.3
  •  Issue 99 : Fixed hyphenation in headers/footers (requires wordaxe 0.3.2)
  •  Issue 102 : Implemented styles for bulleted and numbered lists
  •  Issue 38 : Default headers/footers via options, config file or stylesheet
  •  Issue 83 : Fixed bug with numeric colors in backColor attribute
  • Proper translation of labels (such as "Author", "Version" etc.) using the
  • docutils languages package. (r473)
  • Fixed problems with wrong or non-existing fonts. (r484)
  • Page transition effect support for presentations (r423)

New in 0.9

  • Math support via matplotlib (no TeX required)
  • Huge bugs fixed
  • Support lists that don' t start at 1
  • Nicer definition lists

New in 0.8.1

  • Support for more complex headers and footers (including image directives and tables)
  • Optional inline links
  • Wordaxe 0.2.6 support
  • Several bugs fixed (issues 48,68,41,60,58,64,67)
  • Support for system-wide config file
  • Better author metadata

New in 0.8

  • Support for vector graphics: SVG, EPS, PS, CDR and others (requires uniconvertor)
  • Support for stdin and stdout, so you can use rst2pdf in pipes.
  • Works with reportlab 2.2
  • Simpler stylesheets (guess bulletFontName, leading, bulletFontSize from other parameters)
  • Some support for sphinx
  • Fixed the docutils Writer interface
  • Fix crash when an image is missing
  • Support for config file
  • Font sizes can be expressed in units or % of parent style's size
  • Larger font size in the default stylesheet

New in 0.7

  • Automatic Type1 and True Type font embedding. Just use the font or family name, and (with a little luck), it will be embedded for you.
  • width attribute in styles, to create narrow paragraphs/tables
  • Styles for table headers and table cells.
  • "Zebra tables".
  • Improvements in the handling of overflowing literal blocks (code, for instance)
  • Different modes to handle too-large literal blocks: overflow/truncate/shrink/error.
  • Real sidebars and "floating" elements.
  • Fixed link style (no ugly black underlining!)

New in 0.6

  • Stylesheet-defined page layout (For example, multicolumn) and layout switching
  • Cascading Stylesheets (change exactly what you need changed)
  • PDF table of contents
  • Current section names and numbers in headers/footers
  • Support for compressed PDF files
  • Link color is configurable
  • Fixed bugs in color handling
  • Multilingual hyphenation
  • Auto-guessing image size, support for sizes in %
  • Gutter margins
  • Big refactoring
  • More tolerant of minor problems
  • Limited raw directive (you can insert pagebreaks and vertical space)
  • Implemented a "traditional" docutils writer
  • Offer a reasonable API for use as a library
  • Fixed copyright/licensing
  • code-block now supports including files (whole or in part) so you can highlight external code.

New in 0.5

  • Support for :widths: in tables
  • Support for captions in tables
  • Support for multi-row headers in tables
  • Improved definition lists
  • Fixed bug in image directive
  • Whitespace conforming to PEP8
  • Fixed bug in text size on code-block
  • Package is more setuptools compliant
  • Fix for option groups in option lists
  • Citations support
  • Title reference role fix

New in 0.4

  • Fixed bullet and item lists indentation/nesting.
  • Implemented citations
  • Working links between footnotes and its references
  • Justification enabled by default
  • Fixed table bug (demo.txt works now)
  • Title and author support in PDF properties
  • Support for document title in header/footer
  • Custom page sizes and margins

New in 0.3

  • Font embedding (use any True Type font in your PDFs)
  • Syntax highlighter using Pygments
  • User's manual
  • External/custom stylesheets
  • Support for page numbers in header/footer
Powered by Google Project Hosting