221 lines
7.9 KiB
ReStructuredText
221 lines
7.9 KiB
ReStructuredText
==========================================
|
|
Py3o Report Engine - Fusion server support
|
|
==========================================
|
|
|
|
..
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
!! This file is generated by oca-gen-addon-readme !!
|
|
!! changes will be overwritten. !!
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
!! source digest: sha256:abe1267ad8b04d3171b35731fe78f8f1fd25c48420962cc8f5096462bb84fb66
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
:target: https://odoo-community.org/page/development-status
|
|
:alt: Beta
|
|
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
|
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
|
:alt: License: AGPL-3
|
|
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
|
|
:target: https://github.com/OCA/reporting-engine/tree/18.0/report_py3o_fusion_server
|
|
:alt: OCA/reporting-engine
|
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
|
:target: https://translation.odoo-community.org/projects/reporting-engine-18-0/reporting-engine-18-0-report_py3o_fusion_server
|
|
:alt: Translate me on Weblate
|
|
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
|
:target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=18.0
|
|
:alt: Try me on Runboat
|
|
|
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
|
|
|
This module was written to let a py3o fusion server handle format
|
|
conversion instead of local libreoffice. If you install this module
|
|
above the *report_py3o* module, you will have to deploy additionnal
|
|
software components and run 3 daemons (libreoffice, py3o.fusion and
|
|
py3o.renderserver). This additionnal complexiy comes with several
|
|
advantages:
|
|
|
|
- much better performances: Libreoffice runs permanently in the
|
|
background, no need to spawn a new Libreoffice instance upon every
|
|
document conversion.
|
|
- ability to configure PDF export options in Odoo. This brings many new
|
|
possibilities such as the ability to generate:
|
|
|
|
- PDF forms
|
|
- PDF/A documents (required by some electronic invoicing standards
|
|
such as `Factur-X <http://fnfe-mpe.org/factur-x/factur-x_en/>`__)
|
|
- watermarked PDF documents
|
|
- password-protected PDF documents
|
|
|
|
**Table of contents**
|
|
|
|
.. contents::
|
|
:local:
|
|
|
|
Installation
|
|
============
|
|
|
|
Install several additional components and Python libs:
|
|
|
|
- `Py3o Fusion server <https://bitbucket.org/faide/py3o.fusion>`__,
|
|
- `Py3o render
|
|
server <https://bitbucket.org/faide/py3o.renderserver>`__,
|
|
- a Java Runtime Environment (JRE), which can be OpenJDK,
|
|
- Libreoffice started in the background in headless mode,
|
|
- the Java driver for Libreoffice (Juno).
|
|
|
|
It is also possible to use the Python driver for Libreoffice (PyUNO),
|
|
but it is recommended to use the Java driver because it is more stable.
|
|
|
|
The installation procedure below uses the Java driver. It has been
|
|
successfully tested on Ubuntu 18.04 LTS ; if you use another OS, you may
|
|
have to change a few details.
|
|
|
|
Installation of Libreoffice, JRE and required Java libs on
|
|
Debian/Ubuntu:
|
|
|
|
::
|
|
|
|
sudo apt-get install default-jre ure libgoogle-gson-java libreoffice-java-common libreoffice-writer
|
|
|
|
You may have to install additionnal fonts. For example, to have the
|
|
special unicode symbols for phone/fax/email in the PDF reports generated
|
|
by Py3o, you should install the following package:
|
|
|
|
::
|
|
|
|
sudo apt-get install fonts-symbola
|
|
|
|
Installation of py3o.fusion:
|
|
|
|
::
|
|
|
|
pip3 install py3o.fusion
|
|
pip3 install service-identity
|
|
|
|
Installation of py3o.renderserver:
|
|
|
|
::
|
|
|
|
pip3 install py3o.renderserver
|
|
|
|
At the end, with the dependencies, you should have the following py3o
|
|
python libs:
|
|
|
|
::
|
|
|
|
% pip3 freeze | grep py3o
|
|
py3o.formats==0.3
|
|
py3o.fusion==0.8.9
|
|
py3o.renderclient==0.3
|
|
py3o.renderers.juno==0.8.1
|
|
py3o.renderserver==0.5.2
|
|
py3o.template==0.10.0
|
|
py3o.types==0.1.1
|
|
|
|
Start the Py3o Fusion server:
|
|
|
|
::
|
|
|
|
start-py3o-fusion --debug -s localhost -i localhost
|
|
|
|
Start the Py3o render server:
|
|
|
|
::
|
|
|
|
start-py3o-renderserver --java=/usr/lib/jvm/default-java/lib/server/libjvm.so --ure=/usr/share --office=/usr/lib/libreoffice --driver=juno --sofficeport=8997 -i localhost
|
|
|
|
On the output of the Py3o render server, the first line looks like:
|
|
|
|
::
|
|
|
|
DEBUG:root:Starting JVM: /usr/lib/jvm/default-java/lib/server/libjvm.so with options: -Djava.class.path=/usr/local/lib/python2.7/dist-packages/py3o/renderers/juno/py3oconverter.jar:/usr/share/java/juh.jar:/usr/share/java/jurt.jar:/usr/share/java/ridl.jar:/usr/share/java/unoloader.jar:/usr/share/java/java_uno.jar:/usr/lib/libreoffice/program/classes/unoil.jar -Xmx150M
|
|
|
|
After **-Djava.class.path**, there is a list of Java libs with *.jar*
|
|
extension ; check that each JAR file is really present on your
|
|
filesystem. If one of the jar files is present in another directory,
|
|
create a symlink that points to the real location of the file. If all
|
|
the jar files are present on another directory, adapt the *--ure=*
|
|
argument on the command line of Py3o render server.
|
|
|
|
To check that the Py3o Fusion server is running fine, visit the URL
|
|
http://\ <IP_address>:8765/form. On this web page, under the section
|
|
*Target format*, make sure that you have a line *This server currently
|
|
supports these formats: ods, odt, docx, doc, html, docbook, pdf, xls.*.
|
|
|
|
If you want to produce valid PDF/A documents with this module,
|
|
activating the corresponding option in the PDF Export Options may not be
|
|
enough, you also have to make sure that all the fonts used in the
|
|
document template are installed on the Odoo server, so that they can be
|
|
embedded in the PDF/A document. For example, if your document template
|
|
uses the Arial font, you should install that font on your Odoo server:
|
|
|
|
::
|
|
|
|
sudo apt-get install msttcorefonts
|
|
|
|
Configuration
|
|
=============
|
|
|
|
To configure the PDF export options:
|
|
|
|
1. Go to the menu *Settings > Technical > Reporting > Py3o > Py3o PDF
|
|
Export Options* and create a PDF export options profile.
|
|
2. Set the PDF export options profile on the Py3o Server (menu *Settings
|
|
> Technical > Reporting > Py3o > Py3o Servers*) or on a particular
|
|
Py3o report with PDF output format (menu *Settings > Technical >
|
|
Actions > Reports*).
|
|
|
|
Known issues / Roadmap
|
|
======================
|
|
|
|
- Add support for PDF signatures (possible, but no easy because the
|
|
signature certificate is a very particular PDF export option)
|
|
|
|
Bug Tracker
|
|
===========
|
|
|
|
Bugs are tracked on `GitHub Issues <https://github.com/OCA/reporting-engine/issues>`_.
|
|
In case of trouble, please check there if your issue has already been reported.
|
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
|
`feedback <https://github.com/OCA/reporting-engine/issues/new?body=module:%20report_py3o_fusion_server%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
|
|
|
Do not contact contributors directly about support or help with technical issues.
|
|
|
|
Credits
|
|
=======
|
|
|
|
Authors
|
|
-------
|
|
|
|
* XCG Consulting
|
|
* ACSONE SA/NV
|
|
* Akretion
|
|
|
|
Contributors
|
|
------------
|
|
|
|
- Florent Aide (`XCG Consulting <http://odoo.consulting/>`__)
|
|
- Laurent Mignon <laurent.mignon@acsone.eu>,
|
|
- Alexis de Lattre <alexis.delattre@akretion.com>,
|
|
- Guewen Baconnier <guewen.baconnier@camptocamp.com>
|
|
- Omar Castiñeira <omar@comunitea.com>
|
|
- Holger Brunn <hbrunn@therp.nl>
|
|
|
|
Maintainers
|
|
-----------
|
|
|
|
This module is maintained by the OCA.
|
|
|
|
.. image:: https://odoo-community.org/logo.png
|
|
:alt: Odoo Community Association
|
|
:target: https://odoo-community.org
|
|
|
|
OCA, or the Odoo Community Association, is a nonprofit organization whose
|
|
mission is to support the collaborative development of Odoo features and
|
|
promote its widespread use.
|
|
|
|
This module is part of the `OCA/reporting-engine <https://github.com/OCA/reporting-engine/tree/18.0/report_py3o_fusion_server>`_ project on GitHub.
|
|
|
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|