add /Pages reference to /Pages object each /page object

This commit is contained in:
josch 2012-06-15 16:59:31 +02:00
parent e1b3710c74
commit 1302315bed

View file

@ -69,6 +69,11 @@ def main(images, dpi, title=None, author=None, creator=None, producer=None,
pagestuples = list()
# create an incomplete pages object so that a /Parent entry can be added to each page
pages = obj({
"/Type": "/Pages"
})
for im in images:
try:
imgdata = Image.open(im)
@ -140,6 +145,7 @@ def main(images, dpi, title=None, author=None, creator=None, producer=None,
page = obj({
"/Type": "/Page",
"/Parent": pages,
"/Resources": {
"/XObject": {
"/Im0": image
@ -151,11 +157,9 @@ def main(images, dpi, title=None, author=None, creator=None, producer=None,
pagestuples.append((image, content, page))
pages = obj({
"/Type": "/Pages",
"/Kids": [ pagetuple[2] for pagetuple in pagestuples ],
"/Count": len(pagestuples)
})
# complete pages object with page information
pages.content["/Kids"] = [ pagetuple[2] for pagetuple in pagestuples ]
pages.content["/Count"] = len(pagestuples)
catalog = obj({
"/Pages": pages,
@ -164,6 +168,7 @@ def main(images, dpi, title=None, author=None, creator=None, producer=None,
objects = list()
objects.append(info.tostring(3*(len(pagestuples)+1)))
pages.identifier = 2 # manually set it because each page references to it
for i, (image, content, page) in enumerate(reversed(pagestuples)):
objects.append(image.tostring(3*(len(pagestuples)-i+1)-1))
objects.append(content.tostring(3*(len(pagestuples)-i+1)-2))