Turn.js <http://www.turnjs.com/>
_ integration to django projects
django_turnit
provides a way to display PDF files in a turn.js <http://www.turnjs.com/>
_ player.
Requirements
With django_turnit, you can choose between several backends for PDF image extraction :
-
ghostscript :
This method does not seems to support threading...
The Ghostscript <http://www.ghostscript.com/>
_ application / library. It can be installed as a package in linux
distributions, such an in debian / ubuntu :
.. code:: sh
$ sudo apt install ghostscript # on debian
$ sudo apt-get install ghostscript # on ubuntu
-
pdftocairo : Prefered method
pdftocairo <http://manpages.ubuntu.com/manpages/precise/man1/pdftocairo.1.html>
_ through subprocess
-
pdftoppm : Prefered method
pdftoppm <http://manpages.ubuntu.com/manpages/precise/man1/pdftoppm.1.html>
_ through subprocess
-
poppler : I've no clue on how to use it directly, which would be great, I was net able to setup the library at all...
Installation
.. code:: sh
$ pip install django-turnit
This installs the packages that are required by django_turnit:
- `django <https://www.djangoproject.com/>`_ (< 1.10, I haven't yet tested django 1.10)
- `django-appconf <https://github.com/django-compressor/django-appconf>`_: Helper for configuration of applications
- `easy-thumbnails <https://github.com/SmileyChris/easy-thumbnails>`_: Creates thumbnails from images
- `pdfminer <https://github.com/euske/pdfminer>`_: Extract texts from PDF files
Those requirements may also be needed:
- `python-ghostscript <https://bitbucket.org/htgoebel/python-ghostscript>`_:
C python binding for the Ghostscript library, if you choose ghostscript as backend
-
.. code:: sh
$ python manage.py migrate django_turnit # Creates the table needed for caching the names of the page images
Usage
django_turnit
can create and manage page images for PDF files. This images are stored in the media
folder, a database stores .
Management command
^^^^^^^^^^^^^^^^^^
The turnit
command creates the missing thumbnails for each FileField containing a PDF file.
.. code:: sh
$ ./manage.py turnit <app_label>[.<model_name>[.<pk>[.<field_name>]]] [arg]
Where:
- <app_label> is the application label. If set, the whole application is scanned for PDF files, and they are thumbnailed.
- <model_name> is the madel name. If set, the model is scanned.
- is the row pk. If set, the row is scanned
- <field_name> field name.
Signals processing
^^^^^^^^^^^^^^^^^^
Settings
TURNIT_INPUT_SUPPORTED_FILE_TYPES
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Supported file MIME types.
.. code:: python
TURNIT_INPUT_SUPPORTED_FILE_TYPES = ['application/pdf', ]
TURNIT_OUTPUT_MEDIA_ROOT
^^^^^^^^^^^^^^^^^^^^^^^^^^
Name of the sub-folder created under the MEDIA_ROOT folder, to store the output image files.
.. code:: python
TURNIT_OUTPUT_MEDIA_ROOT = 'django_turnit'
TURNIT_OUTPUT_FILE_FMT
^^^^^^^^^^^^^^^^^^^^^^^^
Ghostscript output file name format.
.. code:: python
TURNIT_OUTPUT_FILE_FMT = '%(basename)s.%(i)03d.%(ext)s'
TURNIT_OUTPUT_IMAGE_FORMAT
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Ghostscript output file format, as defined in Ghostscript documentation <http://ghostscript.com/doc/current/Devices.htm#File_formats>
_.
You can choose between:
-
PNG
png16m
: 24 bit color PNG (default value)pnggray
: 8 bit gray scale PNGpng256
: 256 colors PNGpng16
: 16 colors PNGpngmonod
: Black and white monochrome PNG
-
JPEG
jpeg
: jpeg standard output
-
TIFF
tiffgray
: 8-bit gray output.tiff12nc
: 12-bit RGB output (4 bits per component).tiff24nc
: 24-bit RGB output (8 bits per component).tiff48nc
: 48-bit RGB output (16 bits per component).tiff32nc
: 32-bit CMYK output (8 bits per component).tiff64nc
: 64-bit CMYK output (16 bits per component).
.. code:: python
TURNIT_OUTPUT_IMAGE_FORMAT = 'png16m'
TURNIT_GHOSTSCRIPT_GLOBAL_ARGS
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Global settings for ghostscript library.
.. note::
Global arguments order in important in ghostscript !
**You MUST start with the `-q` argument !**
.. code:: python
TURNIT_GHOSTSCRIPT_GLOBAL_ARGS = ['-q',
'-dNOPROMPT',
'-dNOPAUSE',
'-dBATCH',
'-dSAFER', ]
TURNIT_GHOSTSCRIPT_EXTRA_ARGS
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Extra parameters for ghostscript. You can add format options here.
.. code:: python
TURNIT_GHOSTSCRIPT_EXTRA_ARGS = []