Skip to main content

Automatically generate and edit PDF table of contents / outline

Project description

PDF Auto Outline

Automatically generate and embed a table of contents or outline in a PDF.

Install: python -m pip install pdf-auto-outline

Suggestions and contributions are welcome.

Usage

usage: pdfao [-h] [-s] [-o <path>] [-mp <n>] [-e] [-se] [-i <file>] [-t <n>] [--sioyek <path>] [--version] filename

positional arguments:
  filename              input pdf

options:
  -h, --help            show this help message and exit
  -s, --straight        write toc straight to pdf; skip editing
  -o, --out <path>      write changes to new pdf
  -mp, --multiprocess <n>
                        spread job over n processes (faster on Linux)
  -e, --edit            edit pdf toc
  -se, --superedit      edit pdf toc (more attibutes available)
  -i, --infile <file>   write toc from file to pdf
  -t, --tablevel <n>    tab = n toc nesting levels (default 2)
  --sioyek <path>       for users of the Sioyek pdf viewer
  --version             show program's version number and exit

[!NOTE] Multiprocessing on Windows and MacOS is considerably slower than on Linux. Users are encouraged to test and see what works best for them.

Examples

Generate toc and edit before saving: pdfao paper.pdf

Generate and save to new pdf: pdfao paper.pdf -o new.pdf

Edit exiting pdf toc: pdfao paper.pdf -e

A save toc to new pdf from file: pdfao paper.pdf -o new.pdf -i outline.txt

Editing

The edit command opens the TOC in the OS default editor (result of 'start' command on Windows and 'EDITOR' environment variable on MacOS and Linux). The file schema is something like this:

Title 1  |  1
    Title 2  |  2  |  *
                 ^^^^^^
				 optional		

The essential parts of each line are:

  • Indentation - 4 space characters per nesting level (or use tabs with the -t flag).
  • Title text
  • Delimiter - ' | ' (vertical bar with 2 spaces padding on each side)
  • Page number

The optional part can be one of:

  |  None                  	same as not including it   
  |  241.2					y-ordinate 
  |  {<dictionary>}			dictionary with more attributes for the ToC entry

For Sioyek Users

Example commands; add to prefs_user.config.

new_command _gen_toc pdfao "%{file_path}" --sioyek path/to/sioyek -mp 4
new_command _edit_toc pdfao "%{file_path}" -e

The sioyek library and flag are optional; they allow logging to the status bar. This is more useful for ToC generation where you may want a progress bar.

If you don't wish to install from PyPI, download source and use python3 -m path/to/src/pdf_auto_outline in place of pdfao.

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

pdf_auto_outline-0.1.7.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.

pdf_auto_outline-0.1.7-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file pdf_auto_outline-0.1.7.tar.gz.

File metadata

  • Download URL: pdf_auto_outline-0.1.7.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for pdf_auto_outline-0.1.7.tar.gz
Algorithm Hash digest
SHA256 df01c1bc49e83117f38d20943c43ee0d47eebc2719e54adbc079342c119f4c96
MD5 82be562c09484bede2b6843257670db6
BLAKE2b-256 71e468fddde51f87f81006f0a4e4871a1f40da0f2ae42d2a1891607894a60506

See more details on using hashes here.

File details

Details for the file pdf_auto_outline-0.1.7-py3-none-any.whl.

File metadata

File hashes

Hashes for pdf_auto_outline-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3c540474115a456f48fb8767da7a50e9d8ecedb8092c90dae715795852cd5327
MD5 f9db26972d16d54d55db6f4a964b25d6
BLAKE2b-256 668dd8bcb953506e8a7599d4228a81c670584273339710acb8b0cc748ffccde9

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