Windows环境下的Openerp报表和PDF打印
我正在尝试在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 个回答
1
如果你想获取一个库存单的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文件。如果还有其他问题,随时问我哦 :-)
这种代码通常会用在像库存单这样的模型里,作为按钮的方法代码或者其他用途。
如果你想把这个功能放到网页客户端的“打印按钮”上,你需要修改一下报告的网络控制器。你可以在 web.controllers.main.Reports
找到这个控制器,网上也有一些例子可以参考,帮助你修改它(比如说为了得到更好的文件名……)