# 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](#pagelabels)
* [PageLabelScheme](#pagelabelscheme)
## PageLabels
Inherits from list and represents a list of `PageLabelScheme`s.
### 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
```python
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("output.pdf")
```
Raw data
{
"_id": null,
"home_page": "https://github.com/lovasoa/pagelabels-py",
"name": "pagelabels",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "pdf, page labels, page numbers, title page",
"author": "Ophir LOJKINE",
"author_email": "pere.jobs@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ae/45/e6ee83581c78213e8ccd16a8324b97dfb4c420f0ffad9bddc348d233ad9f/pagelabels-1.2.1.tar.gz",
"platform": null,
"description": "# pagelabels python library\n\nThis is a little library, based on **pdfrw**, that helps manipulate PDF page labels in python.\nIt can parse page labels from a PDF, edit page labels, and write them in a PDF.\n\nFor more info about page labels, see: https://www.w3.org/TR/WCAG20-TECHS/PDF17.html\n\n## Classes\n * [PageLabels](#pagelabels)\n * [PageLabelScheme](#pagelabelscheme)\n\n## PageLabels\nInherits from list and represents a list of `PageLabelScheme`s.\n\n### PageLabels.from_pdf(pdfrwobj)\nStatic method.\nRead page labels from a PdfReader object.\n\n### .write(pdfrwobj)\nWrite the page labels to a PdfReader object.\n\n## PageLabelScheme\nInherits from a named tuple with fields:\n * `startpage` : Index in the PDF where to start numbering pages according to this scheme\n * `style` : one of the strings `arabic`, `roman uppercase`, `letters uppercase`, `roman lowercase`, `letters lowercase`\n * `prefix` : string to prepend to all page labels\n * `firstpagenum` : where to start the index\n\n## Example\n\n```python\nfrom pdfrw import PdfReader, PdfWriter\n\nfrom pagelabels import PageLabels, PageLabelScheme\n\nreader = PdfReader(\"input.pdf\")\nlabels = PageLabels.from_pdf(reader)\nnewlabel = PageLabelScheme(startpage=3, # the index of the page of the PDF where the labels will start\n style=\"roman\", # See options in PageLabelScheme.styles()\n prefix=\"Appendix \",\n firstpagenum=1) # number to attribute to the first page of this index\nlabels.append(newlabel) # Adding our page labels to the existing ones\nlabels.write(reader)\nwriter = PdfWriter()\nwriter.trailer = reader\nwriter.write(\"output.pdf\")\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Python library to manipulate PDF page numbers and labels.",
"version": "1.2.1",
"project_urls": {
"Homepage": "https://github.com/lovasoa/pagelabels-py"
},
"split_keywords": [
"pdf",
" page labels",
" page numbers",
" title page"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7f5e8d76c43f0a427aee4fb66de11c46529538cac72724058bd6428d18bbc316",
"md5": "87e628755aa31c73fa5536c06020b54e",
"sha256": "522401e42c5cd4bec29e2a75a859015053b0691be60d9f97be4faa7ffb4970e4"
},
"downloads": -1,
"filename": "pagelabels-1.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "87e628755aa31c73fa5536c06020b54e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 17621,
"upload_time": "2024-08-03T11:42:11",
"upload_time_iso_8601": "2024-08-03T11:42:11.658137Z",
"url": "https://files.pythonhosted.org/packages/7f/5e/8d76c43f0a427aee4fb66de11c46529538cac72724058bd6428d18bbc316/pagelabels-1.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ae45e6ee83581c78213e8ccd16a8324b97dfb4c420f0ffad9bddc348d233ad9f",
"md5": "d856338491681b09c5f945d9fc193c50",
"sha256": "180132844093a0a9c8581c6761348eb18299063979d1bffcda667af22f08dae8"
},
"downloads": -1,
"filename": "pagelabels-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "d856338491681b09c5f945d9fc193c50",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18433,
"upload_time": "2024-08-03T11:42:13",
"upload_time_iso_8601": "2024-08-03T11:42:13.012427Z",
"url": "https://files.pythonhosted.org/packages/ae/45/e6ee83581c78213e8ccd16a8324b97dfb4c420f0ffad9bddc348d233ad9f/pagelabels-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-03 11:42:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lovasoa",
"github_project": "pagelabels-py",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pagelabels"
}