跳转到主要内容

让融合服务器处理格式转换。

项目描述

Beta License: AGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runbot

编写此模块是为了让py3o融合服务器处理格式转换,而不是使用本地的libreoffice。如果您在此模块之上安装report_py3o模块,您将需要部署额外的软件组件并运行3个守护进程(libreoffice、py3o.fusion和py3o.renderserver)。这种额外的复杂性带来了几个优点

  • 更好的性能(Libreoffice永久在后台运行,不需要在每次文档转换时启动新的Libreoffice实例)。

  • 在Odoo中配置PDF导出选项。这带来了许多新可能性,例如生成

    • PDF表单

    • PDF/A文档(一些电子发票标准所必需,如Factur-X

    • 带水印的PDF文档

    • 密码保护的PDF文档

目录

安装

安装几个附加组件和Python库

也可以使用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导出选项

  1. 转到菜单 设置 > 技术 > 报告 > Py3o > Py3o PDF导出选项 并创建一个PDF导出选项配置文件。

  2. 在Py3o服务器(菜单 设置 > 技术 > 报告 > Py3o > Py3o服务器)或特定PDF输出格式的Py3o报告上设置PDF导出选项配置文件(菜单 设置 > 技术 > 动作 > 报告)。

已知问题/路线图

  • 添加对PDF签名的支持(可能,但不太容易,因为签名证书是一个非常特殊的PDF导出选项)

错误追踪器

问题在 GitHub Issues 上跟踪。如果遇到问题,请检查那里是否已报告您的问题。如果您是第一个发现它的人,请通过提供详细且受欢迎的 反馈 来帮助我们解决问题。

请不要直接联系贡献者以获取支持或技术问题的帮助。

致谢

作者

  • XCG咨询

  • ACSONE SA/NV

贡献者

维护者

此模块由OCA维护。

Odoo Community Association

OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并促进其广泛使用。

此模块是GitHub上 OCA/reporting-engine 项目的组成部分。

欢迎您贡献力量。要了解如何贡献,请访问 https://odoo-community.org/page/Contribute

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

此版本没有提供源代码分发文件。请参阅生成分发存档的教程

构建分发

由...