[reportlab-users] getting PDF page labels

1 view
Skip to first unread message

Jeffrey O'Neill

unread,
Nov 14, 2009, 11:51:08 AM11/14/09
to reportl...@lists2.reportlab.com
A couple of weeks ago, Christian Jacobsen posted a great example of
how to set the page labels so that a document could have pages, e.g.,
i, ii, ... vi, 1, 2, ..., 100. I'm pasting that example below for
reference.

Is there a way to access the pdf page labels so that I can use them in
drawing the page numbers on the page and including them in a table of
contents?

Jeff


-------------8<-------------------8<-------------------8<------------------
from reportlab.pdfgen import canvas
from reportlab.lib.units import cm
c = canvas.Canvas("page_numbering.pdf")
c.addPageLabel(c.getPageNumber()-1, 'ROMAN_LOWER')
for num in ['i', 'ii', 'iii', 'iv', 'v']:
c.drawString(3*cm, 3*cm, num)
c.showPage()
c.addPageLabel(c.getPageNumber()-1, 'ARABIC')
for num in range(1,5):
c.drawString(3*cm, 3*cm, str(num))
c.showPage()
c.addPageLabel(c.getPageNumber()-1, 'ARABIC', 10)
for num in range(10,15):
c.drawString(3*cm, 3*cm, str(num))
c.showPage()
c.addPageLabel(c.getPageNumber()-1, 'ARABIC', prefix='A.')
for num in range(1,5):
c.drawString(3*cm, 3*cm, 'A.' + str(num))
c.showPage()
c.save()
_______________________________________________
reportlab-users mailing list
reportl...@lists2.reportlab.com
http://two.pairlist.net/mailman/listinfo/reportlab-users

Christian Jacobsen

unread,
Nov 14, 2009, 12:27:19 PM11/14/09
to For users of Reportlab open source software
I don't think you are going to find anything useful that you can
access to draw the page numbers. You will probably have to just keep
track of the numbering in your program and generate both PageLabels
and actual printed page numbers from your own page numbering data.

What is actually stored in the PDF is just a reference for each time
the page numbering changes. Each page does not store its page number
and numbering system, this is calculated by the PDF reader when the
page is displayed. Thus there is nothing which will let you query the
logical page number (PageLabel) of a particular page directly from the
PDF.

Christian

2009/11/14 Jeffrey O'Neill <jeff....@openstv.org>:

Reply all
Reply to author
Forward
0 new messages