A set of portal transform to change pdf into images
The main goal of this product is to allow PDF into ImageFields in Plone. It uses code written by David Brenneman for collective.pdfpeek.
Just add the following lines in your buildout:
You must install pdftransform with the quick installer (no need to install pdfpeek, but it must be in the buildout as we use its methods)
Using pdftransform in your site
collective.pdftransform adds a pdf_to_image transform in Plone portal_transform. As transforms can not be used with FileField (or at least I did not find how …) it also provides a method in utils called update_form. You can use it in the post_validate method of your Archetype objects.
Here is an example (from Products.plonehrm, the Employee Archetype object):
... from collective.pdftransform.utils import update_form ... class Employee(BaseFolder): ... security.declarePrivate('post_validate') def post_validate(self, REQUEST, errors): update_form(self, REQUEST) ...
With this, all files submitted in the edit form, if they are PDF, are transformed into jpg files. You can specify an extra argument in update_form which is the list of fields, for example, if we had written this:
security.declarePrivate('post_validate') def post_validate(self, REQUEST, errors): update_form(self, REQUEST, ['portrait_file', 'idScan_file'])
only the files submitted in the portrait and idScan fields would have been transformed.
You can also use the validator called isValidImageOrPDF in your Image fields.
- Code cleanup. [maurits]
- Do not explicitly require collective.pdfpeek 1.2, but make that a minimum. [maurits]
- Patched pdfpeek to use the default 1.2 release. [vincent]
- Allow setting PDF resolution in update_form. [vincent]
- Bugfix in utils/is_transformable_pdf. [vincent]
- added translations for french and dutch. [vincent]
- updated the validator to return an error if the PDF file can not be transformed. [vincent]
- added is_transformable_pdf in utils, tells if the PDF file uploaded can be transformed with pdf_to_image. [vincent]
- added validator called ‘isValidImageOrPDF’ that checks that the submitted if is a PDF or an image (except BMP images as it can cause problems). [vincent]
- added update_form in utils, that can be used in the post_validate method of your Archetype objects. [vincent]
- Added transform to the portal_transform. [vincent]