Reformatted output by inserting intend of 20 pixels.

Sun, 05 Jun 2022 20:54:58 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 05 Jun 2022 20:54:58 +0200
changeset 255
f237db73d4c8
parent 254
b0adda0053c5
child 256
c136bd15b084

Reformatted output by inserting intend of 20 pixels.

src/PrinterDialog.cpp file | annotate | diff | comparison | revisions
--- a/src/PrinterDialog.cpp	Sun Jun 05 14:50:33 2022 +0200
+++ b/src/PrinterDialog.cpp	Sun Jun 05 20:54:58 2022 +0200
@@ -75,6 +75,8 @@
     qreal y = 0;
 
     if (p_job == PR_SUPPLIES) {
+	qInfo() << "Print supplies";
+
 	/*
 	 * Print supplies in stock
 	 */
@@ -85,10 +87,10 @@
 	/* Fermentables supplies header */
 	painter.setFont(QFont("Helvetica", 9, QFont::Bold));
 	painter.setPen(Qt::black);
-	painter.fillRect(  0, y,   735, 20, c_header);
-	painter.drawText(  0, y+4,  90, 20, Qt::AlignLeft, tr("Type"));
-	painter.drawText( 90, y+4, 100, 20, Qt::AlignLeft, tr("Supplier"));
-	painter.drawText(190, y+4, 270, 20, Qt::AlignLeft, tr("Fermentable"));
+	painter.fillRect( 20, y,   715, 20, c_header);
+	painter.drawText( 20, y+4,  80, 20, Qt::AlignLeft, tr("Type"));
+	painter.drawText(100, y+4, 100, 20, Qt::AlignLeft, tr("Supplier"));
+	painter.drawText(200, y+4, 260, 20, Qt::AlignLeft, tr("Fermentable"));
 	painter.drawText(460, y+4, 115, 20, Qt::AlignRight, tr("Stock"));
 	painter.drawText(575, y+4,  80, 20, Qt::AlignRight, tr("Price/Kg"));
 	painter.drawText(655, y+4,  80, 20, Qt::AlignRight, tr("Value"));
@@ -102,10 +104,10 @@
 		printHeader(&painter);
                 y = 120;
             }
-	    painter.fillRect(  0, y,   735, 20, (i % 2) ? c_line1:c_line2);
-	    painter.drawText(  0, y+4,  90, 20, Qt::AlignLeft, fermentable_types[query.value(0).toInt()]);
-	    painter.drawText( 90, y+4, 100, 20, Qt::AlignLeft, query.value(2).toString());
-	    painter.drawText(190, y+4, 270, 20, Qt::AlignLeft, query.value(1).toString());
+	    painter.fillRect( 20, y,   715, 20, (i % 2) ? c_line1:c_line2);
+	    painter.drawText( 20, y+4,  80, 20, Qt::AlignLeft, fermentable_types[query.value(0).toInt()]);
+	    painter.drawText(100, y+4, 100, 20, Qt::AlignLeft, query.value(2).toString());
+	    painter.drawText(200, y+4, 260, 20, Qt::AlignLeft, query.value(1).toString());
 	    w = QString("%1 kg").arg(query.value(3).toDouble(), 10, 'f', 3);
 	    painter.drawText(460, y+4, 115, 20, Qt::AlignRight, w);
 	    w = QString("%1 €").arg(query.value(4).toDouble(), 8, 'f', 2);
@@ -116,8 +118,8 @@
 	    query.next();
 	    y += 20;
 	}
-	painter.fillRect(  0, y,   735, 20, c_header);
-	painter.drawText(  0, y+4, 100, 20, Qt::AlignLeft, tr("Total"));
+	painter.fillRect( 20, y,   715, 20, c_header);
+	painter.drawText( 20, y+4, 100, 20, Qt::AlignLeft, tr("Total"));
 	w = QString("%1 €").arg(tot_fermentables, 8, 'f', 2);
 	painter.drawText(655, y+4,  80, 20, Qt::AlignRight, w);
 	y += 20;
@@ -134,9 +136,9 @@
 	}
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
         painter.setPen(Qt::black);
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Country"));
-	painter.drawText(120, y+4, 260, 20, Qt::AlignLeft, tr("Hop name"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Country"));
+	painter.drawText(140, y+4, 240, 20, Qt::AlignLeft, tr("Hop name"));
 	painter.drawText(380, y+4,  80, 20, Qt::AlignLeft, tr("Form"));
 	painter.drawText(460, y+4, 115, 20, Qt::AlignRight, tr("Stock"));
         painter.drawText(575, y+4,  80, 20, Qt::AlignRight, tr("Price/Kg"));
@@ -149,9 +151,9 @@
 		printHeader(&painter);
 		y = 120;
 	    }
-	    painter.fillRect(  0, y,   735, 20, (i % 2) ? c_line1:c_line2);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, query.value(2).toString());
-	    painter.drawText(120, y+4, 260, 20, Qt::AlignLeft, query.value(0).toString());
+	    painter.fillRect( 20, y,   715, 20, (i % 2) ? c_line1:c_line2);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, query.value(2).toString());
+	    painter.drawText(140, y+4, 240, 20, Qt::AlignLeft, query.value(0).toString());
 	    painter.drawText(380, y+4,  80, 20, Qt::AlignLeft, hop_forms[query.value(1).toInt()]);
 	    if (query.value(3).toDouble() < 0.6)
 		w = QString("%1 gr").arg(query.value(3).toDouble() * 1000.0, 10, 'f', 1);
@@ -166,8 +168,8 @@
             query.next();
             y += 20;
 	}
-	painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 100, 20, Qt::AlignLeft, tr("Total"));
+	painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 100, 20, Qt::AlignLeft, tr("Total"));
         w = QString("%1 €").arg(tot_hops, 8, 'f', 2);
         painter.drawText(655, y+4,  80, 20, Qt::AlignRight, w);
 	y += 20;
@@ -184,11 +186,11 @@
         }
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
         painter.setPen(Qt::black);
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Laboratory"));
-        painter.drawText(120, y+4, 120, 20, Qt::AlignLeft, tr("Product"));
-        painter.drawText(240, y+4, 220, 20, Qt::AlignLeft, tr("Yeast"));
-        painter.drawText(460, y+4, 115, 20, Qt::AlignRight, tr("Stock"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Laboratory"));
+        painter.drawText(140, y+4, 120, 20, Qt::AlignLeft, tr("Product"));
+        painter.drawText(260, y+4, 235, 20, Qt::AlignLeft, tr("Yeast"));
+        painter.drawText(495, y+4,  80, 20, Qt::AlignRight, tr("Stock"));
         painter.drawText(575, y+4,  80, 20, Qt::AlignRight, tr("Price/Kg"));
         painter.drawText(655, y+4,  80, 20, Qt::AlignRight, tr("Value"));
         y += 20;
@@ -199,15 +201,15 @@
 		printHeader(&painter);
                 y = 120;
             }
-            painter.fillRect(  0, y,   735, 20, (i % 2) ? c_line1:c_line2);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, query.value(1).toString());
-	    painter.drawText(120, y+4, 120, 20, Qt::AlignLeft, query.value(2).toString());
-	    painter.drawText(240, y+4, 220, 20, Qt::AlignLeft, query.value(0).toString());
+            painter.fillRect( 20, y,   715, 20, (i % 2) ? c_line1:c_line2);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, query.value(1).toString());
+	    painter.drawText(140, y+4, 120, 20, Qt::AlignLeft, query.value(2).toString());
+	    painter.drawText(260, y+4, 235, 20, Qt::AlignLeft, query.value(0).toString());
 	    if (query.value(3).toInt() == 0)
 		w = QString("%1 %2").arg(query.value(4).toDouble(), 10, 'f', 1).arg(y_unit[query.value(3).toInt()]);
 	    else
 		w = QString("%1 %2").arg(query.value(4).toDouble() * 1000.0, 10, 'f', 1).arg(y_unit[query.value(3).toInt()]);
-            painter.drawText(460, y+4, 115, 20, Qt::AlignRight, w);
+            painter.drawText(495, y+4,  80, 20, Qt::AlignRight, w);
             w = QString("%1 €").arg(query.value(5).toDouble(), 8, 'f', 2);
             painter.drawText(575, y+4,  80, 20, Qt::AlignRight, w);
             w = QString("%1 €").arg(query.value(4).toDouble() * query.value(5).toDouble(), 8, 'f', 2);
@@ -216,8 +218,8 @@
             query.next();
             y += 20;
 	}
-	painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 100, 20, Qt::AlignLeft, tr("Total"));
+	painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 100, 20, Qt::AlignLeft, tr("Total"));
         w = QString("%1 €").arg(tot_yeasts, 8, 'f', 2);
         painter.drawText(655, y+4,  80, 20, Qt::AlignRight, w);
         y += 20;
@@ -234,9 +236,9 @@
         }
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
         painter.setPen(Qt::black);
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Type"));
-        painter.drawText(120, y+4, 340, 20, Qt::AlignLeft, tr("Ingredient"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Type"));
+        painter.drawText(140, y+4, 320, 20, Qt::AlignLeft, tr("Ingredient"));
         painter.drawText(460, y+4, 115, 20, Qt::AlignRight, tr("Stock"));
         painter.drawText(575, y+4,  80, 20, Qt::AlignRight, tr("Price/Kg"));
         painter.drawText(655, y+4,  80, 20, Qt::AlignRight, tr("Value"));
@@ -248,9 +250,9 @@
                 printHeader(&painter);
                 y = 120;
             }
-            painter.fillRect(  0, y,   735, 20, (i % 2) ? c_line1:c_line2);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, misc_types[query.value(1).toInt()]);
-            painter.drawText(120, y+4, 340, 20, Qt::AlignLeft, query.value(0).toString());
+            painter.fillRect( 20, y,   715, 20, (i % 2) ? c_line1:c_line2);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, misc_types[query.value(1).toInt()]);
+            painter.drawText(140, y+4, 320, 20, Qt::AlignLeft, query.value(0).toString());
             if (query.value(2).toInt())
                 w = QString("%1 gr").arg(query.value(3).toDouble() * 1000.0, 10, 'f', 1);
             else
@@ -264,13 +266,15 @@
             query.next();
             y += 20;
         }
-	painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 100, 20, Qt::AlignLeft, tr("Total"));
+	painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 100, 20, Qt::AlignLeft, tr("Total"));
         w = QString("%1 €").arg(tot_miscs, 8, 'f', 2);
         painter.drawText(655, y+4,  80, 20, Qt::AlignRight, w);
         y += 20;
 
     } else if (p_job == PR_YEASTBANK) {
+	qInfo() << "Print yeastbank";
+
 	/*
 	 * Print yeast in the private yeast bank.
 	 */
@@ -279,8 +283,8 @@
 
 	painter.setFont(QFont("Helvetica", 9, QFont::Bold));
         painter.setPen(Qt::black);
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 200, 20, Qt::AlignLeft, tr("Yeast"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 180, 20, Qt::AlignLeft, tr("Yeast"));
         painter.drawText(200, y+4, 230, 20, Qt::AlignLeft, tr("Description"));
 	painter.drawText(430, y+4,  80, 20, Qt::AlignCenter, tr("Type"));
 	painter.drawText(510, y+4,  80, 20, Qt::AlignCenter, tr("Form"));
@@ -294,8 +298,8 @@
 	query.exec();
         query.first();
 	for (int i = 0; i < query.size(); i++) {
-	    painter.fillRect(  0, y,   735, 20, (i % 2) ? c_line1:c_line2);
-            painter.drawText(  0, y+4, 200, 20, Qt::AlignLeft, query.value(0).toString());
+	    painter.fillRect( 20, y,   715, 20, (i % 2) ? c_line1:c_line2);
+            painter.drawText( 20, y+4, 180, 20, Qt::AlignLeft, query.value(0).toString());
 	    painter.drawText(200, y+4, 230, 20, Qt::AlignLeft, query.value(5).toString());
 	    painter.drawText(430, y+4,  80, 20, Qt::AlignCenter, yeast_types[query.value(1).toInt()]);
 	    painter.drawText(510, y+4,  80, 20, Qt::AlignCenter, yeast_forms[query.value(2).toInt()]);
@@ -311,57 +315,59 @@
 	}
     } else if (p_job == PR_RECIPE) {
 
+	qInfo() << "Print recipe" << recipe->record;
+
 	printHeader(&painter);
         y = 120;
 	/* Generic header */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
         painter.setPen(Qt::black);
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 735, 20, Qt::AlignCenter, tr("Recipe overview"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 715, 20, Qt::AlignCenter, tr("Recipe overview"));
 	y += 20;
         painter.setFont(QFont("Helvetica", 9, QFont::Normal));
-	painter.fillRect(  0, y,   300, 20, c_line1);
-	painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Brew type"));
-	painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, recipe_types[recipe->type]);
-	painter.fillRect(435, y,   300, 20, c_line1);
-        painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Efficiency"));
+	painter.fillRect( 20, y,   330, 20, c_line1);
+	painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Brew type"));
+	painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, recipe_types[recipe->type]);
+	painter.fillRect(405, y,   330, 20, c_line1);
+        painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Efficiency"));
         painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 %").arg(recipe->efficiency, 1, 'f', 1));
 	y += 20;
