Skip to main content

Python library to manipulate PDF page numbers and labels.

Project description

pagelabels python library

This is a little library, based on pdfrw, that helps manipulate PDF page labels in python. It can parse page labels from a PDF, edit page labels, and write them in a PDF.

For more info about page labels, see: https://www.w3.org/TR/WCAG20-TECHS/PDF17.html

Classes

PageLabels

Inherits from list and represents a list of PageLabelSchemes.

PageLabels.from_pdf(pdfrwobj)

Static method. Read page labels from a PdfReader object.

.write(pdfrwobj)

Write the page labels to a PdfReader object.

PageLabelScheme

Inherits from a named tuple with fields:

  • startpage : Index in the PDF where to start numbering pages according to this scheme
  • style : one of the strings arabic, roman uppercase, letters uppercase, roman lowercase, letters lowercase
  • prefix : string to prepend to all page labels
  • firstpagenum : where to start the index

Example

from pdfrw import PdfReader, PdfWriter

from pagelabels import PageLabels, PageLabelScheme

reader = PdfReader("input.pdf")
labels = PageLabels.from_pdf(reader)
newlabel = PageLabelScheme(startpage=3, # the index of the page of the PDF where the labels will start
                           style="roman", # See options in PageLabelScheme.styles()
                           prefix="Appendix ",
                           firstpagenum=1) # number to attribute to the first page of this index
labels.append(newlabel) # Adding our page labels to the existing ones
labels.write(reader)
writer = PdfWriter()
writer.trailer = reader
writer.write("optput.pdf")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pagelabels, version 1.0.1
Filename, size File type Python version Upload date Hashes
Filename, size pagelabels-1.0.1-py3-none-any.whl (16.5 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size pagelabels-1.0.1.tar.gz (4.2 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page