2014-04-13 6 views
0

Windows 환경에서 Openerp v7에서 직접 프린터 기능을 구현하려고합니다. 파이썬에서 win32api를 사용하여 ghostscript gsprint를 실행하는 기본 스크립트를 가지고 있습니다.Openerp 보고서 및 Windows 환경에서의 PDF 인쇄

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을 볼 수 있지만 이것들은 라이브러리이므로 편집해야한다고는 생각하지 않습니다.

나는 어디에서 찾고 있는지 간단히 알지 못합니다. 당신이 stock.picking의 PDF 파일을 얻으려면

답변

1

, 다음 코드를 시도 :

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.controllers.main.Reports에서 발견 할 수 있고 그것을 덮어 씌울 수있는 몇 가지 예가 있습니다 (예를 들어 더 나은 파일 이름을 얻으려면 ...)

+0

감사합니다. 그냥 코드가 존재할 곳이 궁금합니다. 더욱이. picking_report_obj가 report_obj입니까? – Pat

+0

oops 예, 그 중 하나를 놓쳤습니다 : P 일부 모델 기능에서 이러한 유형의 코드를 사용할 수 있습니다 ... 오, 잠깐, 내 대답을 조금 편집 할 것입니다 ^^ – CZoellner