-	painter.fillRect(  0, y,   300, 20, c_line1);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Boil time"));
-        painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1 minutes.").arg(recipe->boil_time, 1, 'f', 0));
-	painter.fillRect(435, y,   300, 20, c_line1);
-        painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Batch size"));
+	painter.fillRect( 20, y,   330, 20, c_line1);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Boil time"));
+        painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1 minutes.").arg(recipe->boil_time, 1, 'f', 0));
+	painter.fillRect(405, y,   330, 20, c_line1);
+        painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Batch size"));
         painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 L.").arg(recipe->batch_size, 1, 'f', 1));
 	y += 20;
-	painter.fillRect(  0, y,   300, 20, c_line1);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Start SG"));
-        painter.drawText(120, y+4,  90, 20, Qt::AlignLeft, QString("%1").arg(recipe->est_og, 1, 'f', 3));
-	painter.drawText(210, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(recipe->st_og_min, 1, 'f', 3).arg(recipe->st_og_max, 1, 'f', 3));
-        painter.fillRect(435, y,   300, 20, c_line1);
-        painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("End SG"));
+	painter.fillRect( 20, y,   330, 20, c_line1);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Start SG"));
+        painter.drawText(170, y+4,  90, 20, Qt::AlignLeft, QString("%1").arg(recipe->est_og, 1, 'f', 3));
+	painter.drawText(260, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(recipe->st_og_min, 1, 'f', 3).arg(recipe->st_og_max, 1, 'f', 3));
+        painter.fillRect(405, y,   330, 20, c_line1);
+        painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("End SG"));
         painter.drawText(555, y+4,  90, 20, Qt::AlignLeft, QString("%1").arg(recipe->est_fg, 1, 'f', 3));
 	painter.drawText(645, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(recipe->st_fg_min, 1, 'f', 3).arg(recipe->st_fg_max, 1, 'f', 3));
 	y += 20;
-	painter.fillRect(  0, y,   300, 20, c_line1);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Estimated Alcohol"));
-        painter.drawText(120, y+4,  90, 20, Qt::AlignLeft, QString("%1%").arg(recipe->est_abv, 1, 'f', 1));
-	painter.drawText(210, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(recipe->st_abv_min, 1, 'f', 1).arg(recipe->st_abv_max, 1, 'f', 1));
-        painter.fillRect(435, y,   300, 20, c_line1);
-        painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Estimated CO2 vol"));
+	painter.fillRect( 20, y,   330, 20, c_line1);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Estimated Alcohol"));
+        painter.drawText(170, y+4,  90, 20, Qt::AlignLeft, QString("%1%").arg(recipe->est_abv, 1, 'f', 1));
+	painter.drawText(260, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(recipe->st_abv_min, 1, 'f', 1).arg(recipe->st_abv_max, 1, 'f', 1));
+        painter.fillRect(405, y,   330, 20, c_line1);
+        painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Estimated CO2 vol"));
         painter.drawText(555, y+4,  90, 20, Qt::AlignLeft, QString("%1").arg(recipe->est_carb, 1, 'f', 1));
 	painter.drawText(645, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(recipe->st_carb_min, 1, 'f', 1).arg(recipe->st_carb_max, 1, 'f', 1));
 	y += 20;
-	painter.fillRect(  0, y,   120, 20, c_line1);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Color (") + color_method[recipe->color_method] + ")");
-	painter.fillRect(120, y,   180, 20, Utils::ebc_to_color(recipe->est_color));
+	painter.fillRect( 20, y,   150, 20, c_line1);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Color (") + color_method[recipe->color_method] + ")");
+	painter.fillRect(170, y,   180, 20, Utils::ebc_to_color(recipe->est_color));
 	if (recipe->est_color > 30)
 	    painter.setPen(Qt::white);
-        painter.drawText(120, y+4,  90, 20, Qt::AlignLeft, QString("%1 EBC").arg(recipe->est_color, 1, 'f', 0));
-	painter.drawText(210, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(recipe->st_color_min, 1, 'f', 0).arg(recipe->st_color_max, 1, 'f', 0));
+        painter.drawText(170, y+4,  90, 20, Qt::AlignLeft, QString("%1 EBC").arg(recipe->est_color, 1, 'f', 0));
+	painter.drawText(260, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(recipe->st_color_min, 1, 'f', 0).arg(recipe->st_color_max, 1, 'f', 0));
 	painter.setPen(Qt::black);
-        painter.fillRect(435, y,   300, 20, c_line1);
-        painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("IBU (") + ibu_method[recipe->ibu_method] + ")");
+        painter.fillRect(405, y,   330, 20, c_line1);
+        painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("IBU (") + ibu_method[recipe->ibu_method] + ")");
         painter.drawText(555, y+4,  90, 20, Qt::AlignLeft, QString("%1").arg(recipe->est_ibu, 1, 'f', 1));
 	painter.drawText(645, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(recipe->st_ibu_min, 1, 'f', 0).arg(recipe->st_ibu_max, 1, 'f', 0));
 	y += 40;
@@ -369,12 +375,12 @@
 	/* Fermentables */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
         painter.setPen(Qt::black);
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 260, 20, Qt::AlignLeft, tr("Fermentable"));
-        painter.drawText(265, y+4,  70, 20, Qt::AlignRight, tr("Percent"));
-        painter.drawText(340, y+4,  70, 20, Qt::AlignRight, tr("Yield"));
-        painter.drawText(415, y+4,  90, 20, Qt::AlignLeft, tr("Type"));
-        painter.drawText(510, y+4,  90, 20, Qt::AlignLeft, tr("Use at"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft, tr("Fermentable"));
+        painter.drawText(285, y+4,  70, 20, Qt::AlignRight, tr("Percent"));
+        painter.drawText(360, y+4,  70, 20, Qt::AlignRight, tr("Yield"));
+        painter.drawText(435, y+4,  80, 20, Qt::AlignLeft, tr("Type"));
+        painter.drawText(520, y+4,  80, 20, Qt::AlignLeft, tr("Use at"));
         painter.drawText(605, y+4,  60, 20, Qt::AlignRight, tr("Amount"));
 	painter.drawText(670, y+4,  60, 20, Qt::AlignRight, tr("Cost"));
         y += 20;
@@ -397,15 +403,15 @@
 	    else
 		amount = QString("%1 gr").arg(recipe->fermentables.at(i).f_amount * 1000, 1, 'f', 0);
 
-	    painter.fillRect(  0, y,   735, 20, f_line);
+	    painter.fillRect( 20, y,   715, 20, f_line);
 
-	    painter.drawText(  0, y+4, 260, 20, Qt::AlignLeft,	recipe->fermentables.at(i).f_name +
+	    painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft,	recipe->fermentables.at(i).f_name +
 			    					QString(", %1 EBC (").arg(recipe->fermentables.at(i).f_color, 1, 'f', 0) +
 								recipe->fermentables.at(i).f_supplier + ")");
-	    painter.drawText(265, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(recipe->fermentables.at(i).f_percentage, 1, 'f', 1));
-	    painter.drawText(340, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(recipe->fermentables.at(i).f_yield, 1, 'f', 1));
-	    painter.drawText(415, y+4,  90, 20, Qt::AlignLeft,  soort);
-	    painter.drawText(510, y+4,  90, 20, Qt::AlignLeft,  fermentable_added[recipe->fermentables.at(i).f_added]);
+	    painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(recipe->fermentables.at(i).f_percentage, 1, 'f', 1));
+	    painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(recipe->fermentables.at(i).f_yield, 1, 'f', 1));
+	    painter.drawText(435, y+4,  80, 20, Qt::AlignLeft,  soort);
+	    painter.drawText(520, y+4,  80, 20, Qt::AlignLeft,  fermentable_added[recipe->fermentables.at(i).f_added]);
 	    painter.drawText(605, y+4,  60, 20, Qt::AlignRight, amount);
 	    painter.drawText(670, y+4,  60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3));
 	    y += 20;
@@ -416,12 +422,12 @@
 
 	/* Hops */
 	painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 260, 20, Qt::AlignLeft, tr("Hop"));
-        painter.drawText(265, y+4,  70, 20, Qt::AlignRight, tr("Alpha"));
-        painter.drawText(340, y+4,  70, 20, Qt::AlignRight, tr("IBU"));
-        painter.drawText(415, y+4,  90, 20, Qt::AlignLeft, tr("Type"));
-        painter.drawText(510, y+4,  90, 20, Qt::AlignLeft, tr("Use at"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft, tr("Hop"));
+        painter.drawText(285, y+4,  70, 20, Qt::AlignRight, tr("Alpha"));
+        painter.drawText(360, y+4,  70, 20, Qt::AlignRight, tr("IBU"));
+        painter.drawText(435, y+4,  80, 20, Qt::AlignLeft, tr("Type"));
+        painter.drawText(520, y+4,  80, 20, Qt::AlignLeft, tr("Use at"));
         painter.drawText(605, y+4,  60, 20, Qt::AlignRight, tr("Amount"));
         painter.drawText(670, y+4,  60, 20, Qt::AlignRight, tr("Cost"));
         y += 20;
@@ -447,12 +453,12 @@
 	    else
 		amount = QString("%1 gr").arg(recipe->hops.at(i).h_amount * 1000, 1, 'f', 1);
 
-	    painter.fillRect(  0, y,   735, 20, h_line);
-	    painter.drawText(  0, y+4, 260, 20, Qt::AlignLeft,  recipe->hops.at(i).h_name + " (" + recipe->hops.at(i).h_origin + ")");
-	    painter.drawText(265, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(recipe->hops.at(i).h_alpha, 1, 'f', 1));
-	    painter.drawText(340, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(ibu, 1, 'f', 1));
-	    painter.drawText(415, y+4,  90, 20, Qt::AlignLeft,  hop_forms[recipe->hops.at(i).h_form]);
-	    painter.drawText(510, y+4,  90, 20, Qt::AlignLeft,	use);
+	    painter.fillRect( 20, y,   715, 20, h_line);
+	    painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft,  recipe->hops.at(i).h_name + " (" + recipe->hops.at(i).h_origin + ")");
+	    painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(recipe->hops.at(i).h_alpha, 1, 'f', 1));
+	    painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(ibu, 1, 'f', 1));
+	    painter.drawText(435, y+4,  80, 20, Qt::AlignLeft,  hop_forms[recipe->hops.at(i).h_form]);
+	    painter.drawText(520, y+4,  80, 20, Qt::AlignLeft,	use);
 	    painter.drawText(605, y+4,  60, 20, Qt::AlignRight, amount);
             painter.drawText(670, y+4,  60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3));
 	    y += 20;
@@ -463,11 +469,11 @@
 
 	/* Yeasts */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 335, 20, Qt::AlignLeft, tr("Yeast"));
