add pdf media type

The new media type supports pdf and a subset of media recognized by libreoffice via
unoconv.

Every document added goes through:
* conversion to pdf with unoconv if not already a pdf
* creation of thumbnail and medium sized image, and pdfinfo generates
 some information (even for unoconv produces docs - should fix this)

Poppler (pdftocairo, pdfinfo) is used.  http://poppler.freedesktop.org/

A working but uglified pdf.js integration exists, which is enabled by
setting pdf.pdf_js=true mediagoblin_local.ini (disabled in mediagoblin.ini)

Adds one test to the test_submission test suite, and another separate test_pdf suite.
The tests are only run if media_types.pdf.processing.check_prerequisites passes, so
the test suite will not require any extra package.

TODO: make test suite say 'skipped' in that case instead of just 'ok'

Signed-off-by: Alon Levy <alon@pobox.com>
This commit is contained in:
Alon Levy
2013-03-27 12:21:10 +02:00
parent 3cadb4a6cd
commit a80ebf3b64
17 changed files with 5838 additions and 1 deletions

View File

@@ -195,3 +195,40 @@ Run
You should now be able to upload .obj and .stl files and MediaGoblin
will be able to present them to your wide audience of admirers!
PDF and Document
================
To enable the "PDF and Document" support plugin, you need pdftocairo, pdfinfo,
unoconv with headless support. All executables must be on your execution path.
To install this on Fedora:
.. code-block:: bash
sudo yum install -y ppoppler-utils unoconv libreoffice-headless
pdf.js relies on git submodules, so be sure you have fetched them:
.. code-block:: bash
git submodule init
git submodule update
This feature has been tested on Fedora with:
poppler-utils-0.20.2-9.fc18.x86_64
unoconv-0.5-2.fc18.noarch
libreoffice-headless-3.6.5.2-8.fc18.x86_64
It may work on some earlier versions, but that is not guaranteed.
Add ``mediagoblin.media_types.pdf`` to the ``media_types`` list in your
``mediagoblin_local.ini`` and restart MediaGoblin.
Run
.. code-block:: bash
./bin/gmg dbupdate