让融合服务器处理格式转换。
项目描述
编写此模块是为了让py3o融合服务器处理格式转换,而不是使用本地的libreoffice。如果您在此模块之上安装report_py3o模块,您将需要部署额外的软件组件并运行3个守护进程(libreoffice、py3o.fusion和py3o.renderserver)。这种额外的复杂性带来了几个优点
更好的性能(Libreoffice永久在后台运行,不需要在每次文档转换时启动新的Libreoffice实例)。
在Odoo中配置PDF导出选项。这带来了许多新可能性,例如生成
PDF表单
PDF/A文档(一些电子发票标准所必需,如Factur-X)
带水印的PDF文档
密码保护的PDF文档
目录
安装
安装几个附加组件和Python库
一个Java运行环境(JRE),可以是OpenJDK,
Libreoffice以无头模式在后台启动,
Libreoffice的Java驱动程序(Juno)。
也可以使用Libreoffice的Python驱动程序(PyUNO),但建议使用Java驱动程序,因为它更稳定。
以下安装程序使用Java驱动程序。它已在Ubuntu 18.04 LTS上成功测试;如果您使用其他操作系统,您可能需要更改一些细节。
在Debian/Ubuntu上安装Libreoffice、JRE和所需的Java库
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
pip3 install py3o.fusion
pip3 install service-identity
安装py3o.renderserver
pip3 install py3o.renderserver
最后,包含依赖项,您应该有以下的py3o Python库
% 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
启动Py3o Fusion服务器
start-py3o-fusion --debug -s localhost -i localhost
启动Py3o渲染服务器
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
在Py3o渲染服务器的输出中,第一行看起来像
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
在 -Djava.class.path 之后,有一个以 .jar 扩展名的Java库列表;请检查每个JAR文件是否真的存在于您的文件系统中。如果其中一个jar文件存在于另一个目录中,创建一个指向文件实际位置的符号链接。如果所有jar文件都存在于另一个目录中,请调整Py3o渲染服务器的命令行上的 –ure= 参数。
要检查Py3o Fusion服务器是否正常运行,请访问URL http://<IP_address>:8765/form。在此网页中,在 目标格式 部分确保您有如下一行 此服务器目前支持以下格式:ods, odt, docx, doc, html, docbook, pdf, xls。。
如果您想使用此模块生成有效的PDF/A文档,仅激活PDF导出选项可能不够,您还必须确保在文档模板中使用的所有字体都已安装在Odoo服务器上,以便它们可以嵌入到PDF/A文档中。例如,如果您的文档模板使用Arial字体,您应该在您的Odoo服务器上安装该字体
sudo apt-get install msttcorefonts
配置
配置PDF导出选项
转到菜单 设置 > 技术 > 报告 > Py3o > Py3o PDF导出选项 并创建一个PDF导出选项配置文件。
在Py3o服务器(菜单 设置 > 技术 > 报告 > Py3o > Py3o服务器)或特定PDF输出格式的Py3o报告上设置PDF导出选项配置文件(菜单 设置 > 技术 > 动作 > 报告)。
已知问题/路线图
添加对PDF签名的支持(可能,但不太容易,因为签名证书是一个非常特殊的PDF导出选项)
错误追踪器
问题在 GitHub Issues 上跟踪。如果遇到问题,请检查那里是否已报告您的问题。如果您是第一个发现它的人,请通过提供详细且受欢迎的 反馈 来帮助我们解决问题。
请不要直接联系贡献者以获取支持或技术问题的帮助。
致谢
贡献者
弗洛伦·艾德(XCG咨询)
劳伦特·米永 <laurent.mignon@acsone.eu>
亚历克斯·德·拉特雷 <alexis.delattre@akretion.com>
居文·巴科尼耶 <guewen.baconnier@camptocamp.com>
奥马尔·卡斯蒂涅拉 <omar@comunitea.com>
霍尔格·布卢恩 <hbrunn@therp.nl>
维护者
此模块由OCA维护。
OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并促进其广泛使用。
此模块是GitHub上 OCA/reporting-engine 项目的组成部分。
欢迎您贡献力量。要了解如何贡献,请访问 https://odoo-community.org/page/Contribute。
项目详情
哈希值 for odoo12_addon_report_py3o_fusion_server-12.0.1.0.2-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4b028985f7af232700ca1a0b6cf1ec1a1d2b74a25075593ce5a5961359306862 |
|
MD5 | a8026de4a44dd7f94dba7a16aaad01c3 |
|
BLAKE2b-256 | f692c2165c3114f150a4836cd1fe9b94b03748c41aaf6d0d1b7ed789d2b9ebfa |