def render(self): docconv = IDocconv(self.context) if not docconv.has_pdf(): return self.request.RESPONSE.redirect( self.context.absolute_url() + '/pdf-not-available') pdfversion = docconv.get_pdf() R = self.request.RESPONSE R.setHeader('content-type', 'application/pdf') R.setHeader( 'content-disposition', 'attachment; filename="%s"' % '.'.join( (self.context.getId(), u'pdf')).encode('utf8')) if isinstance(pdfversion, basestring): length = len(pdfversion) R.setHeader('content-length', length) return pdfversion else: length = pdfversion.get_size(self.context) R.setHeader('content-length', length) blob = pdfversion.get(self.context, raw=True) charset = 'utf-8' return blob.index_html( REQUEST=self.request, RESPONSE=R, charset=charset )
def test_docconv_adapter_on_new_object(self): docconv = IDocconv(self.testfile) self.assertFalse(docconv.has_pdf()) self.assertFalse(docconv.has_previews()) self.assertFalse(docconv.has_thumbs()) self.assertEquals(docconv.get_pdf(), None) self.assertEquals(docconv.get_previews(), None) self.assertEquals(docconv.get_thumbs(), None)
def test_fetch_docconv_data(self): fetchPreviews(self.testfile, virtual_url_parts=['dummy', ], vr_path='/plone') docconv = IDocconv(self.testfile) self.assertTrue(docconv.has_pdf()) self.assertTrue(docconv.has_previews()) self.assertTrue(docconv.has_thumbs())
def test_document(self): testdoc = api.content.create( type='Document', id='test-doc', title=u"Test Document", text=u'The main text', container=self.workspace) fetchPreviews(testdoc, virtual_url_parts=['dummy', ], vr_path='/plone') docconv = IDocconv(testdoc) self.assertTrue(docconv.has_pdf()) self.assertTrue(docconv.has_previews()) self.assertTrue(docconv.has_thumbs())
def render_attachments(self, attachments): """replaces ploneintranet/docconv/client/view.py helpers""" attachment = attachments[self.attachment_id] if not self.preview_type or self.preview_type in ( 'pdf-not-available', 'request-pdf'): return self._render_nopreview(attachment) docconv = IDocconv(attachment) # upload stage if self.preview_type == 'docconv_image_thumb.jpg': if docconv.has_thumbs(): previews = docconv.get_thumbs() imgdata = self._get_page_imgdata(previews) return self._prepare_imagedata(attachment, imgdata) elif self.preview_type == 'docconv_image_preview.jpg': if docconv.has_previews(): previews = docconv.get_previews() imgdata = self._get_page_imgdata(previews) return self._prepare_imagedata(attachment, imgdata) elif self.preview_type == 'pdf': if docconv.has_pdf(): pdfdata = docconv.get_pdf() return self._prepare_pdfdata(pdfdata) # normal view stage elif self.preview_type == 'thumb': if docconv.has_thumbs(): return self._prepare_imagedata( attachment, docconv.get_thumbs()[0]) elif self.preview_type == 'preview': if docconv.has_previews(): return self._prepare_imagedata( attachment, docconv.get_previews()[0]) elif self.preview_type == '@@images': images = api.content.get_view( 'images', attachment.aq_base, self.request, ) return self._prepare_imagedata( attachment, str(images.scale(scale='preview').data.data) ) raise NotFound