diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterFragment.kt
index a38a3c447d166eadeba49cda769ed2c204a4e0f1..0d7b28cd67eeb742ea1b1dec0b942821e4602ccf 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterFragment.kt
@@ -151,7 +151,7 @@ class QrCodePosterFragment : Fragment(R.layout.qr_code_poster_fragment), AutoInj
                 getString(R.string.app_name),
                 PrintingAdapter(file),
                 PrintAttributes.Builder()
-                    .setMediaSize(PrintAttributes.MediaSize.ISO_A3)
+                    .setMediaSize(PrintAttributes.MediaSize.ISO_A4)
                     .build()
             )
 
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt
index 4e7facefc6fdff6626a1fece1e42fee551241d37..4f903050f79ca8c91daa2885f382f8ff21f1fd2e 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt
@@ -53,10 +53,12 @@ class QrCodePosterViewModel @AssistedInject constructor(
             val file = File(directory, "cwa-qr-code.pdf")
 
             val weakView = weakViewRef.get() ?: return@launch // View is not existing anymore
-            val pageInfo = PdfDocument.PageInfo.Builder(weakView.width, weakView.height, 1).create()
-
+            val pageInfo = PdfDocument.PageInfo.Builder(A4_WIDTH, A4_HEIGHT, 1).create()
             PdfDocument().apply {
                 startPage(pageInfo).apply {
+                    val sx = A4_WIDTH.toFloat() / weakView.width
+                    val sy = A4_HEIGHT.toFloat() / weakView.height
+                    canvas.scale(sx, sy)
                     weakView.draw(canvas)
                     finishPage(this)
                 }
@@ -70,7 +72,7 @@ class QrCodePosterViewModel @AssistedInject constructor(
             sharingIntent.postValue(fileSharing.getFileIntentProvider(file, traceLocation().description))
         } catch (e: Exception) {
             Timber.d(e, "Creating pdf failed")
-            e.report(ExceptionCategory.INTERNAL)
+            e.report(ExceptionCategory.UI)
         }
     }
 
@@ -96,7 +98,7 @@ class QrCodePosterViewModel @AssistedInject constructor(
         } catch (e: Exception) {
             Timber.d(e, "Generating poster failed")
             posterLiveData.postValue(Poster())
-            e.report(ExceptionCategory.INTERNAL)
+            e.report(ExceptionCategory.UI)
         }
     }
 
@@ -108,6 +110,15 @@ class QrCodePosterViewModel @AssistedInject constructor(
             traceLocationId: Long
         ): QrCodePosterViewModel
     }
+
+    companion object {
+        /**
+         * A4 size in PostScript
+         * @see <a href="https://www.cl.cam.ac.uk/~mgk25/iso-paper-ps.txt">Iso-paper-ps</a>
+         */
+        private const val A4_WIDTH = 595 // PostScript
+        private const val A4_HEIGHT = 842 // PostScript
+    }
 }
 
 data class Poster(