Windows环境下Openerp报告和pdf打印

Posted

技术标签:

【中文标题】Windows环境下Openerp报告和pdf打印【英文标题】:Openerp report and pdf printing in Windows environment 【发布时间】:2014-04-13 08:30:11 【问题描述】:

我正在尝试在 Openerp v7 中为 windows 环境实现直接打印功能。我在 python 中有一个基本脚本,使用 win32api 启动 ghostscript gsprint。

import win32api
invoice = "D:\Downloads\Invoices.pdf"
win32api.ShellExecute(0, 'open', 'C:\Program Files\Ghostgum\gsview\gsprint.exe', invoice, '.', 1)

在 openerp 中,以下为特定报告类型带来所需的解析器,然后生成报告。

report_sxw.report_sxw(
    'report.account.invoice',
    'account.invoice',
    'addons/account/report/account_print_invoice.rml',
    parser=account_invoice
)

这是我不知道应该寻找哪些文件来插入 win32api 代码的阶段。在 openerp 安装时探索文件,我看到 pypdf 和 reportlab,但这些是库,所以我不相信我应该在那里编辑。

我根本不知道该去哪里找。

【问题讨论】:

【参考方案1】:

如果您想获取 stock.picking 的 pdf,请尝试以下代码:

import openerp.netsvc as netsvc
report_obj = netsvc.LocalService('report.stock.picking.list') # or any other report
(result_pdf, result_format) = report_obj.create(cr, uid, [res_id], 'report_type': 'pdf', context)

result_pdf 应该是 pdf 文件。如有其他问题,请询问:-)

这种类型的代码将在 stock.picking 等模型中用作按钮方法代码,否则

如果您想将您的内容放入 Web 客户端“打印按钮”中,您必须覆盖 Web 控制器以获取报告。您可以在web.controllers.main.Reports 和网络上的一些示例中找到它以覆盖它(例如获得更好的文件名......)

【讨论】:

您好,感谢您的回复。只是想知道,您的代码将存在于何处。此外。 Pick_report_obj 是 report_obj? 哎呀错过了那个:P您可以在某些模型功能中使用这种类型的代码...哦,等等,我会稍微编辑一下我的答案^^

以上是关于Windows环境下Openerp报告和pdf打印的主要内容,如果未能解决你的问题,请参考以下文章

通过电子邮件 openerp 自动发送报告

呈现报告质量 EMF 与 PDF

如何添加Microsoft Print To PDF打印机

openerp的数据库该怎么设置

访问报告打印输出(或 PDF)缺少打印预览中可见的信息

根据查询中的每条记录将报告打印为 PDF