让fusion服务器处理格式转换。

odoo10-addon-report-py3o-fusion-server的Python项目详细描述


License: AGPL-3

PY3O报表引擎-Fusion服务器支持

编写此模块是为了让py3o融合服务器处理格式转换,而不是本地libreoffice。如果在report_py3o模块上方安装此模块,则必须部署附加软件组件并运行3个守护程序(libreoffice、py3o.fusion和py3o.renderserver)。这种附加的复杂性有几个优点:

  • 更好的性能(libreoffice在后台永久运行,无需在每次文档转换时生成新的libreoffice实例)。
  • 能够在odoo中配置pdf导出选项。这带来了许多新的可能性,例如生成:
    • PDF格式
    • pdf/a文档(某些电子发票标准(如Factur-X)要求)
    • 带水印的PDF文档
    • 受密码保护的PDF文档

安装

安装几个附加组件和python库:

还可以为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上跟踪。如果有麻烦,请 如果您的问题已经报告,请检查那里。如果你先发现它, 通过提供详细而受欢迎的反馈,帮助我们粉碎它。

学分

贡献者

有关此加载项的问题或问题,请不要直接与贡献者联系以获取帮助,而应使用community mailing listappropriate specialized mailinglist获取帮助,并使用上面Bug Tracker中链接的bug跟踪器获取技术问题。

维护人员

Odoo Community Association

此模块由OCA维护。

oca,或odoo社区协会,是一个非营利性组织 任务是支持odoo特性和 促进其广泛应用。

若要对此模块作出贡献,请访问https://odoo-community.org

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
切换名称节点Hadoop Java api和camel、jms   java首先执行服务器调用,然后执行下一行代码   java如何登录到这样的站点?   C#AES在Java中使用CFB NoPadding模式进行加密   JVM中的java确定性垃圾收集   java在与PC相连的移动设备上读写数据   java jar编译运行时。getRuntime。exec()jar中的完整目录   java HTTP状态500无法转换类型的值   如何获取另一种语言的Java日期   java无法使用安卓 emulator连接到本地服务器   java计算窗口内两个Swing组件的焦点遍历距离   Java字符串将错误与正则表达式匹配   java将请求从servlet发送到jsp   math Java cast未生成预期输出   在Java中,获取字符串最后250个字符的最佳方法是什么?   Java线程同步管理中的静态关键字   项目中的java Eclipse错误   数组JAVA从txt文件读取整数并计算整数