-        painter.drawText(340, y+4,  70, 20, Qt::AlignRight, tr("Attn"));
-        painter.drawText(415, y+4,  90, 20, Qt::AlignLeft, tr("Type"));
-        painter.drawText(510, y+4,  90, 20, Qt::AlignLeft, tr("Use at"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 335, 20, Qt::AlignLeft, tr("Yeast"));
+        painter.drawText(360, y+4,  70, 20, Qt::AlignRight, tr("Attn"));
+        painter.drawText(435, y+4,  80, 20, Qt::AlignLeft, tr("Type"));
+        painter.drawText(520, y+4,  80, 20, Qt::AlignLeft, tr("Use at"));
         painter.drawText(605, y+4,  60, 20, Qt::AlignRight, tr("Amount"));
         painter.drawText(670, y+4,  60, 20, Qt::AlignRight, tr("Cost"));
         y += 20;
@@ -484,13 +490,13 @@
 	    else
 		amount = QString("%1 ml").arg(recipe->yeasts.at(i).y_amount * 1000.0, 1, 'f', 1);
 
-	    painter.fillRect(  0, y,   735, 20, y_line);
-            painter.drawText(  0, y+4, 260, 20, Qt::AlignLeft,  recipe->yeasts.at(i).y_laboratory + " " +
+	    painter.fillRect( 20, y,   715, 20, y_line);
+            painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft,  recipe->yeasts.at(i).y_laboratory + " " +
 			    					recipe->yeasts.at(i).y_product_id + " (" +
 								recipe->yeasts.at(i).y_name + ")");
-	    painter.drawText(340, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(recipe->yeasts.at(i).y_attenuation, 1, 'f', 1));
-	    painter.drawText(415, y+4,  90, 20, Qt::AlignLeft,	yeast_forms[recipe->yeasts.at(i).y_form]);
-	    painter.drawText(510, y+4,  90, 20, Qt::AlignLeft,	yeast_use[recipe->yeasts.at(i).y_use]);
+	    painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(recipe->yeasts.at(i).y_attenuation, 1, 'f', 1));
+	    painter.drawText(435, y+4,  80, 20, Qt::AlignLeft,	yeast_forms[recipe->yeasts.at(i).y_form]);
+	    painter.drawText(520, y+4,  80, 20, Qt::AlignLeft,	yeast_use[recipe->yeasts.at(i).y_use]);
 	    painter.drawText(605, y+4,  60, 20, Qt::AlignRight,	amount);
 	    painter.drawText(670, y+4,  60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3));
 	    y += 20;
@@ -508,10 +514,10 @@
 
 	/* Miscs */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 410, 20, Qt::AlignLeft, tr("Misc ingredient"));
-        painter.drawText(415, y+4,  90, 20, Qt::AlignLeft, tr("Type"));
-        painter.drawText(510, y+4,  90, 20, Qt::AlignLeft, tr("Use at"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 410, 20, Qt::AlignLeft, tr("Misc ingredient"));
+        painter.drawText(435, y+4,  80, 20, Qt::AlignLeft, tr("Type"));
+        painter.drawText(520, y+4,  80, 20, Qt::AlignLeft, tr("Use at"));
         painter.drawText(605, y+4,  60, 20, Qt::AlignRight, tr("Amount"));
         painter.drawText(670, y+4,  60, 20, Qt::AlignRight, tr("Cost"));
         y += 20;
@@ -527,16 +533,16 @@
 		use = misc_uses[recipe->miscs.at(i).m_use_use];
 
 	    if (recipe->miscs.at(i).m_type == 4)					// Water agent
-		painter.fillRect(  0, y,   735, 20, mw_line);
+		painter.fillRect( 20, y,   715, 20, mw_line);
 	    else if (recipe->miscs.at(i).m_type == 3)					// Fining
-		painter.fillRect(  0, y,   735, 20, mf_line);
+		painter.fillRect( 20, y,   715, 20, mf_line);
 	    else if (recipe->miscs.at(i).m_type < 3 || recipe->miscs.at(i).m_type == 5)	// Spice, Herb, Flavour, Yeast nutrient
-		painter.fillRect(  0, y,   735, 20, ms_line);
+		painter.fillRect( 20, y,   715, 20, ms_line);
 	    else
-	    	painter.fillRect(  0, y,   735, 20, mo_line);
-            painter.drawText(  0, y+4, 410, 20, Qt::AlignLeft,  recipe->miscs.at(i).m_name);
-	    painter.drawText(415, y+4,  90, 20, Qt::AlignLeft,	misc_types[recipe->miscs.at(i).m_type]);
-	    painter.drawText(510, y+4,  90, 20, Qt::AlignLeft,	use);
+	    	painter.fillRect( 20, y,   715, 20, mo_line);
+            painter.drawText( 20, y+4, 410, 20, Qt::AlignLeft,  recipe->miscs.at(i).m_name);
+	    painter.drawText(435, y+4,  80, 20, Qt::AlignLeft,	misc_types[recipe->miscs.at(i).m_type]);
+	    painter.drawText(520, y+4,  80, 20, Qt::AlignLeft,	use);
 	    painter.drawText(605, y+4,  60, 20, Qt::AlignRight,
 			    QString("%1 %2").arg(recipe->miscs.at(i).m_amount * 1000.0, 1, 'f', 1).arg(recipe->miscs.at(i).m_amount_is_weight ? "gr":"ml"));
 	    painter.drawText(670, y+4,  60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3));
@@ -555,9 +561,9 @@
 
 	/* Mash */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 160, 20, Qt::AlignLeft, tr("Mash step"));
-	painter.drawText(165, y+4,  90, 20, Qt::AlignLeft, tr("Step type"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 160, 20, Qt::AlignLeft, tr("Mash step"));
+	painter.drawText(180, y+4,  80, 20, Qt::AlignLeft, tr("Step type"));
         painter.drawText(260, y+4,  60, 20, Qt::AlignRight, tr("Start °C"));
 	painter.drawText(325, y+4,  60, 20, Qt::AlignRight, tr("End °C"));
 	painter.drawText(390, y+4,  60, 20, Qt::AlignRight, tr("Time"));
@@ -568,9 +574,9 @@
         y += 20;
         painter.setFont(QFont("Helvetica", 9, QFont::Normal));
 	for (int i = 0; i < recipe->mashs.size(); i++) {
-	    painter.fillRect(  0, y,   735, 20, m_line);
-	    painter.drawText(  0, y+4, 160, 20, Qt::AlignLeft,	recipe->mashs.at(i).step_name);
-	    painter.drawText(165, y+4,  90, 20, Qt::AlignLeft,	step_types[recipe->mashs.at(i).step_type]);
+	    painter.fillRect( 20, y,   715, 20, m_line);
+	    painter.drawText( 20, y+4, 160, 20, Qt::AlignLeft,	recipe->mashs.at(i).step_name);
+	    painter.drawText(180, y+4,  80, 20, Qt::AlignLeft,	step_types[recipe->mashs.at(i).step_type]);
 	    painter.drawText(260, y+4,  60, 20, Qt::AlignRight, QString("%1").arg(recipe->mashs.at(i).step_temp, 1, 'f', 1));
 	    painter.drawText(325, y+4,  60, 20, Qt::AlignRight,	QString("%1").arg(recipe->mashs.at(i).end_temp, 1, 'f', 1));
 	    painter.drawText(390, y+4,  60, 20, Qt::AlignRight,	QString("%1").arg(recipe->mashs.at(i).step_time, 1, 'f', 0));
@@ -593,64 +599,64 @@
 
 	/* Water */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 135, 20, Qt::AlignLeft,  tr("Water source"));
-        painter.drawText(135, y+4,  70, 20, Qt::AlignRight, tr("Volume"));
-        painter.drawText(210, y+4,  70, 20, Qt::AlignRight, tr("Ca"));
-        painter.drawText(285, y+4,  70, 20, Qt::AlignRight, tr("Mg"));
-        painter.drawText(360, y+4,  70, 20, Qt::AlignRight, tr("CaCO3"));
-        painter.drawText(435, y+4,  70, 20, Qt::AlignRight, tr("Na"));
-        painter.drawText(510, y+4,  70, 20, Qt::AlignRight, tr("Cl"));
-        painter.drawText(585, y+4,  70, 20, Qt::AlignRight, tr("SO4"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft,  tr("Water source"));
+        painter.drawText(170, y+4,  70, 20, Qt::AlignRight, tr("Volume"));
+        painter.drawText(240, y+4,  70, 20, Qt::AlignRight, tr("Ca"));
+        painter.drawText(310, y+4,  70, 20, Qt::AlignRight, tr("Mg"));
+        painter.drawText(380, y+4,  70, 20, Qt::AlignRight, tr("CaCO3"));
+        painter.drawText(450, y+4,  70, 20, Qt::AlignRight, tr("Na"));
+        painter.drawText(520, y+4,  70, 20, Qt::AlignRight, tr("Cl"));
+        painter.drawText(590, y+4,  70, 20, Qt::AlignRight, tr("SO4"));
         painter.drawText(660, y+4,  70, 20, Qt::AlignRight, tr("pH"));
         y += 20;
         painter.setFont(QFont("Helvetica", 9, QFont::Normal));
-	painter.fillRect(  0, y,   735, 20, w_line);
-	painter.drawText(  0, y+4, 135, 20, Qt::AlignLeft,  recipe->w1_name);
-	painter.drawText(135, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(recipe->w1_amount, 1, 'f', 1));
-	painter.drawText(210, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_calcium, 1, 'f', 1));
-	painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_magnesium, 1, 'f', 1));
-	painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_total_alkalinity, 1, 'f', 1));
-	painter.drawText(435, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_sodium, 1, 'f', 1));
-	painter.drawText(510, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_chloride, 1, 'f', 1));
-	painter.drawText(585, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_sulfate, 1, 'f', 1));
+	painter.fillRect( 20, y,   715, 20, w_line);
+	painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft,  recipe->w1_name);
+	painter.drawText(170, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(recipe->w1_amount, 1, 'f', 1));
+	painter.drawText(240, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_calcium, 1, 'f', 1));
+	painter.drawText(310, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_magnesium, 1, 'f', 1));
+	painter.drawText(380, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_total_alkalinity, 1, 'f', 1));
+	painter.drawText(450, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_sodium, 1, 'f', 1));
+	painter.drawText(520, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_chloride, 1, 'f', 1));
+	painter.drawText(590, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_sulfate, 1, 'f', 1));
 	painter.drawText(660, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_ph, 1, 'f', 2));
 	y += 20;
 	if (recipe->w2_amount > 0) {
 	    /*
 	     * If there is dillution water, show it and the mixed result too.
 	     */
-            painter.fillRect(  0, y,   735, 20, w_line);
-            painter.drawText(  0, y+4, 135, 20, Qt::AlignLeft,  recipe->w2_name);
-            painter.drawText(135, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(recipe->w2_amount, 1, 'f', 1));
-            painter.drawText(210, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_calcium, 1, 'f', 1));
-            painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_magnesium, 1, 'f', 1));
-            painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_total_alkalinity, 1, 'f', 1));
-            painter.drawText(435, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_sodium, 1, 'f', 1));
-            painter.drawText(510, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_chloride, 1, 'f', 1));
-            painter.drawText(585, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_sulfate, 1, 'f', 1));
+            painter.fillRect( 20, y,   715, 20, w_line);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft,  recipe->w2_name);
+            painter.drawText(170, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(recipe->w2_amount, 1, 'f', 1));
+            painter.drawText(240, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_calcium, 1, 'f', 1));
+            painter.drawText(310, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_magnesium, 1, 'f', 1));
+            painter.drawText(380, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_total_alkalinity, 1, 'f', 1));
+            painter.drawText(450, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_sodium, 1, 'f', 1));
+            painter.drawText(520, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_chloride, 1, 'f', 1));
+            painter.drawText(590, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_sulfate, 1, 'f', 1));
             painter.drawText(660, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_ph, 1, 'f', 2));
             y += 20;
-            painter.fillRect(  0, y,   735, 20, w_line);
-            painter.drawText(  0, y+4, 135, 20, Qt::AlignLeft,  tr("Mixed water"));
-            painter.drawText(135, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(recipe->wg_amount, 1, 'f', 1));
-            painter.drawText(210, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_calcium, 1, 'f', 1));
-            painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_magnesium, 1, 'f', 1));
-            painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_total_alkalinity, 1, 'f', 1));
-            painter.drawText(435, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_sodium, 1, 'f', 1));
-            painter.drawText(510, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_chloride, 1, 'f', 1));
-            painter.drawText(585, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_sulfate, 1, 'f', 1));
+            painter.fillRect( 20, y,   715, 20, w_line);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft,  tr("Mixed water"));
+            painter.drawText(170, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(recipe->wg_amount, 1, 'f', 1));
+            painter.drawText(240, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_calcium, 1, 'f', 1));
+            painter.drawText(310, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_magnesium, 1, 'f', 1));
+            painter.drawText(380, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_total_alkalinity, 1, 'f', 1));
+            painter.drawText(450, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_sodium, 1, 'f', 1));
+            painter.drawText(520, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_chloride, 1, 'f', 1));
+            painter.drawText(590, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_sulfate, 1, 'f', 1));
             painter.drawText(660, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_ph, 1, 'f', 2));
             y += 20;
 	}
