Skip to main content

a mkdocs theme for generate pdf or printing

Project description

This is a mkdocs theme, this supports some CSS-styles to publish your documents with PDF or printing.Please see the 'Demo' section


a mkdocs theme to generate pdf or print.


Prerequiresites/ Dependency

This plugin aim to use these softwares

  • mkdocs (convert markdown to html)
  • paged.js (to generate pdf, page borders and page headers)
  • node.js (to generate pdf, for pagedjs-cli)

Installation - this plugin

Install this package with pip.

from PyPi

pip install mkdocs-theme-topdf

from github

pip install git+

Installation - paged.js

so paged.js uses node.js and portable chrome, it is separate from mkdocs theme.

to prepare paged.js, follow these method.

from this plugin

python -m topdf --check
> ... check node.js and npm ...
python -m topdf --setup
> ... install take long time ...
python -m topdf --test
> output report-3stamps.pdf

from manual

$ npm install pagedjs-cli
... take long time ...
$ ./node_modules/.bin/pagedjs-cli
... paged.js message ...

How to use


to use mkdocs theme see material theme documentation

setup mkdocs.yml

change mkdocs.yml to use this plugin.

site_name: the test document
    name: topdf

write markdown

write your document

convert with paged.js

$ pagedjs-cli --outline-tags h1,h2,h3,h4,h5,h6 site/your/document.html
     -o document.pdf  # 1-line

About PDF output

  • paged.js render the PDF with portable chrome and pupetter
    please watch out the difference of rendering results among
    them engine and your browser.
  • wkhtmltopdf render the PDF with webkit (old)
    and stable release (0.12.5) can not generate TOC with its limitation.
    wkhtmltopdf is more convinient to install, but
    I can't resolve the TOC problem and switched to paged.js


a sample output of PDF

screenshot in pdf viewer

About scripts and styles

please see the report sample




{: .before-dl-table .table2-8 }

version : desc

0.4.0 : append CSS-counters for figures and tables.

0.3.0 : append theme to the package name

0.2.7 : TOC and styles

0.2.6 : append explanation for paged.js TOC and styles

0.2.5 : append explanation for paged.js styles

0.2.4 : append explanation for paged.js styles

0.2.3 : append slash line to the no-stamp cells.

0.2.2 : append screenshot

0.2.1 : append explanation for dl-dt-dd tables

0.2.0 : start to edit/ 3stamps

0.1.2 : start to use paged.js

0.1.1 : start to use mkhtmltopdf

0.1.0 : append dl-dt-dd tables

0.0.6 : start to edit


If you are feel to nice for this software, please donation to my

  • Bitcoin | 1FTBAUaVdeGG9EPsGMD5j2SW8QHNc5HzjT |
  • or Ether | 0xd7Dc5cd13BD7636664D6bf0Ee8424CFaF6b2FA8f | .

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

mkdocs-theme-topdf-0.5.0.tar.gz (8.6 kB view hashes)

Uploaded source

Built Distribution

mkdocs_theme_topdf-0.5.0-py3-none-any.whl (16.6 kB view hashes)

Uploaded py3

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