让fusion服务器处理格式转换。
odoo10-addon-report-py3o-fusion-server的Python项目详细描述
PY3O报表引擎-Fusion服务器支持
编写此模块是为了让py3o融合服务器处理格式转换,而不是本地libreoffice。如果在report_py3o模块上方安装此模块,则必须部署附加软件组件并运行3个守护程序(libreoffice、py3o.fusion和py3o.renderserver)。这种附加的复杂性有几个优点:
- 更好的性能(libreoffice在后台永久运行,无需在每次文档转换时生成新的libreoffice实例)。
- 能够在odoo中配置pdf导出选项。这带来了许多新的可能性,例如生成:
- PDF格式
- pdf/a文档(某些电子发票标准(如Factur-X)要求)
- 带水印的PDF文档
- 受密码保护的PDF文档
安装
安装几个附加组件和python库:
- Py3o Fusion server,
- Py3o render server,
- Java运行时环境(JRE),可以是OpenJDK,
- Libreoffice以无头模式在后台启动,
- libreoffice(juno)的java驱动程序。
还可以为libreoffice(pyuno)使用python驱动程序,但建议使用java驱动程序,因为它更稳定。
下面的安装过程使用java驱动程序。它已经在Ubuntu16.04LTS上成功测试;如果你使用另一个操作系统,你可能需要更改一些细节。
在debian/ubuntu上安装libreoffice、jre和必需的java libs:
sudo apt-get install default-jre ure libgoogle-gson-java libreoffice-java-common libreoffice-writer
您可能需要安装附加字体。例如,要在py3o生成的pdf报告中使用电话/传真/电子邮件的特殊unicode符号,您应该安装以下软件包:
sudo apt-get install fonts-symbola
PY3O的安装。Fusion:
pip install py3o.fusion pip install service-identity
py3o.renderserver的安装:
pip install py3o.renderserver
最后,对于依赖项,您应该拥有以下py3o python libs:
% pip freeze | grep py3o py3o.formats==0.3 py3o.fusion==0.8.8 py3o.renderclient==0.2 py3o.renderers.juno==0.8 py3o.renderserver==0.5.1 py3o.template==0.9.12 py3o.types==0.1.1
启动PY3O Fusion服务器:
start-py3o-fusion --debug -s localhost
启动py3o渲染服务器:
start-py3o-renderserver --java=/usr/lib/jvm/default-java/jre/lib/amd64/server/libjvm.so --ure=/usr/share --office=/usr/lib/libreoffice --driver=juno --sofficeport=8997
在py3o渲染服务器的输出中,第一行看起来像:
DEBUG:root:Starting JVM: /usr/lib/jvm/default-java/jre/lib/amd64/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
在-djava.class.path之后,有一个扩展名为.jar的java lib列表;检查每个jar文件是否真的存在于您的文件系统中。如果其中一个jar文件存在于另一个目录中,则创建一个指向文件实际位置的符号链接。如果所有jar文件都存在于另一个目录中,请调整py3o render server命令行上的–ure=参数。
要检查py3o fusion服务器是否运行正常,请访问urlhttp://<;ip_address>;:8765/form。在此网页上的target format部分下,确保有一行this server当前支持以下格式:ods、odt、docx、doc、html、docbook、pdf、xls。。
如果要使用此模块生成有效的PDF/A文档,在PDF导出选项中激活相应的选项可能不够,还必须确保文档模板中使用的所有字体都安装在ODOO服务器上,以便可以将它们嵌入到PDF/A文档中。例如,如果文档模板使用的是arial字体,则应在odoo服务器上安装该字体:
sudo apt-get install msttcorefonts
已知问题/路线图
- 添加对PDF签名的支持(可能,但并不容易,因为签名证书是一个非常特殊的PDF导出选项)
缺陷跟踪器
错误在GitHub Issues上跟踪。如果有麻烦,请 如果您的问题已经报告,请检查那里。如果你先发现它, 通过提供详细而受欢迎的反馈,帮助我们粉碎它。
学分
贡献者
- 弗洛伦特助手(XCG Consulting)
- 劳伦特·米格农,laurent.mignon@acsone.eu>;,
- Alexis de Lattre & lt;alexis.delattre@akretion.com&gt;
- guewen baconnier<;guewen.baconnier@camptocamp.com>;
- 奥马尔卡斯蒂涅拉<;omar@comunitea.com>;
- 霍尔格·布鲁恩hbrunn@therp.nl>;
有关此加载项的问题或问题,请不要直接与贡献者联系以获取帮助,而应使用community mailing list或appropriate specialized mailinglist获取帮助,并使用上面Bug Tracker中链接的bug跟踪器获取技术问题。
维护人员
此模块由OCA维护。
oca,或odoo社区协会,是一个非营利性组织 任务是支持odoo特性和 促进其广泛应用。
若要对此模块作出贡献,请访问https://odoo-community.org。