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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file lwm2pdf-0.1.4.tar.gz.

File metadata

  • Download URL: lwm2pdf-0.1.4.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for lwm2pdf-0.1.4.tar.gz
Algorithm Hash digest
SHA256 c8b4394a6a39b9b999758226a402db1a833044e6ad216add0409810bce77bbf9
MD5 92b969235bcf72498c4dbc7b37277e28
BLAKE2b-256 c7af7605732c4d748aa4374ba0457613ea6a5f444c68aee01e2ad985c16c67c7

See more details on using hashes here.

File details

Details for the file lwm2pdf-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: lwm2pdf-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 15.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for lwm2pdf-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f7ee03f6b1748f60be6b455d4ad3aaf09bfdbc9db8539bf4ea68cd00b7e81e7b
MD5 b64a7b32eb7223f515622ab8f2f3c3f9
BLAKE2b-256 82898b9fb3797504f004be7f2c40566b38bc58df6a0b82926af79c4876701642

See more details on using hashes here.

Supported by

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