summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoine Prieels <anp@odoo.com>2019-09-18 11:50:29 +0000
committerAntoine Prieels <anp@odoo.com>2019-09-18 12:13:36 +0000
commit9e11adcf9aba686fffdb0e423fcaad2d4f7859df (patch)
tree17bcf4d31b3bac7e3c0c706ce075e13616522a4f
parenta5af052d6743677e1838bd2db53d1dea258df551 (diff)
[FIX] point_of_sale: Black receipts
Some parts of the receipts had a black background, making them unreadable. The origin of this problem was that the white background was not applied correctly to the whole receipt. The rest of the receipt had a transparent background which was then changed to black when converting the receipt to an image. The parts of the receipt that had no background were the followings: - The parts that were out of the screen if the receipt was too long. We fix this by explicitly specifying a height when generating the canvas. - `html2canvas` applies the background to a rectangle starting from (0, 0) up to (width, height). In our case, `body` has a margin of 8px. Our receipt was then placed in a rectangle from (8, 8) to (width + 8, height + 8). closes odoo/odoo#37072 Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
-rw-r--r--addons/point_of_sale/static/src/css/pos_receipts.css2
-rw-r--r--addons/point_of_sale/static/src/js/printers.js1
2 files changed, 3 insertions, 0 deletions
diff --git a/addons/point_of_sale/static/src/css/pos_receipts.css b/addons/point_of_sale/static/src/css/pos_receipts.css
index ad064c3d091..dbb94517ae6 100644
--- a/addons/point_of_sale/static/src/css/pos_receipts.css
+++ b/addons/point_of_sale/static/src/css/pos_receipts.css
@@ -1,4 +1,6 @@
.pos-receipt-print {
+ /*The receipt must be in the top left corner when rendered by html2canvas*/
+ margin: -8px;
width: 512px;
text-align: left;
direction: ltr;
diff --git a/addons/point_of_sale/static/src/js/printers.js b/addons/point_of_sale/static/src/js/printers.js
index 5e4ea3e3c83..1b322697285 100644
--- a/addons/point_of_sale/static/src/js/printers.js
+++ b/addons/point_of_sale/static/src/js/printers.js
@@ -51,6 +51,7 @@ var PrinterMixin = {
var promise = new Promise(function (resolve, reject) {
html2canvas($('.pos-receipt-print')[0], {
background :'#FFFFFF',
+ height: $('.pos-receipt-print').outerHeight(),
ignoreElements: function (node) {
// By default, html2canvas copies the whole DOM even if we just capture a part
// of it. When copying the list of products, it gets all of the product from the