=========================
collective.documentviewer
collective.documentviewer
integrates DocumentCloud
_ viewer and PDF processing
into Plone
_.
Examples
You can be seen in action the functionality that implements this add-on
at the following sites:
Features
-
Very nice document viewer.
-
OCR.
-
Searchable on OCR text.
-
Works with many different document types.
-
collective.celery
_ integration.
-
Lots of configuration options.
-
PDF Album view for display groups of PDFs.
Works with
Besides displaying PDFs, it will also display:
-
Word.
-
Excel.
-
Powerpoint.
-
HTML.
-
RTF.
Translations
This product has been translated into
-
German.
-
Spanish.
-
Basque.
-
French.
-
Italian.
-
Dutch.
-
Simplified Chinese.
You can contribute for any message missing or other new languages, join us at
Plone Collective Team <https://www.transifex.com/plone/plone-collective/>
_
into Transifex.net service with all world Plone translators community.
Installation
Install requirements
-
GraphicsMagick.
-
ghostscript (version 9.0 preferred).
-
Poppler
-
tesseract (optional)
-
qpdf
-
OpenOffice or LibreOffice (optional, for doc, excel, ppt, etc. types)
-
md5 or md5sum command line tool.
Installation on Cent OS/Red hat
Special instructions for CentOS have been contributed by Eric Tyrer.
You can access them via the git hub repo file location <https://github.com/collective/collective.documentviewer/blob/master/CENTOS-INSTALL.rst>
_.
Installation on Debian
Special instructions for Debian have been contributed by Leonardo J. Caballero G.
You can access them via the git hub repo file location <https://github.com/collective/collective.documentviewer/blob/master/DEBIAN-INSTALL.rst>
_.
Issues installation
If on a Linux/Ubuntu/Debian machine you run into an error like::
/var/lib/gems/1.9.1/gems/docsplit-0.7.2/lib/docsplit/image_extractor.rb:51:in `exists?': can't convert nil into String (TypeError)
from /var/lib/gems/1.9.1/gems/docsplit-0.7.2/lib/docsplit/image_extractor.rb:51:in `ensure in convert'
This is because the ruby docsplit library is having an issue with the temp
folder accesses, and removal of temp files. Just run the following command::
sudo chmod 1777 /tmp && sudo chmod 1777 /var/tmp
And retry the conversion of your document
Development
Normal flow: ::
git clone git@github.com:collective/collective.documentviewer.git
cd collective.documentviewer
virtualenv .
bin/pip install -r requirements.txt
bin/buildout
Async Integration
It it highly recommended to install and configure collective.celery
_
in combination with this package. Doing so will manage all PDF
conversions processes asynchronously so the user isn't delayed
so much when saving files.
Settings
The product can be configured via a control panel item
Document Viewer Settings
.
Some interesting configuration options:
Storage Type
If you want to be able to serve you files via Amazon Cloud,
this will allow you to store the data in flat files that
can be synced to another server.
Storage Location
Where are the server to store the files.
OCR
Use tesseract
to scan the document for text. This process can be
slow so if your PDFs do not need to be OCR'd, you may disable.
Auto Select Layout
For PDF files added to the site, automatically select the
document viewer display.
Auto Convert
When PDF files are added and modified, automatically convert.
Auto layout file types
Types that should automatically be converted to document viewer.
Dexterity support
If you want to use it with your own Dexterity content type. You need to edit
the FTI
in ZMI/portal_types/yourtype
to add "documentviewer" in
the available view methods like this: ::
<property name="view_methods" purge="False">
<element value="documentviewer"/>
</property>
Also you need to set the primary field in the schema, for example: ::
<field name="myfile" marshal:primary="true"
type="plone.namedfile.field.NamedBlobFile">
File storage integration
If you choose to use basic file storage instead of ZODB blob storage,
there are a few things you'll want to keep in mind.
-
Use Nginx
_ to then serve the file system files. This might require
you install a local Nginx just for serving file storage on the
Plone server. You can get creative with how your file storage
is used though.
-
Since in Plone's delete operation, it can be interrupted and the deletion
of a file on the OS system system can not be done within a transaction,
no files are ever deleted. However, there is an action you can
put in a cron
_ task to clean up your file storage directory. Just call the
url http://zeoinstace/plone/@@dvcleanup-filestorage
.
Upgrading from page turner
If you currently have page turner installed, this project will supercede
it. Your page turner views will work but no future files added to the site
will be converted to page turner.
To convert existing view, on every page turner enabled file, there will
be a button Document Viewer Convert
that you can click to manually
convert page turner to document viewer.
To convert all existing views, go to portal_setup
in the ZMI, upgrades,
select collective.documentviewer
, click to show old upgrades and there
should be an upgrade-all
step to run.
Tests status
This add-on is tested using Travis CI. The current status of the add-on is:
.. image:: https://travis-ci.org/collective/collective.documentviewer.svg?branch=master
:alt: Travis CI badge
:target: https://travis-ci.org/collective/collective.documentviewer
.. image:: http://img.shields.io/pypi/v/collective.documentviewer.svg
:alt: PyPI badge
:target: https://pypi.org/project/collective.documentviewer
Contribute
Have an idea? Found a bug? Let us know by opening a ticket
_.
Authors
This product was developed by Wildcard Corp. team.
.. image:: https://raw.githubusercontent.com/collective/collective.documentviewer/i18n_improvements/docs/_static/wildcardcorp_logo.png
:height: 111px
:width: 330px
:alt: Produced by wildcardcorp.com
:align: right
License
The project is licensed under the GPLv2.
.. _DocumentCloud: https://www.documentcloud.org/
.. _Plone: https://plone.org/
.. _collective.celery: https://pypi.org/project/collective.celery/
.. _Nginx: https://nginx.org/
.. _cron: https://crontab.guru/
.. _opening a ticket
: https://github.com/collective/collective.documentviewer/issues
Changelog
6.0.3 (2023-05-17)
- Allow usage of extra parameters with qpdf using
DOCUMENTVIEWER_QPDF_PARAMETERS
environment variable
[mpeeters]
6.0.2 (2023-04-27)
- escape querystring search value [kleier]
6.0.1 (2021-02-03)
- Improved uninstall. [pbauer]
6.0.0 (2020-05-12)
-
Added Transifex.net service integration to manage the translation process.
[macagua]
-
Updated Spanish translation.
[macagua]
-
Updated the i18n support.
[macagua]
-
Fix the download link for the document. #78
[b4oshany]
-
Replaced docsplit
. Instead call the various packages directly.
See pull request #79 <https://github.com/collective/collective.documentviewer/pull/79>
_.
[alphaomega325]
-
Python 3, Plone 5.2 compatible
[vangheem]
5.0.4 (2019-01-09)
- use
plone.api.portal.get
instead of getToolByName
[vangheem]
5.0.3 (2018-12-11)
- Handle possible error with no celery installed
[vangheem]
5.0.2 (2018-12-11)
-
Fix to work with latest collective.celery
[vangheem]
-
Fix issue breaking zoom on the 1st page of PDFs
[obct537]
-
Add function and browser view (convert_all_unconverted
) to convert all files, which haven't been converted yet.
[thet]
-
Do not break if no global request is set. Fixes #71
[ale-rt]
-
Fix redundant condition
[ale-rt]
-
Handle plone.app.contenttypes file indexing.
[thet]
-
Add a custom migrator for plone.app.contenttypes and avoid converting while migrating to plone.app.contettypes.
[thet]
-
Added support for libreoffice under Nixos, which uses a different folder name
for its conversion directories
[pysailor]
5.0.1 (2017-07-16)
- Fix issue breaking zoom on the 1st page of PDFs
[obct537]
5.0.0 (2016-09-02)
- log exception when pulling OCR text instead of completely erroring
[vangheem]
5.0.0a1 (2016-08-05)
- plone 5/dexterity only now
[vangheem]
4.1.0 (2017-05-15)
- Persist converted pdf and publish it as pdf/dump.pdf and @@pdf.
[jaroel]
4.0.14 (2016-08-01)
-
Added italian translation
[keul]
-
Fixed JavaScript issue on Chrome: expected global variable sidebar
was not global
[keul]
-
handle conflict errors in async processes better
[vangheem]
4.0.13 (2016-07-22)
- hide doc viewer from screen readers since they won't be able to make
sense of tags for pdf pages.
[vangheem]
4.0.12 (2016-07-22)
- Handle errors when searching
[vangheem]
4.0.11 (2016-07-12)
- handle no blob found on content
[vangheem]
4.0.10 (2016-06-30)
4.0.9 (2016-06-30)
4.0.8 (2016-06-21)
- use checkboxes for auto layout
[vangheem]
4.0.7 (2016-06-20)
4.0.6 (2016-01-27)
- make it so viewer can be responsive
[vangheem]
4.0.5 (2016-01-25)
- reindex object after lead image is set so icon can be retrieved
[vangheem]
4.0.4 (2016-01-25)
- fix celery conversation showing that it is still
converting
[vangheem]
4.0.3 (2015-09-30)
- fix import of namedfile, restores older plone compatibility
[vangheem]
4.0.2 (2015-09-30)
- fix support for archetypes
[vangheem]
4.0.1 (2015-09-28)
-
add lead image support
[vangheem]
-
be able to use collective.celery for queuing tasks
[vangheem]
-
fix async monitor registration
[pilz]
4.0.0 (2015-09-09)
-
fix Plone 5 compatibility
[vangheem]
-
upgrade jquery.imgareaselect to latest
[vangheem]
-
upgrade document viewer to latest
[vangheem]
-
do not support upgrading from wildcard.pdfpal and wc.pageturner anymore. Use 3.x series
[vangheem]
3.0.3 (2015-07-29)
- set response header on javascript variable file. Prevents js errors on chrome.
[vangheem]
3.0.2 (2014-05-31)
- fix bug where it wouldn't work with collective.geo.*
[vangheem]
3.0.1 (2014-05-08)
- add german translation
[jhb]
3.0a1 (2013-09-03)
-
Add Dexterity compatibility. To enable it on your content type, you have
to define a primary field and add documentviewer in the available view
methods, see documentation.
[vincentfretin]
-
Fix: users that can modify can now view info messages
and 'annotations'/'sections' feature.
[thomasdesvenain]
-
Show contributor fullname if possible.
Contributor and organization are in a span.
[thomasdesvenain]
-
Avoid replacing non-ascii characters by (?) during OCR process
for non english languages.
[thomasdesvenain]
-
Plain text indexation is fixed for non converted contents.
[thomasdesvenain]
-
When a new release of the document is currently generated,
user is notified by a status message.
[thomasdesvenain]
2.2.2b3 (2013-05-31)
2.2.2b2 (2013-05-31)
- fix bug when using blob storage and text indexing is disabled
[gbastien]
2.2.2b1 (2013-05-31)
- only use defaultFactory when supported. For older versions of zope.schema
[vangheem]
2.2.2a1 (2013-05-31)
2.2.1 (2013-03-12)
2.2 (2013-02-06)
- fix z-index on viewer
[damilgra]
2.2b2 (2013-01-10)
- fix getSite imports for plone 4.3
2.2b1 (2013-01-06)
-
switch to using OFS.interfaces.IFolder for folder view
[vangheem]
-
while pdf is converting, show existing if available.
[vangheem]
-
move convert button to actions
[vangheem]
2.2a2 (2012-10-01)
- another subsite fix
[vangheem]
2.2a1 (2012-xx-xx)
2.1b2 (2012-06-22)
- better handling of moving folders around
2.1b1 (2012-06-22)
- be able to obfuscate file paths for file storage
2.0.4 (2012-06-21)
2.0.3 (2012-06-13)
- check for quota set before finding existing jobs.
2.0.2 (2012-06-12)
2.0.1 (2012-05-15)
- fixing batching on group view
2.0.1b1 (2012-05-14)
- add support for new formats: star office, ps, photoshop, visio, palm
2.0b1 (2012-05-11)
- add ability to add annotations and sections
1.5.1 (2012-04-30)
- fix security on file resources
1.5.0 (2012-04-29)
1.5.0b1 (2012-04-27)
1.4.2 (2012-04-24)
- no changes, first final release
1.4.1b3 (2012-04-23)
1.4.1b2 (2012-04-23)
-
make sure to close open file descriptors
-
Change "Original Document (PDF)" to "Original Document"
-
emit event after conversion
-
only show queue link if manager
-
convert button should work for files that do not have
layout selected yet
-
use communicate instead of wait with popen in case
output is large. Prevents deadlocks.
1.4.1b1 (2012-04-23)
-
do not assume pdfpal is used along with pageturner
on data conversion.
-
better command runner
-
track errors better and display them in interface if something
happened during conversion
-
new file storage structure to prevent too many files from
being in one directory
1.4b1 (2012-04-21)
1.4a2 (2012-04-20)
- make sure to not use files with spaces
1.4a1 (2012-04-20)
- be able to detect if pdf already has text in it
and do not OCR it if it does.
1.3b2 (2012-04-20)
- use jQuery instead of $()
1.3b1 (2012-04-20)
-
default OCR to being off since it's pretty slow
-
better logging when looking for binary files
-
be able to override width of viewer
1.3a3 (2012-04-20)
1.3a2 (2012-04-19)
- fix async bug if it wasn't installed
[vangheem]
1.3a1 (2012-04-19)
1.2a2 (2012-04-19)
-
fix setting custom quota for async queue
[vangheem]
-
fix group view clear button
[vangheem]
-
add support for alternative md5sum binary
[vangheem]
1.2a1 (2012-04-19)
-
fix full screen page bug
[vangheem]
-
better async integration with quota setting
[vangheem]
-
View async queue for conversions
[vangheem]
-
index ocr data in portal catalog
[vangheem]
-
better pdf group view with search
[vangheem]
-
handle large files better
[vangheem]
-
check if file has already been converted by storing
hash of the file to check against.
[vangheem]
-
be able to remove document viewer conversion tasks
[vangheem]
-
add ability to cleanup file storage files for deleted
plone File objects.
[vangheem]
1.1a1 (2012-04-18)
1.0a2 (2012-04-17)
-
add control panel icon
[vangheem]
-
fix uninstall procedure
[vangheem]
-
changing image type does not cause existing ones to fail.
[vangheem]
1.0a1 (2012-04-17)