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(