Write the PDF document, one slide per page.
(self)
| 342 | |
| 343 | |
| 344 | def saveAsPresentation(self): |
| 345 | """Write the PDF document, one slide per page.""" |
| 346 | if self.verbose: |
| 347 | print 'saving presentation...' |
| 348 | pageSize = (self.pageWidth, self.pageHeight) |
| 349 | if self.sourceFilename: |
| 350 | filename = os.path.splitext(self.sourceFilename)[0] + '.pdf' |
| 351 | if self.outDir: filename = os.path.join(self.outDir,os.path.basename(filename)) |
| 352 | if self.verbose: |
| 353 | print filename |
| 354 | #canv = canvas.Canvas(filename, pagesize = pageSize) |
| 355 | outfile = getStringIO() |
| 356 | if self.notes: |
| 357 | #translate the page from landscape to portrait |
| 358 | pageSize= pageSize[1], pageSize[0] |
| 359 | canv = canvas.Canvas(outfile, pagesize = pageSize) |
| 360 | canv.setPageCompression(self.compression) |
| 361 | canv.setPageDuration(self.pageDuration) |
| 362 | if self.title: |
| 363 | canv.setTitle(self.title) |
| 364 | if self.author: |
| 365 | canv.setAuthor(self.author) |
| 366 | if self.subject: |
| 367 | canv.setSubject(self.subject) |
| 368 | |
| 369 | slideNo = 0 |
| 370 | for slide in self.slides: |
| 371 | #need diagnostic output if something wrong with XML |
| 372 | slideNo = slideNo + 1 |
| 373 | if self.verbose: |
| 374 | print 'doing slide %d, id = %s' % (slideNo, slide.id) |
| 375 | if self.notes: |
| 376 | #frame and shift the slide |
| 377 | #canv.scale(0.67, 0.67) |
| 378 | scale_amt = (min(pageSize)/float(max(pageSize)))*.95 |
| 379 | #canv.translate(self.pageWidth / 6.0, self.pageHeight / 3.0) |
| 380 | #canv.translate(self.pageWidth / 2.0, .025*self.pageHeight) |
| 381 | canv.translate(.025*self.pageHeight, (self.pageWidth/2.0) + 5) |
| 382 | #canv.rotate(90) |
| 383 | canv.scale(scale_amt, scale_amt) |
| 384 | canv.rect(0,0,self.pageWidth, self.pageHeight) |
| 385 | slide.drawOn(canv) |
| 386 | canv.showPage() |
| 387 | |
| 388 | #ensure outline visible by default |
| 389 | if self.showOutline: |
| 390 | canv.showOutline() |
| 391 | |
| 392 | canv.save() |
| 393 | return self.savetofile(outfile, filename) |
| 394 | |
| 395 | |
| 396 | def saveAsHandout(self): |
no test coverage detected