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]
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 points (1 inch)
-l LAYOUT, --layout LAYOUT
specify grid layout of pictures on page; 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, --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'
Result:
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 with 1x3 pictures per page.
$ pictureshow --margin=36 --layout=1x3 pics/*alpha.png alpha_pngs.pdf
Saved 6 pictures to '/.../alpha_pngs.pdf'
Result:
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')
Result:
Using the pictures_to_pdf shortcut function:
from pictureshow import pictures_to_pdf
pictures_to_pdf('pics/mandelbrot.png', 'pics/mandelbrot.jpg', 'pictures.pdf')
The example above will work as long as the output file is passed as the last positional argument. It is however recommended to always use a keyword argument:
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')
Another example, demonstrating all available keyword parameters:
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
)
Result:
New in version 0.3.2
The page_size and layout parameters can 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).
New in version 0.3.6
The pdf_file parameter can be specified either by a string (just like in the command line interface) or by a path-like object.
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.3.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ce78f7791daaa1d341dc43e12f5e65f96bd9f40cdcc5eb9eedfff5b1308ecb5 |
|
MD5 | 465425e644d48a3791cc66a62335c0a1 |
|
BLAKE2b-256 | c5bea061bbe82e9e9bef0b300c111dc1e785f45fc86193ba88cb2bdd6fd0293e |