From 2b1d6c268c35eb2e7b3e6f69fbdf937bbddc9e41 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 16 Aug 2020 10:29:03 +1000 Subject: [PATCH] Render to an in-memory PDF --- InvenTree/label/models.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/InvenTree/label/models.py b/InvenTree/label/models.py index 6da973d85f..c506d796db 100644 --- a/InvenTree/label/models.py +++ b/InvenTree/label/models.py @@ -6,6 +6,7 @@ Label printing models from __future__ import unicode_literals import os +import io from blabel import LabelWriter @@ -70,13 +71,31 @@ class LabelTemplate(models.Model): return [] - def render(self, items, **kwargs): + def render_to_file(self, filename, items, **kwargs): + """ + Render labels to a PDF file + """ records = self.get_record_data(items) writer = LabelWriter(self.template) - writer.write_labels(records, 'out.html') + writer.write_labels(records, filename) + + def render(self, items, **kwargs): + """ + Render labels to an in-memory PDF object, and return it + """ + + records = self.get_record_data(items) + + writer = LabelWriter(self.template) + + buffer = io.BytesIO() + + writer.write_labels(records, buffer) + + return buffer class StockItemLabel(LabelTemplate):