-	painter.fillRect(  0, y,   735, 20, w_line);
-        painter.drawText(  0, y+4, 135, 20, Qt::AlignLeft,  tr("Treated water"));
-        painter.drawText(210, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_calcium, 1, 'f', 1));
-        painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_magnesium, 1, 'f', 1));
-        painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_total_alkalinity, 1, 'f', 1));
-        painter.drawText(435, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_sodium, 1, 'f', 1));
-        painter.drawText(510, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_chloride, 1, 'f', 1));
-        painter.drawText(585, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_sulfate, 1, 'f', 1));
+	painter.fillRect( 20, y,   715, 20, w_line);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft,  tr("Treated water"));
+        painter.drawText(240, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_calcium, 1, 'f', 1));
+        painter.drawText(310, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_magnesium, 1, 'f', 1));
+        painter.drawText(380, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_total_alkalinity, 1, 'f', 1));
+        painter.drawText(450, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_sodium, 1, 'f', 1));
+        painter.drawText(520, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_chloride, 1, 'f', 1));
+        painter.drawText(590, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_sulfate, 1, 'f', 1));
         painter.drawText(660, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_ph, 1, 'f', 2));
 	y += 20;
 
@@ -672,13 +678,13 @@
 	    	/* Notes header */
             	painter.setFont(QFont("Helvetica", 9, QFont::Bold));
             	painter.setPen(Qt::black);
-            	painter.fillRect(  0, y,   735, 20, c_header);
-            	painter.drawText(  0, y+4, 735, 20, Qt::AlignCenter, tr("Recipe notes"));
+            	painter.fillRect( 20, y,   715, 20, c_header);
+            	painter.drawText( 20, y+4, 715, 20, Qt::AlignCenter, tr("Recipe notes"));
             	y += 20;
             	painter.setFont(QFont("Helvetica", 9, QFont::Normal));
 	    	for (int i = 0; i < lines.size(); i++) {
-            	    painter.fillRect(  0, y,   735, 20, c_line1);
-	    	    painter.drawText(  0, y+4, 735, 20, Qt::AlignLeft, lines[i]);
+            	    painter.fillRect( 20, y,   715, 20, c_line1);
+	    	    painter.drawText( 20, y+4, 715, 20, Qt::AlignLeft, lines[i]);
 	     	    y += 20;
 	    	}
 	    }
@@ -686,78 +692,78 @@
 
     } else if (p_job == PR_PRODUCT) {
 
-	qDebug() << "print product";
+	qInfo() << "print product" << product->record;
 	printHeader(&painter);
         y = 120;
         /* Generic header */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
         painter.setPen(Qt::black);
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 735, 20, Qt::AlignCenter, tr("Product overview"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 715, 20, Qt::AlignCenter, tr("Product overview"));
         y += 20;
         painter.setFont(QFont("Helvetica", 9, QFont::Normal));
-        painter.fillRect(  0, y,   300, 20, c_line1);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Brew type"));
-        painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, recipe_types[product->type]);
-        painter.fillRect(435, y,   300, 20, c_line1);
-        painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Efficiency"));
+        painter.fillRect( 20, y,   330, 20, c_line1);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Brew type"));
+        painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, recipe_types[product->type]);
+        painter.fillRect(405, y,   330, 20, c_line1);
+        painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Efficiency"));
         painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 %").arg(product->efficiency, 1, 'f', 1));
         y += 20;
-        painter.fillRect(  0, y,   300, 20, c_line1);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Boil time"));
-        painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1 minutes.").arg(product->boil_time, 1, 'f', 0));
-        painter.fillRect(435, y,   300, 20, c_line1);
-        painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Batch size"));
+        painter.fillRect( 20, y,   330, 20, c_line1);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Boil time"));
+        painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1 minutes.").arg(product->boil_time, 1, 'f', 0));
+        painter.fillRect(405, y,   330, 20, c_line1);
+        painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Batch size"));
         painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 L.").arg(product->batch_size, 1, 'f', 1));
         y += 20;
-        painter.fillRect(  0, y,   300, 20, c_line1);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Start SG"));
-        painter.drawText(120, y+4,  90, 20, Qt::AlignLeft, QString("%1").arg(product->est_og, 1, 'f', 3));
-        painter.drawText(210, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(product->st_og_min, 1, 'f', 3).arg(product->st_og_max, 1, 'f', 3));
-        painter.fillRect(435, y,   300, 20, c_line1);
-        painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("End SG"));
+        painter.fillRect( 20, y,   330, 20, c_line1);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Start SG"));
+        painter.drawText(170, y+4,  90, 20, Qt::AlignLeft, QString("%1").arg(product->est_og, 1, 'f', 3));
+        painter.drawText(260, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(product->st_og_min, 1, 'f', 3).arg(product->st_og_max, 1, 'f', 3));
+        painter.fillRect(405, y,   330, 20, c_line1);
+        painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("End SG"));
         painter.drawText(555, y+4,  90, 20, Qt::AlignLeft, QString("%1").arg(product->est_fg, 1, 'f', 3));
         painter.drawText(645, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(product->st_fg_min, 1, 'f', 3).arg(product->st_fg_max, 1, 'f', 3));
         y += 20;
-        painter.fillRect(  0, y,   300, 20, c_line1);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Estimated Alcohol"));
-        painter.drawText(120, y+4,  90, 20, Qt::AlignLeft, QString("%1%").arg(product->est_abv, 1, 'f', 1));
-        painter.drawText(210, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(product->st_abv_min, 1, 'f', 1).arg(product->st_abv_max, 1, 'f', 1));
-        painter.fillRect(435, y,   300, 20, c_line1);
-        painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Estimated CO2 vol"));
+        painter.fillRect( 20, y,   330, 20, c_line1);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Estimated Alcohol"));
+        painter.drawText(170, y+4,  90, 20, Qt::AlignLeft, QString("%1%").arg(product->est_abv, 1, 'f', 1));
+        painter.drawText(260, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(product->st_abv_min, 1, 'f', 1).arg(product->st_abv_max, 1, 'f', 1));
+        painter.fillRect(405, y,   330, 20, c_line1);
+        painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Estimated CO2 vol"));
         painter.drawText(555, y+4,  90, 20, Qt::AlignLeft, QString("%1").arg(product->est_carb, 1, 'f', 1));
         painter.drawText(645, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(product->st_carb_min, 1, 'f', 1).arg(product->st_carb_max, 1, 'f', 1));
         y += 20;
-        painter.fillRect(  0, y,   120, 20, c_line1);
-        painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Color (") + color_method[product->color_method] + ")");
-        painter.fillRect(120, y,   180, 20, Utils::ebc_to_color(product->est_color));
+        painter.fillRect( 20, y,   150, 20, c_line1);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Color (") + color_method[product->color_method] + ")");
+        painter.fillRect(170, y,   180, 20, Utils::ebc_to_color(product->est_color));
         if (product->est_color > 30)
             painter.setPen(Qt::white);
-        painter.drawText(120, y+4,  90, 20, Qt::AlignLeft, QString("%1 EBC").arg(product->est_color, 1, 'f', 0));
-        painter.drawText(210, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(product->st_color_min, 1, 'f', 0).arg(product->st_color_max, 1, 'f', 0));
+        painter.drawText(170, y+4,  90, 20, Qt::AlignLeft, QString("%1 EBC").arg(product->est_color, 1, 'f', 0));
+        painter.drawText(260, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(product->st_color_min, 1, 'f', 0).arg(product->st_color_max, 1, 'f', 0));
 	painter.setPen(Qt::black);
-        painter.fillRect(435, y,   300, 20, c_line1);
-        painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("IBU (") + ibu_method[product->ibu_method] + ")");
+        painter.fillRect(405, y,   330, 20, c_line1);
+        painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("IBU (") + ibu_method[product->ibu_method] + ")");
         painter.drawText(555, y+4,  90, 20, Qt::AlignLeft, QString("%1").arg(product->est_ibu, 1, 'f', 1));
         painter.drawText(645, y+4,  90, 20, Qt::AlignLeft, QString("(%1 - %2)").arg(product->st_ibu_min, 1, 'f', 0).arg(product->st_ibu_max, 1, 'f', 0));
 	y += 20;
-	painter.fillRect(  0, y,   300, 20, c_line1);
-	painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Beer style"));
-	painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, product->st_name);
-	painter.fillRect(435, y,   300, 20, c_line1);
-	painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Stage"));
+	painter.fillRect( 20, y,   330, 20, c_line1);
+	painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Beer style"));
+	painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, product->st_name);
+	painter.fillRect(405, y,   330, 20, c_line1);
+	painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Stage"));
 	painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, prod_stages[product->stage]);
         y += 40;
 
 	/* Fermentables */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
         painter.setPen(Qt::black);
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 260, 20, Qt::AlignLeft, tr("Fermentable"));
-        painter.drawText(265, y+4,  70, 20, Qt::AlignRight, tr("Percent"));
-        painter.drawText(340, y+4,  70, 20, Qt::AlignRight, tr("Yield"));
-        painter.drawText(415, y+4,  90, 20, Qt::AlignLeft, tr("Type"));
-        painter.drawText(510, y+4,  90, 20, Qt::AlignLeft, tr("Use at"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft, tr("Fermentable"));
+        painter.drawText(285, y+4,  70, 20, Qt::AlignRight, tr("Percent"));
+        painter.drawText(360, y+4,  70, 20, Qt::AlignRight, tr("Yield"));
+        painter.drawText(435, y+4,  80, 20, Qt::AlignLeft, tr("Type"));
+        painter.drawText(520, y+4,  80, 20, Qt::AlignLeft, tr("Use at"));
         painter.drawText(605, y+4,  60, 20, Qt::AlignRight, tr("Amount"));
         painter.drawText(670, y+4,  60, 20, Qt::AlignRight, tr("Cost"));
         y += 20;
@@ -780,18 +786,18 @@
             else
                 amount = QString("%1 gr").arg(product->fermentables.at(i).f_amount * 1000, 1, 'f', 0);
 
-            painter.fillRect(  0, y,   735, 20, f_line);
+            painter.fillRect( 20, y,   715, 20, f_line);
 
-            painter.drawText(  0, y+4, 260, 20, Qt::AlignLeft,  product->fermentables.at(i).f_name +
+            painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft,  product->fermentables.at(i).f_name +
                                                                 QString(", %1 EBC (").arg(product->fermentables.at(i).f_color, 1, 'f', 0) +
                                                                 product->fermentables.at(i).f_supplier + ")");
 	    if (product->fermentables.at(i).f_added < FERMENTABLE_ADDED_BOTTLE)
-            	painter.drawText(265, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(product->fermentables.at(i).f_percentage, 1, 'f', 1));
+            	painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(product->fermentables.at(i).f_percentage, 1, 'f', 1));
 	    else
-		painter.drawText(265, y+4,  70, 20, Qt::AlignRight, "");
-            painter.drawText(340, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(product->fermentables.at(i).f_yield, 1, 'f', 1));
-            painter.drawText(415, y+4,  90, 20, Qt::AlignLeft,  soort);
-            painter.drawText(510, y+4,  90, 20, Qt::AlignLeft,  fermentable_added[product->fermentables.at(i).f_added]);
+		painter.drawText(285, y+4,  70, 20, Qt::AlignRight, "");
+            painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(product->fermentables.at(i).f_yield, 1, 'f', 1));
+            painter.drawText(435, y+4,  80, 20, Qt::AlignLeft,  soort);
+            painter.drawText(520, y+4,  80, 20, Qt::AlignLeft,  fermentable_added[product->fermentables.at(i).f_added]);
             painter.drawText(605, y+4,  60, 20, Qt::AlignRight, amount);
             painter.drawText(670, y+4,  60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3));
             y += 20;
@@ -802,12 +808,12 @@
 
 	/* Hops */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 260, 20, Qt::AlignLeft, tr("Hop"));
