Provides an API to convert web pages to PDF
Project description
Provides a simple Web API to convert web pages to PDF and PNG using WeasyPrint.
Dependencies
Flask
WeasyPrint
Install
Ensure you have a complete Python 3 installation. On Debian / Ubuntu, run (as root):
apt install build-essential python3 python3-dev python3-venv
Then, to install Saltimbanque from PyPI, run (as root):
mkdir -p /opt/saltimbanque python3 -m venv /opt/saltimbanque/env /opt/saltimbanque/env/bin/pip install saltimbanque gunicorn
Alternatively, to install it from Git, run (as root):
mkdir -p /opt/saltimbanque git clone https://github.com/wanadev/saltimbanque.git /opt/saltimbanque/saltimbanque.git python3 -m venv /opt/saltimbanque/env /opt/saltimbanque/env/bin/pip install gunicorn /opt/saltimbanque/env/bin/pip install -e /opt/saltimbanque/saltimbanque.git
NOTE: If you need the export webpage to PNG, you should install an older WeasyPrint version:
/opt/saltimbanque/env/bin/pip install weasyprint==52.5
Usage
To run Saltimbanque:
/opt/saltimbanque/env/bin/gunicorn -w 4 saltimbanque:app
By default it will listen to port 8000. To run it on an other port:
/opt/saltimbanque/env/bin/gunicorn -w 4 -b 127.0.0.1:8888 saltimbanque:app
Important notes:
It is recommanded to use supervisor or systemd to start the Saltimbanque server.
You should also consider to setup a proxy server like Nginx in front of Gunicorn.
You can now open the Saltimbanque root route in your browser to access a demo web page:
API
To build a PDF from a web page:
http://localhost:8000/html-to-pdf/<string:base64_url>
To build a PNG from a web page:
http://localhost:8000/html-to-png/<string:base64_url>
Where:
base64_url is the URL of the HTML document, encoded in base64.
NOTE: html-to-png is no more available since WeasyPrint 53. You should install an older WeasyPrint version if you need this feature. For more information see https://www.courtbouillon.org/blog/00008-weasyprint-53-beta/ .
Contributing
Questions
If you have any question, you can:
Open an issue on GitHub
Bugs
Please open an issue on GitHub with as much information as possible if you found a bug:
Your operating system / Linux distribution (and its version)
How you installed the software
All the logs and message outputted by the software
etc.
Pull requests
Please consider filing a bug before starting to work on a new feature; it will allow us to discuss the best way to do it. It is obviously unnecessary if you just want to fix a typo or small errors in the code.
Please note that your code must follow the coding style defined by the pep8. Black and Flake8 are used on this project to enforce the coding style.
Lint the code
You must install Nox first:
pip install nox
Then you can check for lint error:
nox --session lint
You can also fix coding style errors automatically with:
nox -s black_fix
Setup / Run Saltimbanque for dev
Install dependencies:
python3 -m venv __env__ __env__/bin/pip install -e ".[dev]"
Run:
__env__/bin/flask run
Changelog
[NEXT] (changes on master, but not released yet):
Nothing yet ;)
v1.2.1:
misc: Added missing AGPL license
v1.2.0:
Fixes deployment
Updates dependencies
Adds PNG raster function in addition to PDF
v1.1.1: Fix encoding issue when decoding URLs
v1.1.0: Encode URL in base64 to avoid issue when used with an Nginx front
v1.0.1: Update deploy config
v1.0.0: Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file saltimbanque-1.2.1.tar.gz
.
File metadata
- Download URL: saltimbanque-1.2.1.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6940594e226631b1d2886f47237f8e4f9d56b53d4626a0499b62d212ce78732e |
|
MD5 | facc53aac0154b5df90425a9ddbe2c52 |
|
BLAKE2b-256 | a689577515cbebcb6fc76bd2e9e8f2cca4306ca347b8fee85d35067d9c3eb333 |
File details
Details for the file saltimbanque-1.2.1-py3-none-any.whl
.
File metadata
- Download URL: saltimbanque-1.2.1-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47e30b103f9c4ddb43e9137c9d57f39f287028636a5d58b276d85c339554bb45 |
|
MD5 | 250063edeca7f8a49ed46b478fb09575 |
|
BLAKE2b-256 | 339b5595ea4fd368d893cf4dc597cb10f05a5483df331db79fde6add1a5fec0a |