Skip to main content

A package and CLI for adding page numbering to PDFs

Project description

Add page numbers to a PDF document

pdfnumbering builds on pypdf and fpdf2 to make it easy to stamp page numbers to a PDF document, and provides a convenient CLI tool to do so.

Installation

Install the published version from PyPI:

python -m pip install pdfnumbering

Or the development version from GitHub:

python -m pip install git+https://github.com/mikmart/pdfnumbering.git

Usage

Package

import sys

from pdfnumbering import PdfNumberer
from pypdf import PdfWriter

INPUT_FILE = sys.argv[1]
OUTPUT_FILE = sys.argv[2]

numberer = PdfNumberer()
document = PdfWriter(clone_from=INPUT_FILE)
numberer.add_page_numbering(document.pages)
document.write(OUTPUT_FILE)

Command line interface

$ pdfnumbering --help
usage: pdfnumbering [-h] [-v] [--first-number N] [--ignore-pages [PAGE ...]]
                    [--skip-pages [PAGE ...]] [--stamp-format STRING] [--font-size PT]
                    [--font-family NAME] [--text-color HEX] [--text-align {left,center,right}]
                    [--text-position X Y] [--page-margin X Y] [-o OUTPUT]
                    FILE

Stamp pages in a PDF document with page numbers.

positional arguments:
  FILE                  the input PDF file to stamp

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -o OUTPUT, --output OUTPUT
                        destination to write output to

numbering options:
  --first-number N      number to start counting from (default: 1)
  --ignore-pages [PAGE ...]
                        pages that should not be counted
  --skip-pages [PAGE ...]
                        pages that should not be stamped
  --stamp-format STRING
                        format string for stamp text, formatted with page number and page
                        count (default: "{}")

styling options:
  --font-size PT        font size in points (default: 32)
  --font-family NAME    font family name (default: Helvetica)
  --text-color HEX      hexadecimal color code (default: #ff0000)

placement options:
  --text-align {left,center,right}
                        horizontal alignment of page numbers (default: left)
  --text-position X Y   position of page numbers, in points (default: 0 0)
  --page-margin X Y     margin at the page edges, in points (default: adapts to font size)

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

pdfnumbering-0.1.1.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

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

pdfnumbering-0.1.1-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file pdfnumbering-0.1.1.tar.gz.

File metadata

  • Download URL: pdfnumbering-0.1.1.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for pdfnumbering-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ac4d42a9b872edc4ac82d1a3c0f3b29c7ecb67b8dee74e09ea6e74ccd98556dd
MD5 8a05a2938e3c9ca38ddf7030b3b8c3f2
BLAKE2b-256 8cfef2f7b9746b383c38908447b7404d1cdfb2bc68e56946c00de3a708c11992

See more details on using hashes here.

File details

Details for the file pdfnumbering-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pdfnumbering-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for pdfnumbering-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b08fb836e9184707d4ab034158e635042ae461af55b86cad484526835a596295
MD5 f565b7cefab75777f25f89d524cf1233
BLAKE2b-256 44669fbbc47c0aca9ee88ffc4d6f6fff3d3e9554518fa13a6e4e87962c11dfac

See more details on using hashes here.

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