-        painter.drawText(265, y+4,  70, 20, Qt::AlignRight, tr("Alpha"));
-        painter.drawText(340, y+4,  70, 20, Qt::AlignRight, tr("IBU"));
-        painter.drawText(415, y+4,  90, 20, Qt::AlignLeft, tr("Type"));
-        painter.drawText(510, y+4,  90, 20, Qt::AlignLeft, tr("Use at"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft, tr("Hop"));
+        painter.drawText(285, y+4,  70, 20, Qt::AlignRight, tr("Alpha"));
+        painter.drawText(360, y+4,  70, 20, Qt::AlignRight, tr("IBU"));
+        painter.drawText(435, y+4,  80, 20, Qt::AlignLeft, tr("Type"));
+        painter.drawText(520, y+4,  80, 20, Qt::AlignLeft, tr("Use at"));
         painter.drawText(605, y+4,  60, 20, Qt::AlignRight, tr("Amount"));
         painter.drawText(670, y+4,  60, 20, Qt::AlignRight, tr("Cost"));
         y += 20;
@@ -833,12 +839,12 @@
             else
                 amount = QString("%1 gr").arg(product->hops.at(i).h_amount * 1000, 1, 'f', 1);
 
-            painter.fillRect(  0, y,   735, 20, h_line);
-            painter.drawText(  0, y+4, 260, 20, Qt::AlignLeft,  product->hops.at(i).h_name + " (" + product->hops.at(i).h_origin + ")");
-            painter.drawText(265, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(product->hops.at(i).h_alpha, 1, 'f', 1));
-            painter.drawText(340, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(ibu, 1, 'f', 1));
-            painter.drawText(415, y+4,  90, 20, Qt::AlignLeft,  hop_forms[product->hops.at(i).h_form]);
-            painter.drawText(510, y+4,  90, 20, Qt::AlignLeft,  use);
+            painter.fillRect( 20, y,   715, 20, h_line);
+            painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft,  product->hops.at(i).h_name + " (" + product->hops.at(i).h_origin + ")");
+            painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(product->hops.at(i).h_alpha, 1, 'f', 1));
+            painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(ibu, 1, 'f', 1));
+            painter.drawText(435, y+4,  80, 20, Qt::AlignLeft,  hop_forms[product->hops.at(i).h_form]);
+            painter.drawText(520, y+4,  80, 20, Qt::AlignLeft,  use);
             painter.drawText(605, y+4,  60, 20, Qt::AlignRight, amount);
             painter.drawText(670, y+4,  60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3));
             y += 20;
@@ -849,11 +855,11 @@
 
 	/* Yeasts */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 335, 20, Qt::AlignLeft, tr("Yeast"));
-        painter.drawText(340, y+4,  70, 20, Qt::AlignRight, tr("Attn"));
-        painter.drawText(415, y+4,  90, 20, Qt::AlignLeft, tr("Type"));
-        painter.drawText(510, y+4,  90, 20, Qt::AlignLeft, tr("Use at"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 335, 20, Qt::AlignLeft, tr("Yeast"));
+        painter.drawText(360, y+4,  70, 20, Qt::AlignRight, tr("Attn"));
+        painter.drawText(435, y+4,  80, 20, Qt::AlignLeft, tr("Type"));
+        painter.drawText(520, y+4,  80, 20, Qt::AlignLeft, tr("Use at"));
         painter.drawText(605, y+4,  60, 20, Qt::AlignRight, tr("Amount"));
         painter.drawText(670, y+4,  60, 20, Qt::AlignRight, tr("Cost"));
         y += 20;
@@ -870,13 +876,13 @@
             else
                 amount = QString("%1 ml").arg(product->yeasts.at(i).y_amount * 1000.0, 1, 'f', 1);
 
-            painter.fillRect(  0, y,   735, 20, y_line);
-            painter.drawText(  0, y+4, 260, 20, Qt::AlignLeft,  product->yeasts.at(i).y_laboratory + " " +
+            painter.fillRect( 20, y,   715, 20, y_line);
+            painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft,  product->yeasts.at(i).y_laboratory + " " +
                                                                 product->yeasts.at(i).y_product_id + " (" +
                                                                 product->yeasts.at(i).y_name + ")");
-            painter.drawText(340, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(product->yeasts.at(i).y_attenuation, 1, 'f', 1));
-            painter.drawText(415, y+4,  90, 20, Qt::AlignLeft,  yeast_forms[product->yeasts.at(i).y_form]);
-            painter.drawText(510, y+4,  90, 20, Qt::AlignLeft,  yeast_use[product->yeasts.at(i).y_use]);
+            painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1%").arg(product->yeasts.at(i).y_attenuation, 1, 'f', 1));
+            painter.drawText(435, y+4,  80, 20, Qt::AlignLeft,  yeast_forms[product->yeasts.at(i).y_form]);
+            painter.drawText(520, y+4,  80, 20, Qt::AlignLeft,  yeast_use[product->yeasts.at(i).y_use]);
             painter.drawText(605, y+4,  60, 20, Qt::AlignRight, amount);
             painter.drawText(670, y+4,  60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3));
             y += 20;
@@ -891,9 +897,9 @@
 			sv = product->prop_volume[i];
 		}
 	    }
-	    painter.fillRect(  0, y,   735, 20, y_line);
-            painter.drawText(  0, y+4, 260, 20, Qt::AlignLeft,  QString(tr("%1 step yeaststarter")).arg(st));
-	    painter.drawText(510, y+4,  90, 20, Qt::AlignLeft,  QString(tr("Before")));
+	    painter.fillRect( 20, y,   715, 20, y_line);
+            painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft,  QString(tr("%1 step yeaststarter")).arg(st));
+	    painter.drawText(520, y+4,  80, 20, Qt::AlignLeft,  QString(tr("Before")));
 	    painter.drawText(605, y+4,  60, 20, Qt::AlignRight, QString("%1 L").arg(sv, 1, 'f', 3));
 	    y += 20;
 	}
@@ -910,10 +916,10 @@
 
 	/* Miscs */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 410, 20, Qt::AlignLeft, tr("Misc ingredient"));
-        painter.drawText(415, y+4,  90, 20, Qt::AlignLeft, tr("Type"));
-        painter.drawText(510, y+4,  90, 20, Qt::AlignLeft, tr("Use at"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 410, 20, Qt::AlignLeft, tr("Misc ingredient"));
+        painter.drawText(435, y+4,  80, 20, Qt::AlignLeft, tr("Type"));
+        painter.drawText(520, y+4,  80, 20, Qt::AlignLeft, tr("Use at"));
         painter.drawText(605, y+4,  60, 20, Qt::AlignRight, tr("Amount"));
         painter.drawText(670, y+4,  60, 20, Qt::AlignRight, tr("Cost"));
         y += 20;
@@ -929,16 +935,16 @@
                 use = misc_uses[product->miscs.at(i).m_use_use];
 
             if (product->miscs.at(i).m_type == 4)                                        // Water agent
-                painter.fillRect(  0, y,   735, 20, mw_line);
+                painter.fillRect( 20, y,   715, 20, mw_line);
             else if (product->miscs.at(i).m_type == 3)                                   // Fining
-                painter.fillRect(  0, y,   735, 20, mf_line);
+                painter.fillRect( 20, y,   715, 20, mf_line);
             else if (product->miscs.at(i).m_type < 3 || product->miscs.at(i).m_type == 5) // Spice, Herb, Flavour, Yeast nutrient
-                painter.fillRect(  0, y,   735, 20, ms_line);
+                painter.fillRect( 20, y,   715, 20, ms_line);
             else
-                painter.fillRect(  0, y,   735, 20, mo_line);
-            painter.drawText(  0, y+4, 410, 20, Qt::AlignLeft,  product->miscs.at(i).m_name);
-            painter.drawText(415, y+4,  90, 20, Qt::AlignLeft,  misc_types[product->miscs.at(i).m_type]);
-            painter.drawText(510, y+4,  90, 20, Qt::AlignLeft,  use);
+                painter.fillRect( 20, y,   715, 20, mo_line);
+            painter.drawText( 20, y+4, 410, 20, Qt::AlignLeft,  product->miscs.at(i).m_name);
+            painter.drawText(435, y+4,  80, 20, Qt::AlignLeft,  misc_types[product->miscs.at(i).m_type]);
+            painter.drawText(520, y+4,  80, 20, Qt::AlignLeft,  use);
             painter.drawText(605, y+4,  60, 20, Qt::AlignRight,
                             QString("%1 %2").arg(product->miscs.at(i).m_amount * 1000.0, 1, 'f', 1).arg(product->miscs.at(i).m_amount_is_weight ? "gr":"ml"));
             painter.drawText(670, y+4,  60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3));
@@ -957,9 +963,9 @@
 
 	/* Mash */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 160, 20, Qt::AlignLeft, tr("Mash step"));
-        painter.drawText(165, y+4,  90, 20, Qt::AlignLeft, tr("Step type"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 160, 20, Qt::AlignLeft, tr("Mash step"));
+        painter.drawText(180, y+4,  80, 20, Qt::AlignLeft, tr("Step type"));
         painter.drawText(260, y+4,  60, 20, Qt::AlignRight, tr("Start °C"));
         painter.drawText(325, y+4,  60, 20, Qt::AlignRight, tr("End °C"));
         painter.drawText(390, y+4,  60, 20, Qt::AlignRight, tr("Time"));
@@ -970,9 +976,9 @@
         y += 20;
         painter.setFont(QFont("Helvetica", 9, QFont::Normal));
         for (int i = 0; i < product->mashs.size(); i++) {
-            painter.fillRect(  0, y,   735, 20, m_line);
-            painter.drawText(  0, y+4, 160, 20, Qt::AlignLeft,  product->mashs.at(i).step_name);
-            painter.drawText(165, y+4,  90, 20, Qt::AlignLeft,  step_types[product->mashs.at(i).step_type]);
+            painter.fillRect( 20, y,   715, 20, m_line);
+            painter.drawText( 20, y+4, 160, 20, Qt::AlignLeft,  product->mashs.at(i).step_name);
+            painter.drawText(180, y+4,  80, 20, Qt::AlignLeft,  step_types[product->mashs.at(i).step_type]);
             painter.drawText(260, y+4,  60, 20, Qt::AlignRight, QString("%1").arg(product->mashs.at(i).step_temp, 1, 'f', 1));
             painter.drawText(325, y+4,  60, 20, Qt::AlignRight, QString("%1").arg(product->mashs.at(i).end_temp, 1, 'f', 1));
             painter.drawText(390, y+4,  60, 20, Qt::AlignRight, QString("%1").arg(product->mashs.at(i).step_time, 1, 'f', 0));
@@ -995,64 +1001,64 @@
 
 	/* Water */
         painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-        painter.fillRect(  0, y,   735, 20, c_header);
-        painter.drawText(  0, y+4, 135, 20, Qt::AlignLeft,  tr("Water source"));
-        painter.drawText(135, y+4,  70, 20, Qt::AlignRight, tr("Volume"));
-        painter.drawText(210, y+4,  70, 20, Qt::AlignRight, tr("Ca"));
-        painter.drawText(285, y+4,  70, 20, Qt::AlignRight, tr("Mg"));
-        painter.drawText(360, y+4,  70, 20, Qt::AlignRight, tr("CaCO3"));
-        painter.drawText(435, y+4,  70, 20, Qt::AlignRight, tr("Na"));
-        painter.drawText(510, y+4,  70, 20, Qt::AlignRight, tr("Cl"));
-        painter.drawText(585, y+4,  70, 20, Qt::AlignRight, tr("SO4"));
+        painter.fillRect( 20, y,   715, 20, c_header);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft,  tr("Water source"));
+        painter.drawText(170, y+4,  70, 20, Qt::AlignRight, tr("Volume"));
+        painter.drawText(240, y+4,  70, 20, Qt::AlignRight, tr("Ca"));
+        painter.drawText(310, y+4,  70, 20, Qt::AlignRight, tr("Mg"));
+        painter.drawText(380, y+4,  70, 20, Qt::AlignRight, tr("CaCO3"));
+        painter.drawText(450, y+4,  70, 20, Qt::AlignRight, tr("Na"));
+        painter.drawText(520, y+4,  70, 20, Qt::AlignRight, tr("Cl"));
+        painter.drawText(590, y+4,  70, 20, Qt::AlignRight, tr("SO4"));
         painter.drawText(660, y+4,  70, 20, Qt::AlignRight, tr("pH"));
         y += 20;
         painter.setFont(QFont("Helvetica", 9, QFont::Normal));
-        painter.fillRect(  0, y,   735, 20, w_line);
-        painter.drawText(  0, y+4, 135, 20, Qt::AlignLeft,  product->w1_name);
-        painter.drawText(135, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(product->w1_amount, 1, 'f', 1));
-        painter.drawText(210, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_calcium, 1, 'f', 1));
-        painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_magnesium, 1, 'f', 1));
-        painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_total_alkalinity, 1, 'f', 1));
-        painter.drawText(435, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_sodium, 1, 'f', 1));
-        painter.drawText(510, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_chloride, 1, 'f', 1));
-        painter.drawText(585, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_sulfate, 1, 'f', 1));
+        painter.fillRect( 20, y,   715, 20, w_line);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft,  product->w1_name);
+        painter.drawText(170, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(product->w1_amount, 1, 'f', 1));
+        painter.drawText(240, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_calcium, 1, 'f', 1));
+        painter.drawText(310, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_magnesium, 1, 'f', 1));
+        painter.drawText(380, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_total_alkalinity, 1, 'f', 1));
+        painter.drawText(450, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_sodium, 1, 'f', 1));
+        painter.drawText(520, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_chloride, 1, 'f', 1));
+        painter.drawText(590, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_sulfate, 1, 'f', 1));
         painter.drawText(660, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w1_ph, 1, 'f', 2));
         y += 20;
 	if (product->w2_amount > 0) {
             /*
              * If there is dillution water, show it and the mixed result too.
              */
-            painter.fillRect(  0, y,   735, 20, w_line);
-            painter.drawText(  0, y+4, 135, 20, Qt::AlignLeft,  product->w2_name);
-            painter.drawText(135, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(product->w2_amount, 1, 'f', 1));
-            painter.drawText(210, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_calcium, 1, 'f', 1));
-            painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_magnesium, 1, 'f', 1));
-            painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_total_alkalinity, 1, 'f', 1));
-            painter.drawText(435, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_sodium, 1, 'f', 1));
-            painter.drawText(510, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_chloride, 1, 'f', 1));
-            painter.drawText(585, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_sulfate, 1, 'f', 1));
+            painter.fillRect( 20, y,   715, 20, w_line);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft,  product->w2_name);
+            painter.drawText(170, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(product->w2_amount, 1, 'f', 1));
+            painter.drawText(240, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_calcium, 1, 'f', 1));
+            painter.drawText(310, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_magnesium, 1, 'f', 1));
+            painter.drawText(380, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_total_alkalinity, 1, 'f', 1));
+            painter.drawText(450, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_sodium, 1, 'f', 1));
+            painter.drawText(520, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_chloride, 1, 'f', 1));
+            painter.drawText(590, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_sulfate, 1, 'f', 1));
             painter.drawText(660, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->w2_ph, 1, 'f', 2));
             y += 20;
