Save pictures to PDF
Project description
Save pictures to PDF from the command line or from your Python programs.
Requirements
Python 3.6 or higher is required. The only third-party dependency is reportlab.
Installation
pip install pictureshow
As a command line tool
Usage:
usage: pictureshow [-h] [-p SIZE] [-L] [-m MARGIN] [-l LAYOUT] [-s] [-f]
[-q | -v] [-V]
PIC [PIC ...] PDF
positional arguments:
PIC one or more input picture file paths
PDF target PDF file path
optional arguments:
-h, --help show this help message and exit
-p SIZE, --page-size SIZE
specify page size; default is A4
-L, --landscape force landscape orientation of page
-m MARGIN, --margin MARGIN
set width of empty space around pictures; default is
72 (72 points = 1 inch)
-l LAYOUT, --layout LAYOUT
specify grid layout of pictures on page, e.g. 2x3 or
2,3; default is 1x1
-s, --stretch-small scale small pictures up to fit drawing area
-f, --force-overwrite
save target file even if filename exists
-q, --quiet suppress printing to stdout
-v, --verbose provide details on files skipped due to error
-V, --version show program's version number and exit
Example 1
Save a single picture to PDF.
$ pictureshow pics/mandelbrot.png mandelbrot.pdf
Saved 1 picture to '/.../mandelbrot.pdf'
Example 2
Select pictures using a glob pattern [1], set page to landscape Letter-sized [2].
$ pictureshow pics/plots/gauss* gauss.pdf -LpLETTER
Saved 2 pictures to '/.../gauss.pdf'
Result:
Example 3
Select pictures using a glob pattern, set half-inch margin and layout of 1x3 pictures per page.
$ pictureshow --margin=36 --layout=1x3 pics/*alpha.png alpha_pngs.pdf
Saved 6 pictures to '/.../alpha_pngs.pdf'
As a Python library
Using the PictureShow class:
from pictureshow import PictureShow
pic_show = PictureShow('pics/mandelbrot.png', 'pics/mandelbrot.jpg')
pic_show.save_pdf('pictures.pdf')
Using the pictures_to_pdf shortcut function:
from pictureshow import pictures_to_pdf
list_of_pictures = ['pics/mandelbrot.png', 'pics/mandelbrot.jpg']
pictures_to_pdf(*list_of_pictures, pdf_file='pictures.pdf')
Please note that unlike the command line interface, pdf_file must be specified as a keyword argument.
Another example, demonstrating all available keyword-only arguments:
from pathlib import Path
from pictureshow import pictures_to_pdf
list_of_pictures = sorted(Path.cwd().glob('pics/oldies/*/*'))
pictures_to_pdf(
*list_of_pictures,
pdf_file='oldies.pdf',
page_size='A5',
landscape=True,
margin=18,
layout=(3, 3),
stretch_small=True,
force_overwrite=True
)
Changelog
version 0.3.2
The page_size and layout arguments can now be specified either by a string (just like in the command line interface) or by a sequence of two numbers. For example, page_size='LETTER', layout='2x3' is equivalent to page_size=(72 * 8.5, 72 * 11), layout=(2, 3).
version 0.3.6
The pdf_file argument can now be specified either by a string (just like in the command line interface) or by a path-like object.
version 0.4.0
pdf_file is now a required keyword-only argument of the pictures_to_pdf function. All positional arguments are treated as paths to input picture files.
Footnotes
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 Distributions
Built Distribution
Hashes for pictureshow-0.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe2f4f7a9fe2376b67b6e6c99c3050cf2c80de9968e23a78e4c38f1274b4f453 |
|
MD5 | 74915c2b25e5aa1d64f5cbc74b24bfc7 |
|
BLAKE2b-256 | a1320e4dd9064cf6046461910e98b221e5a7c4afa7f36a57eb3a7a7a775c7f5c |