diff --git a/src/main/java/de/tudresden/inf/mci/brailleplot/layout/RasterCanvas.java b/src/main/java/de/tudresden/inf/mci/brailleplot/layout/RasterCanvas.java
index f2c9385a9eecfb10ae8121b2e76b5165d1f6eb41..285f5db31f5c111664f000714d0e2c37b0441812 100644
--- a/src/main/java/de/tudresden/inf/mci/brailleplot/layout/RasterCanvas.java
+++ b/src/main/java/de/tudresden/inf/mci/brailleplot/layout/RasterCanvas.java
@@ -162,8 +162,10 @@ public class RasterCanvas extends AbstractCanvas {
 
         // To how many dots does this raster size correspond?
         mPrintingAreaDots = toDotRectangle(mPrintingAreaCells);
-        mColumnCount = mPrintingAreaDots.intWrapper().getWidth();
-        mRowCount = mPrintingAreaDots.intWrapper().getHeight();
+        // X and Y must be added to the size because the margins are created virtually by leaving these cells empty.
+        // They have to be contained in the data representation.
+        mColumnCount = mPrintingAreaDots.intWrapper().getX() + mPrintingAreaDots.intWrapper().getWidth();
+        mRowCount = mPrintingAreaDots.intWrapper().getY() + mPrintingAreaDots.intWrapper().getHeight();
         mLogger.trace("Determined raster dimensions (dots): {} columns x {} rows", mColumnCount, mRowCount);
 
     }