-            painter.fillRect(  0, y,   735, 20, w_line);
-            painter.drawText(  0, y+4, 135, 20, Qt::AlignLeft,  tr("Mixed water"));
-            painter.drawText(135, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(product->wg_amount, 1, 'f', 1));
-            painter.drawText(210, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_calcium, 1, 'f', 1));
-            painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_magnesium, 1, 'f', 1));
-            painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_total_alkalinity, 1, 'f', 1));
-            painter.drawText(435, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_sodium, 1, 'f', 1));
-            painter.drawText(510, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_chloride, 1, 'f', 1));
-            painter.drawText(585, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_sulfate, 1, 'f', 1));
+            painter.fillRect( 20, y,   715, 20, w_line);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft,  tr("Mixed water"));
+            painter.drawText(170, y+4,  70, 20, Qt::AlignRight, QString("%1 L").arg(product->wg_amount, 1, 'f', 1));
+            painter.drawText(240, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_calcium, 1, 'f', 1));
+            painter.drawText(310, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_magnesium, 1, 'f', 1));
+            painter.drawText(380, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_total_alkalinity, 1, 'f', 1));
+            painter.drawText(450, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_sodium, 1, 'f', 1));
+            painter.drawText(520, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_chloride, 1, 'f', 1));
+            painter.drawText(590, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_sulfate, 1, 'f', 1));
             painter.drawText(660, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wg_ph, 1, 'f', 2));
             y += 20;
         }
-        painter.fillRect(  0, y,   735, 20, w_line);
-        painter.drawText(  0, y+4, 135, 20, Qt::AlignLeft,  tr("Treated water"));
-        painter.drawText(210, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_calcium, 1, 'f', 1));
-        painter.drawText(285, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_magnesium, 1, 'f', 1));
-        painter.drawText(360, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_total_alkalinity, 1, 'f', 1));
-        painter.drawText(435, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_sodium, 1, 'f', 1));
-        painter.drawText(510, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_chloride, 1, 'f', 1));
-        painter.drawText(585, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_sulfate, 1, 'f', 1));
+        painter.fillRect( 20, y,   715, 20, w_line);
+        painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft,  tr("Treated water"));
+        painter.drawText(240, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_calcium, 1, 'f', 1));
+        painter.drawText(310, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_magnesium, 1, 'f', 1));
+        painter.drawText(380, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_total_alkalinity, 1, 'f', 1));
+        painter.drawText(450, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_sodium, 1, 'f', 1));
+        painter.drawText(520, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_chloride, 1, 'f', 1));
+        painter.drawText(590, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_sulfate, 1, 'f', 1));
         painter.drawText(660, y+4,  70, 20, Qt::AlignRight, QString("%1").arg(product->wb_ph, 1, 'f', 2));
         y += 20;
 
@@ -1074,13 +1080,13 @@
                 /* Notes header */
                 painter.setFont(QFont("Helvetica", 9, QFont::Bold));
                 painter.setPen(Qt::black);
-                painter.fillRect(  0, y,   735, 20, c_header);
-                painter.drawText(  0, y+4, 735, 20, Qt::AlignCenter, tr("Recipe notes"));
+                painter.fillRect( 20, y,   715, 20, c_header);
+                painter.drawText( 20, y+4, 715, 20, Qt::AlignCenter, tr("Recipe notes"));
                 y += 20;
                 painter.setFont(QFont("Helvetica", 9, QFont::Normal));
                 for (int i = 0; i < lines.size(); i++) {
-                    painter.fillRect(  0, y,   735, 20, c_line1);
-                    painter.drawText(  0, y+4, 735, 20, Qt::AlignLeft, lines[i]);
+                    painter.fillRect( 20, y,   715, 20, c_line1);
+                    painter.drawText( 20, y+4, 715, 20, Qt::AlignLeft, lines[i]);
                     y += 20;
                 }
             }
@@ -1096,13 +1102,13 @@
             }
 	    painter.setFont(QFont("Helvetica", 9, QFont::Bold));
             painter.setPen(Qt::black);
-            painter.fillRect(  0, y,   735, 20, c_header);
-            painter.drawText(  0, y+2, 735, 20, Qt::AlignCenter, tr("Product brewday"));
+            painter.fillRect( 20, y,   715, 20, c_header);
+            painter.drawText( 20, y+2, 715, 20, Qt::AlignCenter, tr("Product brewday"));
             y += 20;
 	    painter.setFont(QFont("Helvetica", 9, QFont::Normal));
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Brewday start"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, product->brew_date_start.toString("dd MMM yyyy  hh:mm"));
+	    painter.fillRect( 20, y,   300, 20, c_line1);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Brewday start"));
+            painter.drawText(140, y+4, 180, 20, Qt::AlignLeft, product->brew_date_start.toString("dd MMM yyyy  hh:mm"));
             painter.fillRect(435, y,   300, 20, c_line1);
             painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Brewday end"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, product->brew_date_end.toString("dd MMM yyyy  hh:mm"));
@@ -1116,8 +1122,8 @@
                 y += 40;
             }
 	    painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-	    painter.fillRect(  0, y,   735, 20, m_line);
-	    painter.drawText( 30, y+4, 260, 20, Qt::AlignLeft, tr("Mash step"));
+	    painter.fillRect( 20, y,   715, 20, m_line);
+	    painter.drawText( 40, y+4, 250, 20, Qt::AlignLeft, tr("Mash step"));
 	    painter.drawText(290, y+4, 120, 20, Qt::AlignLeft, tr("Step type"));
 	    painter.drawText(400, y+4, 110, 20, Qt::AlignLeft, tr("Temperature"));
 	    painter.drawText(510, y+4,  75, 20, Qt::AlignLeft, tr("Minutes"));
@@ -1126,9 +1132,9 @@
 	    painter.setFont(QFont("Helvetica", 9, QFont::Normal));
 	    y += 20;
 	    for (int i = 0; i < product->mashs.size(); i++) {
-		painter.fillRect(  0, y,   735, 20, c_line1);
-		painter.drawText(  0, y+4,  30, 20, Qt::AlignCenter, QString("%1").arg(i + 1));
-		painter.drawText( 30, y+4, 260, 20, Qt::AlignLeft, product->mashs.at(i).step_name);
+		painter.fillRect( 20, y,   715, 20, c_line1);
+		painter.drawText( 20, y+4,  20, 20, Qt::AlignCenter, QString("%1").arg(i + 1));
+		painter.drawText( 40, y+4, 250, 20, Qt::AlignLeft, product->mashs.at(i).step_name);
 		painter.drawText(290, y+4, 120, 20, Qt::AlignLeft, step_types[product->mashs.at(i).step_type]);
 		painter.drawText(400, y+4, 110, 20, Qt::AlignLeft, QString("%1 - %2°C").
 				arg(product->mashs.at(i).step_temp, 1, 'f', 1).arg(product->mashs.at(i).end_temp, 1, 'f', 1));
@@ -1147,129 +1153,129 @@
                 y += 20;
             }
 	    painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-            painter.fillRect(  0, y,   735, 20, m_line);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Brew item"));
+            painter.fillRect( 20, y,   715, 20, m_line);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Brew item"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, tr("Expected"));
 	    painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, tr("Reached"));
 	    painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, tr("Difference"));
 	    painter.setFont(QFont("Helvetica", 9, QFont::Normal));
             y += 20;
