Changeset 686
- Timestamp:
- 01/18/06 08:01:34 (3 years ago)
- Files:
-
- pypdf/trunk/pyPdf/pdf.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
pypdf/trunk/pyPdf/pdf.py
r674 r686 173 173 return self.flattenedPages[pageNumber] 174 174 175 def flatten(self, pages = None): 175 def flatten(self, pages = None, inherit = None): 176 inheritablePageAttributes = ( 177 NameObject("/Resources"), NameObject("/MediaBox"), 178 NameObject("/CropBox"), NameObject("/Rotate") 179 ) 180 if inherit == None: 181 inherit = dict() 176 182 if pages == None: 177 183 self.flattenedPages = [] … … 182 188 t = pages["/Type"] 183 189 if t == "/Pages": 190 for attr in inheritablePageAttributes: 191 if pages.has_key(attr): 192 inherit[attr] = t[attr] 184 193 for page in pages["/Kids"]: 185 self.flatten(page )194 self.flatten(page, inherit) 186 195 elif t == "/Page": 187 self.flattenedPages.append(pages) 196 for attr,value in inherit.items(): 197 # if the page has it's own value, it does not inherit the 198 # parent's value: 199 if not pages.has_key(attr): 200 pages[attr] = value 201 pageObj = PageObject() 202 pageObj.update(pages) 203 self.flattenedPages.append(pageObj) 188 204 189 205 def getObject(self, indirectReference): … … 560 576 561 577 578 class PageObject(DictionaryObject): 579 def rotateClockwise(self, angle): 580 assert angle % 90 == 0 581 self.__rotate(angle) 582 return self 583 584 def rotateCounterClockwise(self, angle): 585 assert angle %90 == 0 586 self.__rotate(-angle) 587 return self 588 589 def __rotate(self, angle): 590 currentAngle = self.get("/Rotate", 0) 591 self[NameObject("/Rotate")] = NumberObject(currentAngle + angle) 592 593 562 594 def readUntilWhitespace(stream): 563 595 txt = "" … … 576 608 577 609 610 if __name__ == "__main__": 611 input = PdfFileReader(file("cc-cc.pdf", "rb")) 612 output = PdfFileWriter() 613 output.addPage(input.getPage(0).rotateClockwise(90)) 614 output.write(file("cc-cc-test.pdf", "wb"))
