コード例 #1
0
ファイル: view.py プロジェクト: cedricmessiant/ploneintranet
    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
            )
コード例 #2
0
 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)
コード例 #3
0
 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())
コード例 #4
0
 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())
コード例 #5
0
ファイル: attachments.py プロジェクト: netsight/ploneintranet
    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