-	    painter.fillRect(  0, y,   735, 20, c_line1);
-	    painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Mash pH"));
+	    painter.fillRect( 20, y,   715, 20, c_line1);
+	    painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Mash pH"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1 pH").arg(product->mash_ph, 1, 'f', 2));
 	    painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1 pH").arg(product->brew_mash_ph, 1, 'f', 2));
 	    painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->mash_ph, product->brew_mash_ph, 2, " pH"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Mash density"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Mash density"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, strDensity(product->est_mash_sg));
 	    painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, strDensity(product->brew_mash_sg));
 	    painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->est_mash_sg, product->brew_mash_sg, 3, " SG"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Mash efficiency"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Mash efficiency"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, "100%");
 	    painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1%").arg(product->brew_mash_efficiency, 1, 'f', 1));
 	    painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(100.0, product->brew_mash_efficiency, 1, "%"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Sparge pH"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Sparge pH"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1 pH").arg(product->sparge_ph, 1, 'f', 2));
 	    painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1 pH").arg(product->brew_sparge_ph, 1, 'f', 2));
 	    painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->sparge_ph, product->brew_sparge_ph, 2, " pH"));
 	    y += 25;
 
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Pre boil pH"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Pre boil pH"));
 	    painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1 pH").arg(product->brew_preboil_ph, 1, 'f', 2));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Pre boil density"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Pre boil density"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, strDensity(product->preboil_sg));
 	    painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, strDensity(product->brew_preboil_sg));
 	    painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->preboil_sg, product->brew_preboil_sg, 3, " SG"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Pre boil volume"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Pre boil volume"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1 L").arg(product->boil_size * 1.04, 1, 'f', 1));
 	    painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1 L").arg(product->brew_preboil_volume, 1, 'f', 1));
 	    painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->boil_size * 1.04, product->brew_preboil_volume, 1, " L"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Pre boil efficiency"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Pre boil efficiency"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1%").arg(product->efficiency, 1, 'f', 1));
 	    painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1%").arg(product->brew_preboil_efficiency, 1, 'f', 1));
 	    painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->efficiency, product->brew_preboil_efficiency, 1, "%"));
 	    y += 25;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("After boil pH"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("After boil pH"));
 	    //painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1 pH").arg(product->brew_preboil_ph, 1, 'f', 2));
 	    painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1 pH").arg(product->brew_aboil_ph, 1, 'f', 2));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("After boil density"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("After boil density"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, strDensity(product->est_og));
             painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, strDensity(product->brew_aboil_sg));
             painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->est_og, product->brew_aboil_sg, 3, " SG"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("After boil volume"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("After boil volume"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1 L").arg(product->batch_size * 1.04, 1, 'f', 1));
             painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1 L").arg(product->brew_aboil_volume, 1, 'f', 1));
             painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->batch_size * 1.04, product->brew_aboil_volume, 1, " L"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("After boil efficiency"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("After boil efficiency"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1%").arg(product->efficiency, 1, 'f', 1));
             painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1%").arg(product->brew_aboil_efficiency, 1, 'f', 1));
             painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->efficiency, product->brew_aboil_efficiency, 1, "%"));
 	    y += 25;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Chiller and trub loss"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Chiller and trub loss"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1 L").arg(product->eq_trub_chiller_loss, 1, 'f', 1));
             painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1 L").arg(product->brew_fermenter_tcloss, 1, 'f', 1));
             painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->eq_trub_chiller_loss, product->brew_fermenter_tcloss, 1, " L"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Top up water"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Top up water"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1 L").arg(product->eq_top_up_water, 1, 'f', 1));
             painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1 L").arg(product->brew_fermenter_extrawater, 1, 'f', 1));
             painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->eq_top_up_water, product->brew_fermenter_extrawater, 1, " L"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Fermenter volume"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Fermenter volume"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1 L").arg(product->batch_size - product->eq_trub_chiller_loss, 1, 'f', 1));
             painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1 L").arg(product->brew_fermenter_volume, 1, 'f', 1));
             painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->batch_size - product->eq_trub_chiller_loss, product->brew_fermenter_volume, 1, " L"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Fermenter density"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Fermenter density"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, strDensity(product->est_og));
             painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, strDensity(product->brew_fermenter_sg));
             painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->est_og, product->brew_fermenter_sg, 3, " SG"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Fermenter color"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Fermenter color"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1 EBC").arg(product->est_color, 1, 'f', 0));
 	    painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1 EBC").arg(product->brew_fermenter_color, 1, 'f', 0));
 	    painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->est_color, product->brew_fermenter_color, 0, " EBC"));
 	    y += 20;
-            painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Fermenter IBU"));
+            painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Fermenter IBU"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1 IBU").arg(product->est_ibu, 1, 'f', 0));
             painter.drawText(450, y+4, 200, 20, Qt::AlignLeft, QString("%1 IBU").arg(product->brew_fermenter_ibu, 1, 'f', 0));
             painter.drawText(650, y+4,  85, 20, Qt::AlignLeft, strDiff(product->est_ibu, product->brew_fermenter_ibu, 0, " IBU"));
 	    y += 25;
-            painter.fillRect(  0, y,   450, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Cooling method"));
+            painter.fillRect( 20, y,   430, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Cooling method"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, cooling_method[product->brew_cooling_method]);
 	    y += 20;
-            painter.fillRect(  0, y,   450, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Cooling temperature"));
+            painter.fillRect( 20, y,   430, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Cooling temperature"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1°C").arg(product->brew_cooling_to, 1, 'f', 1));
 	    y += 20;
-            painter.fillRect(  0, y,   450, 20, c_line1);
-            painter.drawText(  0, y+4, 250, 20, Qt::AlignLeft, tr("Cooling time"));
+            painter.fillRect( 20, y,   430, 20, c_line1);
+            painter.drawText( 20, y+4, 230, 20, Qt::AlignLeft, tr("Cooling time"));
 	    painter.drawText(250, y+4, 200, 20, Qt::AlignLeft, QString("%1 min").arg(product->brew_cooling_time, 1, 'f', 0));
 	}
 
@@ -1283,51 +1289,51 @@
             }
 	    painter.setFont(QFont("Helvetica", 9, QFont::Bold));
             painter.setPen(Qt::black);
-            painter.fillRect(  0, y,   735, 20, c_header);
-            painter.drawText(  0, y+2, 735, 20, Qt::AlignCenter, tr("Product fermentation"));
+            painter.fillRect( 20, y,   715, 20, c_header);
+            painter.drawText( 20, y+2, 715, 20, Qt::AlignCenter, tr("Product fermentation"));
             y += 20;
             painter.setFont(QFont("Helvetica", 9, QFont::Normal));
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Primary start temp"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->primary_start_temp, 1, 'f', 1));
-            painter.fillRect(435, y,   300, 20, c_line1);
-            painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Primary peak temp"));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Primary start temp"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->primary_start_temp, 1, 'f', 1));
+            painter.fillRect(405, y,   330, 20, c_line1);
+            painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Primary peak temp"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->primary_max_temp, 1, 'f', 1));
 	    y += 20;
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Primary end temp"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->primary_end_temp, 1, 'f', 1));
-            painter.fillRect(435, y,   300, 20, c_line1);
-            painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Primary density"));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Primary end temp"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->primary_end_temp, 1, 'f', 1));
+            painter.fillRect(405, y,   330, 20, c_line1);
+            painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Primary density"));
 	    painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 SG").arg(product->primary_end_sg, 1, 'f', 3));
 	    y += 20;
-            painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Primary end date"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, product->primary_end_date.toString("dd MMM yyyy"));
+            painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Primary end date"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, product->primary_end_date.toString("dd MMM yyyy"));
 	    y += 20;
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Secondary end temp"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->secondary_temp, 1, 'f', 1));
-            painter.fillRect(435, y,   300, 20, c_line1);
-            painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Secondary density"));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Secondary end temp"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->secondary_temp, 1, 'f', 1));
+            painter.fillRect(405, y,   330, 20, c_line1);
+            painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Secondary density"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 SG").arg(product->secondary_end_sg, 1, 'f', 3));
 	    y += 20;
-            painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Secondary end date"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, product->secondary_end_date.toString("dd MMM yyyy"));
+            painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Secondary end date"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, product->secondary_end_date.toString("dd MMM yyyy"));
 	    y += 20;
-            painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Tertiary temperature"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->tertiary_temp, 1, 'f', 1));
-            painter.fillRect(435, y,   300, 20, c_line1);
-            painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Final density"));
+            painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Tertiary temperature"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->tertiary_temp, 1, 'f', 1));
+            painter.fillRect(405, y,   330, 20, c_line1);
+            painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Final density"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 SG").arg(product->fg, 1, 'f', 3));
 	    y += 20;
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Tertiary end date"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, product->package_date.toString("dd MMM yyyy"));
-            painter.fillRect(435, y,   300, 20, c_line1);
-            painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Apperant attenuation"));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Tertiary end date"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, product->package_date.toString("dd MMM yyyy"));
+            painter.fillRect(405, y,   330, 20, c_line1);
+            painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Apperant attenuation"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1%").arg(Utils::calc_svg(product->brew_fermenter_sg, product->fg), 1, 'f', 1));
 	}
 
@@ -1341,54 +1347,54 @@
             }
             painter.setFont(QFont("Helvetica", 9, QFont::Bold));
             painter.setPen(Qt::black);
-            painter.fillRect(  0, y,   735, 20, c_header);
-            painter.drawText(  0, y+2, 735, 20, Qt::AlignCenter, tr("Package product"));
+            painter.fillRect( 20, y,   715, 20, c_header);
+            painter.drawText( 20, y+2, 715, 20, Qt::AlignCenter, tr("Package product"));
             y += 20;
             painter.setFont(QFont("Helvetica", 9, QFont::Normal));
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Package date"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, product->package_date.toString("dd MMM yyyy"));
-            painter.fillRect(435, y,   300, 20, c_line1);
-            painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Package volume"));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Package date"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, product->package_date.toString("dd MMM yyyy"));
+            painter.fillRect(405, y,   330, 20, c_line1);
+            painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Package volume"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->package_volume, 1, 'f', 1));
             y += 20;
 	    painter.setFont(QFont("Helvetica", 9, QFont::Normal));
-            painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Alcohol volume"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1%").arg(product->package_abv, 1, 'f', 2));
+            painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Alcohol volume"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1%").arg(product->package_abv, 1, 'f', 2));
 	    y += 20;
 	    if (product->package_infuse_amount > 0) {
-		painter.fillRect(  0, y,   300, 20, c_line1);
-            	painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Infuse volume"));
-            	painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->package_infuse_amount, 1, 'f', 3));
-            	painter.fillRect(435, y,   300, 20, c_line1);
-            	painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Infuse alcohol"));
+		painter.fillRect( 20, y,   330, 20, c_line1);
+            	painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Infuse volume"));
+            	painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->package_infuse_amount, 1, 'f', 3));
+            	painter.fillRect(405, y,   330, 20, c_line1);
+            	painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Infuse alcohol"));
             	painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1%").arg(product->package_infuse_abv, 1, 'f', 2));
             	y += 20;
-		painter.fillRect(  0, y,   735, 20, c_line1);
-		painter.drawText(  0, y+4, 735, 20, Qt::AlignLeft, product->package_infuse_notes);
+		painter.fillRect( 20, y,   715, 20, c_line1);
+		painter.drawText( 20, y+4, 715, 20, Qt::AlignLeft, product->package_infuse_notes);
 		y += 20;
 	    }
 	    y += 5;
 	    painter.setFont(QFont("Helvetica", 9, QFont::Bold));
-	    painter.fillRect(  0, y,   300, 20, m_line);
-	    painter.drawText(  0, y+2, 300, 20, Qt::AlignCenter, tr("Bottles"));
-	    painter.fillRect(435, y,   300, 20, m_line);
-	    painter.drawText(435, y+2, 300, 20, Qt::AlignCenter, tr("Kegs"));
+	    painter.fillRect( 20, y,   330, 20, m_line);
+	    painter.drawText( 20, y+2, 330, 20, Qt::AlignCenter, tr("Bottles"));
+	    painter.fillRect(405, y,   330, 20, m_line);
+	    painter.drawText(405, y+2, 330, 20, Qt::AlignCenter, tr("Kegs"));
 	    y += 20;
 	    painter.setFont(QFont("Helvetica", 9, QFont::Normal));
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Bottles volume"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->bottle_amount, 1, 'f', 1));
-            painter.fillRect(435, y,   300, 20, c_line1);
-            painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Kegs volume"));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Bottles volume"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->bottle_amount, 1, 'f', 1));
+            painter.fillRect(405, y,   330, 20, c_line1);
+            painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Kegs volume"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->keg_amount, 1, 'f', 1));
             y += 20;
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Bottles CO2 volumes"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->bottle_carbonation, 1, 'f', 1));
-            painter.fillRect(435, y,   300, 20, c_line1);
-            painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Kegs CO2 volumes"));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Bottles CO2 volumes"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->bottle_carbonation, 1, 'f', 1));
+            painter.fillRect(405, y,   330, 20, c_line1);
+            painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Kegs CO2 volumes"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->keg_carbonation, 1, 'f', 1));
 	    y += 20;
 	    QString bsugar = "", ksugar = "";
