Skip to main content

Takes a variety of lighweight markup files and returns PDFs styled with provided css (via WeasyPrint)

Project description

Lightweight Markup to PDF Builder

lwm2pdf is a Python script for building lightweight markup content into styled PDFs via WeasyPrint.

To install:

pip install lwm2pdf

Basic usage:

lwm2pdf -i myfile.adoc --open y

Requirements

See pyproject.toml for Python requirements. For optimal asciidoc conversion, I strongly recommend that you install some version of Asciidoctor for asciidoc conversion, but a port of the original asciidoc converter is used as a backup.

Supported Filetypes

Currently, lwm2pdf supports the following filetypes:

  • Asciidoc (.adoc or .asciidoc)
  • Markdown (.md)

Options

Option Description Required?
-i, --input The file to convert (full or relative path) True
-o, --output Output filename and destination (optional) False
-od,--output-dir Output directory and destination (optional); not recommended for use with the -o option False
-s, --stylesheet Select user stylesheet (css) (optional) False
-p, --preserve-buildfiles Preserve buildfiles in output/src in current working directory or buildfile directory False
-b',--buildfile-dir Destination for buildfile(s) directory False
-rsp',--run-smartypants Run smartpants on resultant HTML False
--open "y" or "n" to automatically open or not open the pdf (doesn't ask) 'ask'

Stylesheets and Themes

A "manuscript" stylesheet is provided and selected as default.

Known Issues

Some known issues include:

  • Table handling is not the best
  • All footnotes are rendered as end notes (this is a constraint from WeasyPrint)
  • Markdown support is spotty
  • Code highlighting is not working as expected
  • Image URIs have to be absolute paths for Weasyprint to process them successfully. The script will take care of that...eventually.

Release Notes

v.0.1.4

  • Add option to run smartypants for nicer quotes and things

v.0.1.3

  • Add description for pypy page

v.0.1.2

  • First release to pypi
  • Includes many more tests (~82% coverage)
  • Removes handling of smart quotes due to bugs (noted for future development)
  • Move to a Poetry-based workflow

Project details


Download files

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

Source Distribution

lwm2pdf-0.1.4.tar.gz (12.9 kB view hashes)

Uploaded Source

Built Distribution

lwm2pdf-0.1.4-py3-none-any.whl (15.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page