Skip to main content

Save pictures to PDF.

Project description

test-build-publish coverage pre-commit.ci pre-commit bandit release pyversions

Save pictures to PDF documents from the command line and from your Python programs.

Installation

pip install pictureshow

Usage

As a command line tool

usage: pictureshow [options] PICTURE [PICTURE ...] -o PATH

positional arguments:
  PICTURE               one or more input file paths

options:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  -q, --quiet           do not print output to stdout
  -v, --verbose         show details of input files skipped due to error
  -F, --fail MODE       control the exit code: 'skipped' exits with code 2 if
                        at least one input file was skipped due to an error;
                        'no-output' (default) exits with code 2 if all files
                        were skipped and no PDF file was saved; 'no' exits
                        with code 0 even if all files were skipped

output file options:
  -o, --output-file PATH
                        path of the output PDF file (required)
  -f, --force-overwrite
                        save to output file path even if file exists

page properties options:
  -p, --page-size SIZE  specify page size; default is A4 (available sizes: A0,
                        A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, B0, B1, B2,
                        B3, B4, B5, B6, B7, B8, B9, B10, C0, C1, C2, C3, C4,
                        C5, C6, C7, C8, C9, C10, LETTER, LEGAL,
                        ELEVENSEVENTEEN, JUNIOR_LEGAL, HALF_LETTER,
                        GOV_LETTER, GOV_LEGAL, TABLOID, LEDGER)
  -L, --landscape       set landscape orientation of pages
  -b, --bg-color COLOR  specify page background color as 6-digit hexadecimal
                        RGB, e.g. ff8c00

picture layout options:
  -l, --layout LAYOUT   specify grid layout (columns x rows) of pictures on
                        page, e.g. 2x3 or 2,3; default is 1x1
  -m, --margin MARGIN   set width of empty space around the cells containing
                        pictures; default is 72 (72 points = 1 inch)
  -s, --stretch-small   scale small pictures up to fit cells
  -c, --fill-cell       fill cells with pictures, ignoring the pictures'
                        aspect ratio

Examples

Save single picture to PDF:

$ pictureshow pics/potato.jpg -o potato.pdf
.
Saved 1 picture (1 page) to 'potato.pdf'

Save multiple pictures, four pictures per page (two columns, two rows), set page orientation to landscape:

$ pictureshow -l 2x2 -L vegetables/* -o vegetables
..................................................
Saved 50 pictures (13 pages) to 'vegetables.pdf'

(Please note that if the output filename has no extension specified, .pdf will be appended to it. This only applies for the command line tool.)

You can also save pictures from URLs:

$ pictureshow https://httpbin.org/image/jpeg https://httpbin.org/image/png -o pics
..
Saved 2 pictures (2 pages) to 'pics.pdf'

But please note that this feature is not tested and depends solely on the underlying reportlab backend.

As a Python library

Using the PictureShow class

Example:

from pictureshow import PictureShow

pictures = PictureShow(
    'pics/cucumber.jpg',
    'pics/onion.jpg',
)
pictures.save_pdf('vegetables.pdf')

The customization parameters of the save_pdf method are keyword-only and their default values correspond to the above shown command line options:

PictureShow.save_pdf(
    output_file,
    *,
    force_overwrite=False,
    page_size='A4',
    landscape=False,
    bg_color=None,
    layout=(1, 1),
    margin=72,
    stretch_small=False,
    fill_cell=False,
)

Using the pictures_to_pdf shortcut function

Example:

from pictureshow import pictures_to_pdf

pictures_to_pdf(
    'pics/cucumber.jpg',
    'pics/onion.jpg',
    output_file='vegetables.pdf',
)

The customization parameters of the pictures_to_pdf function are keyword-only and their default values correspond to the above shown command line options:

pictures_to_pdf(
    *pic_files,
    output_file,
    force_overwrite=False,
    page_size='A4',
    landscape=False,
    bg_color=None,
    layout=(1, 1),
    margin=72,
    stretch_small=False,
    fill_cell=False,
)

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

pictureshow-0.13.1.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pictureshow-0.13.1-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file pictureshow-0.13.1.tar.gz.

File metadata

  • Download URL: pictureshow-0.13.1.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pictureshow-0.13.1.tar.gz
Algorithm Hash digest
SHA256 b845619e4089bd6c75d5f1c0fadb9a59b1c6efe024a7d400f3dbb29f4ada3ea8
MD5 24a2ea0a976697e6b4d5c61986b9efb3
BLAKE2b-256 70e58ea888c1fabb852380e0b5816f8429ae4d2cda1a35d4af98ff10f317ba26

See more details on using hashes here.

Provenance

The following attestation bundles were made for pictureshow-0.13.1.tar.gz:

Publisher: test-build-publish.yml on mportesdev/pictureshow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pictureshow-0.13.1-py3-none-any.whl.

File metadata

  • Download URL: pictureshow-0.13.1-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pictureshow-0.13.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0e93d8e9def283e5303ce365372c27de438f7673674de768cdea411ba36ad82c
MD5 5fa5d69009a3c95cb4614944f565e058
BLAKE2b-256 023da176482cb521e9a05de8e7b929b8148c48aa5cac98dbf4cbad427f300377

See more details on using hashes here.

Provenance

The following attestation bundles were made for pictureshow-0.13.1-py3-none-any.whl:

Publisher: test-build-publish.yml on mportesdev/pictureshow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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