@@ -1403,55 +1409,55 @@
                     kamount = product->fermentables.at(i).f_amount;
 		}
 	    }
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Sugar"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, bsugar);
-            painter.fillRect(435, y,   300, 20, c_line1);
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Sugar"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, bsugar);
+            painter.fillRect(405, y,   330, 20, c_line1);
 	    if (product->keg_forced_carb) {
-                painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Forced carbonation"));
+                painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Forced carbonation"));
                 painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, tr("Yes"));
             } else {
-            	painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Sugar"));
+            	painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Sugar"));
             	painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, ksugar);
 	    }
             y += 20;
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Sugar amount"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1 Kg").arg(bamount, 1, 'f', 3));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Sugar amount"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1 Kg").arg(bamount, 1, 'f', 3));
 	    if (! product->keg_forced_carb) {
-		painter.fillRect(435, y,   300, 20, c_line1);
-            	painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Sugar amount"));
+		painter.fillRect(405, y,   330, 20, c_line1);
+            	painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Sugar amount"));
             	painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 Kg").arg(kamount, 1, 'f', 3));
 	    }
             y += 20;
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Water amount"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->bottle_priming_water, 1, 'f', 3));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Water amount"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->bottle_priming_water, 1, 'f', 3));
 	    if (! product->keg_forced_carb) {
-            	painter.fillRect(435, y,   300, 20, c_line1);
-            	painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Water amount"));
+            	painter.fillRect(405, y,   330, 20, c_line1);
+            	painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Water amount"));
             	painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 L").arg(product->keg_priming_water, 1, 'f', 3));
 	    }
             y += 20;
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Alcohol volume"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1%").arg(product->bottle_abv, 1, 'f', 2));
-            painter.fillRect(435, y,   300, 20, c_line1);
-            painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Alcohol volume"));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Alcohol volume"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1%").arg(product->bottle_abv, 1, 'f', 2));
+            painter.fillRect(405, y,   330, 20, c_line1);
+            painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Alcohol volume"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1%").arg(product->keg_abv, 1, 'f', 2));
             y += 20;
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Pressure"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1 bar").arg(product->bottle_bar, 1, 'f', 2));
-            painter.fillRect(435, y,   300, 20, c_line1);
-            painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Pressure"));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Pressure"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1 bar").arg(product->bottle_bar, 1, 'f', 2));
+            painter.fillRect(405, y,   330, 20, c_line1);
+            painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Pressure"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 bar").arg(product->keg_bar, 1, 'f', 2));
 	    y += 20;
-	    painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Carbonation temp"));
-            painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->bottle_carbonation_temp, 1, 'f', 1));
-            painter.fillRect(435, y,   300, 20, c_line1);
-            painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Carbonation temp"));
+	    painter.fillRect( 20, y,   330, 20, c_line1);
+            painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Carbonation temp"));
+            painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->bottle_carbonation_temp, 1, 'f', 1));
+            painter.fillRect(405, y,   330, 20, c_line1);
+            painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Carbonation temp"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1°C").arg(product->keg_carbonation_temp, 1, 'f', 1));
 	}
 
@@ -1477,48 +1483,48 @@
 	    }
 	    painter.setFont(QFont("Helvetica", 9, QFont::Bold));
             painter.setPen(Qt::black);
-            painter.fillRect(  0, y,   735, 20, c_header);
-            painter.drawText(  0, y+2, 735, 20, Qt::AlignCenter, tr("Tasting notes"));
+            painter.fillRect( 20, y,   715, 20, c_header);
+            painter.drawText( 20, y+2, 715, 20, Qt::AlignCenter, tr("Tasting notes"));
             y += 20;
             painter.setFont(QFont("Helvetica", 9, QFont::Normal));
-            painter.fillRect(  0, y,   300, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Tasting date"));
+            painter.fillRect( 20, y,   300, 20, c_line1);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Tasting date"));
             painter.drawText(120, y+4, 180, 20, Qt::AlignLeft, product->taste_date.toString("dd MMM yyyy"));
             painter.fillRect(435, y,   300, 20, c_line1);
             painter.drawText(435, y+4, 120, 20, Qt::AlignLeft, tr("Taste score"));
             painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1").arg(product->taste_rate, 1, 'f', 1));
             y += 20;
-	    painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Color"));
-            painter.drawText(120, y+4, 615, 20, Qt::AlignLeft, product->taste_color);
+	    painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Color"));
+            painter.drawText(120, y+4, 595, 20, Qt::AlignLeft, product->taste_color);
 	    y += 20;
-	    painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Transparency"));
-            painter.drawText(120, y+4, 615, 20, Qt::AlignLeft, product->taste_transparency);
+	    painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Transparency"));
+            painter.drawText(120, y+4, 595, 20, Qt::AlignLeft, product->taste_transparency);
             y += 20;
-	    painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Head"));
-            painter.drawText(120, y+4, 615, 20, Qt::AlignLeft, product->taste_head);
+	    painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Head"));
+            painter.drawText(120, y+4, 595, 20, Qt::AlignLeft, product->taste_head);
             y += 20;
-	    painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Aroma"));
-            painter.drawText(120, y+4, 615, 20, Qt::AlignLeft, product->taste_aroma);
+	    painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Aroma"));
+            painter.drawText(120, y+4, 595, 20, Qt::AlignLeft, product->taste_aroma);
             y += 20;
-	    painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Taste"));
-            painter.drawText(120, y+4, 615, 20, Qt::AlignLeft, product->taste_taste);
+	    painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Taste"));
+            painter.drawText(120, y+4, 595, 20, Qt::AlignLeft, product->taste_taste);
             y += 20;
-	    painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Mouthfeel"));
-            painter.drawText(120, y+4, 615, 20, Qt::AlignLeft, product->taste_mouthfeel);
+	    painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Mouthfeel"));
+            painter.drawText(120, y+4, 595, 20, Qt::AlignLeft, product->taste_mouthfeel);
             y += 20;
-	    painter.fillRect(  0, y,   735, 20, c_line1);
-            painter.drawText(  0, y+4, 120, 20, Qt::AlignLeft, tr("Aftertaste"));
-            painter.drawText(120, y+4, 615, 20, Qt::AlignLeft, product->taste_aftertaste);
+	    painter.fillRect( 20, y,   715, 20, c_line1);
+            painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, tr("Aftertaste"));
+            painter.drawText(120, y+4, 595, 20, Qt::AlignLeft, product->taste_aftertaste);
             y += 25;
 	    for (int i = 0; i < lines.size(); i++) {
-		painter.fillRect(  0, y,   735, 20, c_line1);
-                painter.drawText(  0, y+4, 735, 20, Qt::AlignLeft, lines[i]);
+		painter.fillRect( 20, y,   715, 20, c_line1);
+                painter.drawText( 20, y+4, 715, 20, Qt::AlignLeft, lines[i]);
                 y += 20;
             }
 	}
@@ -1528,7 +1534,8 @@
 	double	factor = 1.0 / product->divide_factor;
 	double	mashwater = 0;
 	int	numsalts = 0;
-        qDebug() << "print checklist";
+
+	qInfo() << "Print checklist" << product->record;
         printHeader(&painter);
         y = 120;
 
@@ -2077,7 +2084,7 @@
 {
     painter->setFont(QFont("Arial", 10, QFont::Bold));
     painter->setPen(Qt::black);
-    painter->drawText(30, *y, 700, 20, Qt::AlignLeft, text);
+    painter->drawText(50, *y, 700, 20, Qt::AlignLeft, text);
     painter->setFont(QFont("Arial", 10, QFont::Normal));
     *y += 20;
 }
@@ -2088,8 +2095,8 @@
  */
 void PrinterDialog::checkLine(QPainter *painter, qreal *y, QString text)
 {
-    painter->drawRect( 4, *y, 16, 16);
-    painter->drawText(30, *y,650, 20, Qt::AlignLeft, text);
+    painter->drawRect(24, *y, 16, 16);
+    painter->drawText(50, *y,630, 20, Qt::AlignLeft, text);
     *y += 20;
 }
 
@@ -2097,8 +2104,8 @@
 void PrinterDialog::checkInput(QPainter *painter, qreal *y, QString text, QString prompt)
 {
     if (text != "") {
-    	painter->drawRect( 4, *y, 16, 16);
-    	painter->drawText(30, *y,500, 20, Qt::AlignLeft, text);
+    	painter->drawRect(24, *y, 16, 16);
+    	painter->drawText(50, *y,480, 20, Qt::AlignLeft, text);
     }
     painter->drawText(515, *y, 150, 20, Qt::AlignRight, QString(tr("Measured:")) + QString(" _________"));
     painter->drawText(675, *y,  60, 20, Qt::AlignLeft, prompt);
@@ -2111,7 +2118,7 @@
     if (product->divide_type && product->divide_type == moment) {
 	*y += 20;
 	painter->setFont(QFont("Helvetica", 14, QFont::Bold));
-	painter->drawText(0, *y, 735, 20, Qt::AlignCenter, QString(tr("%1 split the batch here!")).arg(prod_split[product->divide_type]));
+	painter->drawText(20, *y, 715, 20, Qt::AlignCenter, QString(tr("%1 split the batch here!")).arg(prod_split[product->divide_type]));
     	painter->setFont(QFont("Arial", 10, QFont::Normal));
 	*y += 26;
 	return true;
@@ -2140,37 +2147,37 @@
     int h = outPixmap.height();
     /* Make sure to keep the logo aspect ratio */
     if (w == h) {
-	painter->drawPixmap(0, 0, 100, 100, outPixmap);
+	painter->drawPixmap(20, 0, 100, 100, outPixmap);
     } else if (w > h) {
-	painter->drawPixmap(0, 0, 100, (h * 100) / w, outPixmap);
+	painter->drawPixmap(20, 0, 100, (h * 100) / w, outPixmap);
     } else {
-	painter->drawPixmap(0, 0, (w * 100) / h, 100, outPixmap);
+	painter->drawPixmap(20, 0, (w * 100) / h, 100, outPixmap);
     }
 
     /* The fat header line */
     painter->setFont(QFont("Helvetica",18, QFont::Bold));
     if (p_job == PR_SUPPLIES) {
-	painter->drawText(120, 0,  500, 40, Qt::AlignLeft, tr("Inventory") + " " + my_brewery_name);
+	painter->drawText(140, 0,  500, 40, Qt::AlignLeft, tr("Inventory") + " " + my_brewery_name);
     } else if (p_job == PR_YEASTBANK) {
-	painter->drawText(120, 0,  500, 40, Qt::AlignLeft, tr("Yeastbank") + " " + my_brewery_name);
+	painter->drawText(140, 0,  500, 40, Qt::AlignLeft, tr("Yeastbank") + " " + my_brewery_name);
     } else if (p_job == PR_RECIPE) {
-	painter->drawText(120, 0,  500, 40, Qt::AlignLeft, recipe->name);
+	painter->drawText(140, 0,  500, 40, Qt::AlignLeft, recipe->name);
     } else if (p_job == PR_PRODUCT || p_job == PR_CHECKLIST) {
-        painter->drawText(120, 0,  500, 40, Qt::AlignLeft, product->code + "  " + product->name);
+        painter->drawText(140, 0,  500, 40, Qt::AlignLeft, product->code + "  " + product->name);
     } else {
-        painter->drawText(120, 0,  500, 40, Qt::AlignLeft, "?? " + my_brewery_name);
+        painter->drawText(140, 0,  500, 40, Qt::AlignLeft, "?? " + my_brewery_name);
     }
     /* The first normal header line */
     painter->setFont(QFont("Helvetica",10, QFont::Normal));
-    painter->drawText(120,35,  80, 20, Qt::AlignLeft, tr("Date and time"));
-    painter->drawText(200,35, 400, 20, Qt::AlignLeft, ": " + QDateTime::currentDateTime().toString("dd-MMM-yyyy hh:mm"));
+    painter->drawText(140,35,  80, 20, Qt::AlignLeft, tr("Date and time"));
+    painter->drawText(220,35, 400, 20, Qt::AlignLeft, ": " + QDateTime::currentDateTime().toString("dd-MMM-yyyy hh:mm"));
     if (p_job == PR_RECIPE) {
-	painter->drawText(120,55,  80, 20, Qt::AlignLeft, tr("Beer style"));
-    	painter->drawText(200,55, 400, 20, Qt::AlignLeft, ": " + recipe->st_name);
+	painter->drawText(140,55,  80, 20, Qt::AlignLeft, tr("Beer style"));
+    	painter->drawText(220,55, 400, 20, Qt::AlignLeft, ": " + recipe->st_name);
     }
     if (p_job == PR_PRODUCT || p_job == PR_CHECKLIST) {
-        painter->drawText(120,55,  80, 20, Qt::AlignLeft, tr("Beer style"));
-        painter->drawText(200,55, 400, 20, Qt::AlignLeft, ": " + product->st_name);
+        painter->drawText(140,55,  80, 20, Qt::AlignLeft, tr("Beer style"));
+        painter->drawText(220,55, 400, 20, Qt::AlignLeft, ": " + product->st_name);
     }
     /* The report itself may print more lines from y = 55. */
 }

mercurial