def convert_pdf2swf(pdf_doc): if not isinstance(pdf_doc, basestring): try: pdf_doc = pdf_doc.read() except AttributeError: return None pdf_temp_file = tempfile.NamedTemporaryFile(delete=False) swf_temp_file = tempfile.NamedTemporaryFile(delete=False) pdf_temp_filename = pdf_temp_file.name swf_temp_filename = swf_temp_file.name pdf_temp_file.write(pdf_doc) pdf_temp_file.close() swf_temp_file.close() gfx.setparameter('poly2bitmap', '1') doc = gfx.open("pdf", pdf_temp_filename) swf = gfx.SWF() swf.setparameter('flashversion', '9') buf = StringIO.StringIO() for pagenr in range(1, doc.pages + 1): page = doc.getPage(pagenr) swf.startpage(page.width, page.height) page.render(swf) swf.endpage() swf.save(swf_temp_filename) os.unlink(pdf_temp_filename) return open(swf_temp_filename, 'r')
def Run(self): swf = gfx.SWF() try: plugin = self.__options.viewers.init(swf, self.__filename) except Exception, e: wx.CallAfter(Publisher.sendMessage, "PLUGIN_ERROR") self.__running = False return
for pagenr in self.__pages: page = self.__doc.getPage(pagenr) swf.startpage(page.width, page.height) page.render(swf) swf.endpage() wx.CallAfter(Publisher.sendMessage, "SWF_PAGE_SAVED", { 'pagenr': pagenr, 'pages': pages, }) if self.__one_page_per_file: form = '.%%0%dd.swf' % len(str(len(self.__pages))) filename = self.__filename.replace('.swf', form % pagenr) swf.save(filename) swf = gfx.SWF() try: plugin = self.__options.viewers.init(swf, self.__filename) except Exception, e: wx.CallAfter(Publisher.sendMessage, "PLUGIN_ERROR") self.__running = False return self.setparameters(swf) if not self.__keep_running: break else: # This will not run if we break the for loop if not self.__one_page_per_file: