我使用qweb打印我的发票,当报告有很多页面时,我想计算在页面末尾打印它的行总小数之和。
我可以使用生成的报告pdf使用python来完成它,但在QWEB
我不能。
任何人都可以提供帮助,即使是RML
吗?
答案 0 :(得分:1)
您只需在将PDF发送到浏览器之前捕获它。
如果您未使用附件修改create_single_pdf()
下report_sxw.py
下/usr/lib/python2.7/openerp/report/
return pdf, report_xml.report_type
,pdf = generateMyPDF(s.getvalue(title(report_xml.name), pdf))
之前create_source_pdf()
,请return s.getvalue(), results[0][1]
。pdf = generateMyPDF(report_xml.name, s.getvalue())
更改最后一个if语句return pdf, results[0][1]
应该是
import StringIO
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from pyPdf import PdfFileReader, PdfFileWriter
def generateMyPDF(titles, pdf)
if title in titles:#title is used here to check if this is the right document to modify (by default title is the string argument in your report action)
input = PdfFileReader(cStringIO.StringIO(pdf))
#calculate your subtotals
#parse pages to calculate subtotals, you can use regex to calculate subtotal,because it depend on your modified invoice.
for index in range(len(subtotals)):
packet = StringIO.StringIO()
can = canvas.Canvas(packet, pagesize=letter)
#draw your subtotal
can.save()
packet.seek(index)
new_pdf = PdfFileReader(packet)
page = input.getPage(index)
page.mergePage(new_pdf.getPage(0))
output.addPage(page)
output.write(s)
return s.getvalue() or pdf, , report_xml.report_type
get_pdf
如果您使用的是rml报告:
report.py
如果您使用的是QWEB,我猜您必须使用相同的方法修改addons/report/models/
下的Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
String startFormattedDate = sdf.format(date);
System.out.println(startFormattedDate);
Thread.sleep(10000L);
String endFormattedDate = sdf.format(date);
System.out.println(endFormattedDate);
中的$("#filename").change
。
如果您找到QWEB解决方案,请分享。