From 76c70c8641a8e4e19d773ebe8c2f4fe857ae2ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90or=C4=91e=20Hrnjez?= Date: Tue, 18 Aug 2026 14:33:51 +0200 Subject: [PATCH 1/4] Align GitHub workflows with scan-engine The develop branch is gone, so CI runs on master instead: - Remove develop.yml - Add master.yml running spotlessCheck, unit tests and instrumented tests on push to master - Reshape pr-checks.yml to match scan-engine - Trigger releases from version tags instead of pushes to master, and verify the tag matches the print-engine version in libs.versions.toml Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/develop.yml | 69 --------------------------------- .github/workflows/master.yml | 52 +++++++++++++++++++++++++ .github/workflows/pr-checks.yml | 38 +++++++++--------- .github/workflows/release.yml | 14 ++++++- 4 files changed, 83 insertions(+), 90 deletions(-) delete mode 100644 .github/workflows/develop.yml create mode 100644 .github/workflows/master.yml diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml deleted file mode 100644 index f981574..0000000 --- a/.github/workflows/develop.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Android CI - Develop - -on: - push: - branches: [ "develop" ] - -jobs: - ui-tests: - name: Run android tests and build staging - runs-on: ubuntu-latest - timeout-minutes: 60 - - steps: - - - name: Checking out branch - uses: actions/checkout@v4 - - - name: set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - cache: gradle - - - name: Setup Android SDK - uses: android-actions/setup-android@v3 - - # Hardware accelerated Android virtualization on Actions Linux larger hosted runners - - name: Enable KVM - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm - - # Significantly reduce emulator startup time by setting up AVD snapshot caching - - name: Gradle cache - uses: gradle/actions/setup-gradle@v3 - - - name: AVD cache - uses: actions/cache@v4 - id: avd-cache - with: - path: | - ~/.android/avd/* - ~/.android/adb* - key: avd-30 - - - name: Create AVD and generate snapshot for caching - if: steps.avd-cache.outputs.cache-hit != 'true' - uses: ReactiveCircus/android-emulator-runner@v2.33.0 - with: - api-level: 30 - target: google_atd - arch: x86 - force-avd-creation: false - emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none - disable-animations: false - script: echo "Generated AVD snapshot for caching." - - - name: Run Android tests - uses: ReactiveCircus/android-emulator-runner@v2.33.0 - with: - api-level: 30 - target: google_atd - arch: x86 - force-avd-creation: false - emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none - disable-animations: true - script: ./gradlew :print-engine:connectedAndroidTest diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml new file mode 100644 index 0000000..bc1b638 --- /dev/null +++ b/.github/workflows/master.yml @@ -0,0 +1,52 @@ +name: Android CI - Master + +on: + push: + branches: [ "master" ] + +jobs: + ci-checks: + name: Run code checks and android tests + runs-on: ubuntu-latest + timeout-minutes: 60 + + steps: + + - name: Checking out branch + uses: actions/checkout@v4 + + - name: set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: gradle + + - name: Setup Android SDK + uses: android-actions/setup-android@v3 + + # Hardware accelerated Android virtualization on Actions Linux larger hosted runners + - name: Enable KVM + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: Gradle cache + uses: gradle/actions/setup-gradle@v3 + + - name: Run Spotless Code Analysis + run: ./gradlew spotlessCheck + + - name: Run Unit tests + run: ./gradlew testDebug + + - name: Run Android tests + uses: ReactiveCircus/android-emulator-runner@v2.33.0 + with: + api-level: 30 + target: google_atd + arch: x86 + emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none + disable-animations: true + script: ./gradlew :print-engine:connectedAndroidTest diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index d87baab..e8d7e58 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -1,29 +1,29 @@ name: Android CI - PR checks on: - pull_request + pull_request: jobs: - basic-tests: - name: Run code analysis and unit tests - runs-on: ubuntu-latest + pr-checks: + name: Run full PR check + runs-on: ubuntu-latest - steps: - - name: Checking out branch - uses: actions/checkout@v4 + steps: + - name: Checking out branch + uses: actions/checkout@v4 - - name: set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - cache: gradle + - name: set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: gradle - - name: Setup Android SDK - uses: android-actions/setup-android@v3 + - name: Setup Android SDK + uses: android-actions/setup-android@v3 - - name: Run Spotless Code Analysis - run: ./gradlew spotlessCheck + - name: Run Spotless Code Analysis + run: ./gradlew spotlessCheck - - name: Run Unit tests - run: ./gradlew testDebug + - name: Run Unit tests + run: ./gradlew testDebug diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3de1260..aca5c76 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,7 +2,8 @@ name: Publish to Maven Central on: push: - branches: [ "master" ] + tags: + - '[0-9]+.[0-9]+.[0-9]+' jobs: publish: @@ -14,6 +15,15 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + # The published version comes from libs.versions.toml, not the tag - keep them in sync + - name: Verify tag matches library version + run: | + VERSION=$(grep -m1 '^print-engine = ' gradle/libs.versions.toml | cut -d'"' -f2) + if [ "${GITHUB_REF_NAME}" != "${VERSION}" ]; then + echo "Tag ${GITHUB_REF_NAME} does not match libs.versions.toml version ${VERSION}" + exit 1 + fi + - name: Setup Java uses: actions/setup-java@v4 with: @@ -50,4 +60,4 @@ jobs: - name: Publish To Maven Central run: | - ./gradlew publishAndReleaseToMavenCentral --no-configuration-cache \ No newline at end of file + ./gradlew publishAndReleaseToMavenCentral --no-configuration-cache From 3e9e959a9382b99184f4a2bcd3d1a934c4c564db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90or=C4=91e=20Hrnjez?= Date: Tue, 18 Aug 2026 14:36:44 +0200 Subject: [PATCH 2/4] Trim POM developer list to current maintainer Co-Authored-By: Claude Opus 5 (1M context) --- print-engine/build.gradle.kts | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/print-engine/build.gradle.kts b/print-engine/build.gradle.kts index 9c641fa..6f4da52 100644 --- a/print-engine/build.gradle.kts +++ b/print-engine/build.gradle.kts @@ -148,16 +148,6 @@ mavenPublishing { name.set("Đorđe Hrnjez") email.set("dorde.hrnjez@unzer.com") } - developer { - id.set("SloInfinity") - name.set("Martin Sirok") - email.set("m.sirok.ext@unzer.com") - } - developer { - id.set("shekar-allam") - name.set("Chandrashekar Allam") - email.set("chandrashekar.allam@unzer.com") - } } // Specify SCM information From 9f37a5f18f5f117133aaafe2bd9679a96a7aa63d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90or=C4=91e=20Hrnjez?= Date: Wed, 19 Aug 2026 10:34:51 +0200 Subject: [PATCH 3/4] [UNTIL-22101] Optimise receipt image handling in the HTML printer path Receipts silently failed to print on PAX and Verifone when a header or footer image was large. Those printers inline every image into the receipt HTML as base64 and hand the whole string to the vendor service in one Binder transaction, capped at ~1 MB per process. Nothing on that path normalised the image, and a failed transaction was never reported back to the caller. - Normalise images in the HTML path: downscale to the print head width (never upscaling) and dither to 1 bit monochrome before encoding. The head cannot render colour or detail beyond its own width, so nothing printable is lost. Barcodes and QR codes are generated for the target printer and already monochrome, so they skip normalisation - rescaling them would only risk their scannability. - Expose the print head width on PrintingPaperSpec, so the target width comes from the device rather than a constant hardcoded per app. - Surface transport failures: the PAX and Verifone print paths reported them only through the printer state, so startPrintJob returned Success for a receipt that was never printed. Both now rethrow, and withPrinterCatching turns them into a PrinterResult.Error. - Use Base64.NO_WRAP on Android: DEFAULT inserts CRLF every 76 characters, ~2.7% of waste inside a data URI, and iOS never wrapped. The pixel work lives in commonMain as plain IntArray operations, so the whole algorithm is shared and unit tested through MonochromeImage. normalize; only building a bitmap from pixels is expect/actual (Android Bitmap, Skia on iOS). Native plugins are untouched - Epson, Star and Sunmi already normalise inside their vendor SDKs and must not be processed twice. The payload size guard the ticket also asks for is deliberately left out: any byte budget would be a guess until it is measured on a real PAX and Verifone, and a wrong one would reject receipts that print fine today. Bumps the version to 3.1.0 for release. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 16 +- gradle/libs.versions.toml | 2 +- .../printengine/data/ImageBitmap.android.kt | 12 +- .../printengine/data/ImageBitmapExtTest.kt | 110 ++++++++++ .../printengine/html/HtmlUtilsImageTest.kt | 4 +- .../de/tillhub/printengine/PrinterImpl.kt | 18 +- .../printengine/data/ImageBitmapExt.kt | 38 ++++ .../printengine/data/MonochromeImage.kt | 193 ++++++++++++++++++ .../tillhub/printengine/data/PrinterInfo.kt | 37 +++- .../printengine/html/HtmlPrinterController.kt | 32 ++- .../printengine/data/MonochromeImageTest.kt | 145 +++++++++++++ .../html/HtmlPrinterControllerTest.kt | 130 ++++++++++++ .../printengine/data/ImageBitmap.ios.kt | 63 ++++-- .../printengine/data/ImageBitmapExtTest.kt | 132 ++++++++++++ .../printengine/pax/DirectPrintService.kt | 16 +- .../printengine/pax/PaxPrinterController.kt | 4 +- .../pax/DirectPrintServiceImplTest.kt | 21 +- .../pax/PaxPrinterControllerTest.kt | 26 ++- .../star/StarPrinterController.android.kt | 5 +- .../star/StarPrinterDiscovery.android.kt | 8 +- .../verifone/VerifonePrintController.kt | 39 +++- .../verifone/VerifonePrintControllerTest.kt | 30 ++- 22 files changed, 1011 insertions(+), 70 deletions(-) create mode 100644 print-engine/src/androidUnitTest/kotlin/de/tillhub/printengine/data/ImageBitmapExtTest.kt create mode 100644 print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/MonochromeImage.kt create mode 100644 print-engine/src/commonTest/kotlin/de/tillhub/printengine/data/MonochromeImageTest.kt create mode 100644 print-engine/src/commonTest/kotlin/de/tillhub/printengine/html/HtmlPrinterControllerTest.kt create mode 100644 print-engine/src/iosTest/kotlin/de/tillhub/printengine/data/ImageBitmapExtTest.kt diff --git a/README.md b/README.md index 01e24c8..1df8604 100644 --- a/README.md +++ b/README.md @@ -32,16 +32,16 @@ dependencyResolutionManagement { // build.gradle.kts dependencies { // Core library (required) - implementation("io.github.tillhub:print-engine-core:3.0.5") + implementation("io.github.tillhub:print-engine-core:3.1.0") // Built-in printer plugins (Android only) - implementation("io.github.tillhub:print-engine-pax:3.0.5") - implementation("io.github.tillhub:print-engine-sunmi:3.0.5") - implementation("io.github.tillhub:print-engine-verifone:3.0.5") + implementation("io.github.tillhub:print-engine-pax:3.1.0") + implementation("io.github.tillhub:print-engine-sunmi:3.1.0") + implementation("io.github.tillhub:print-engine-verifone:3.1.0") // External printer plugins (Android & iOS) - implementation("io.github.tillhub:print-engine-star:3.0.5") - implementation("io.github.tillhub:print-engine-epson:3.0.5") + implementation("io.github.tillhub:print-engine-star:3.1.0") + implementation("io.github.tillhub:print-engine-epson:3.1.0") } ``` @@ -255,7 +255,7 @@ Supports Android and iOS. #### Installation ```kotlin -implementation("io.github.tillhub:print-engine-star:3.0.5") +implementation("io.github.tillhub:print-engine-star:3.1.0") ``` #### Setup & Usage @@ -350,7 +350,7 @@ Supports Android and iOS. #### Installation ```kotlin -implementation("io.github.tillhub:print-engine-epson:3.0.5") +implementation("io.github.tillhub:print-engine-epson:3.1.0") ``` #### Setup & Usage diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7a69554..5a3e144 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -print-engine = "3.0.5" +print-engine = "3.1.0" # Build tools kotlin = "2.2.0" diff --git a/print-engine/src/androidMain/kotlin/de/tillhub/printengine/data/ImageBitmap.android.kt b/print-engine/src/androidMain/kotlin/de/tillhub/printengine/data/ImageBitmap.android.kt index 22c14cf..7edb0ed 100644 --- a/print-engine/src/androidMain/kotlin/de/tillhub/printengine/data/ImageBitmap.android.kt +++ b/print-engine/src/androidMain/kotlin/de/tillhub/printengine/data/ImageBitmap.android.kt @@ -4,12 +4,22 @@ import android.graphics.Bitmap import android.util.Base64 import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asAndroidBitmap +import androidx.compose.ui.graphics.asImageBitmap +import androidx.core.graphics.createBitmap import java.io.ByteArrayOutputStream actual fun ImageBitmap.encodeToBase64(): String = ByteArrayOutputStream().let { stream -> this.asAndroidBitmap().compress(Bitmap.CompressFormat.PNG, PNG_QUALITY, stream) val b = stream.toByteArray() - Base64.encodeToString(b, Base64.DEFAULT) + Base64.encodeToString(b, Base64.NO_WRAP) } +internal actual fun argbToImageBitmap( + pixels: IntArray, + width: Int, + height: Int, +): ImageBitmap = createBitmap(width, height).apply { + setPixels(pixels, 0, width, 0, 0, width, height) +}.asImageBitmap() + private const val PNG_QUALITY = 100 diff --git a/print-engine/src/androidUnitTest/kotlin/de/tillhub/printengine/data/ImageBitmapExtTest.kt b/print-engine/src/androidUnitTest/kotlin/de/tillhub/printengine/data/ImageBitmapExtTest.kt new file mode 100644 index 0000000..ecbe600 --- /dev/null +++ b/print-engine/src/androidUnitTest/kotlin/de/tillhub/printengine/data/ImageBitmapExtTest.kt @@ -0,0 +1,110 @@ +package de.tillhub.printengine.data + +import android.graphics.Bitmap +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.asImageBitmap +import io.kotest.core.spec.style.FunSpec +import io.kotest.extensions.robolectric.RobolectricTest +import io.kotest.matchers.ints.shouldBeLessThan +import io.kotest.matchers.shouldBe +import io.kotest.matchers.string.shouldNotContain + +@RobolectricTest +internal class ImageBitmapExtTest : + FunSpec({ + test("normalizeForPrintHead downscales an oversized image to the head width") { + val image = gradientImage(width = 800, height = 400) + + val normalized = image.normalizeForPrintHead(HEAD_WIDTH_PX) + + normalized.width shouldBe HEAD_WIDTH_PX + normalized.height shouldBe 192 + } + + test("normalizeForPrintHead does not upscale an image that already fits") { + val image = gradientImage(width = 120, height = 60) + + val normalized = image.normalizeForPrintHead(HEAD_WIDTH_PX) + + normalized.width shouldBe 120 + normalized.height shouldBe 60 + } + + test("normalizeForPrintHead reduces the image to one bit monochrome") { + val image = gradientImage(width = 200, height = 100) + + val pixels = IntArray(200 * 100) + image.normalizeForPrintHead(HEAD_WIDTH_PX).readPixels(pixels) + + pixels.distinct().sorted() shouldBe listOf(BLACK, WHITE).sorted() + } + + test("normalizeForPrintHead leaves a degenerate image alone") { + val image = gradientImage(width = 4, height = 4) + + image.normalizeForPrintHead(headWidthPx = 0) shouldBe image + } + + test("normalizeForPrintHead shrinks the encoded payload") { + // The point of the whole exercise: a full colour photo is what overflows the IPC + // transaction, and normalising it is what brings the receipt back under the limit. + // Photographic detail is what PNG cannot compress away, so that is what is measured + // here - a flat logo would understate the difference. + val image = photoLikeImage(width = 800, height = 400) + + val normalizedSize = image.normalizeForPrintHead(HEAD_WIDTH_PX).encodeToBase64().length + + normalizedSize shouldBeLessThan image.encodeToBase64().length + } + + test("encodeToBase64 does not wrap lines") { + // Line breaks are ~2.7% of wasted payload inside a data URI, and iOS never emitted + // them - so neither should Android. + val image = gradientImage(width = 64, height = 64) + + image.encodeToBase64() shouldNotContain "\n" + } + }) + +/** A horizontal grey ramp: enough tone that dithering has something to do. */ +private fun gradientImage( + width: Int, + height: Int, +): ImageBitmap = imageOf(width, height) { index -> + val value = (index % width) * 255 / (width - 1) + OPAQUE_ALPHA or (value shl 16) or (value shl 8) or value +} + +/** + * Deterministic per-pixel colour noise, standing in for a photo: like a photograph and unlike a + * gradient, there is no redundancy for PNG to squeeze out. + */ +private fun photoLikeImage( + width: Int, + height: Int, +): ImageBitmap { + var state = 1 + return imageOf(width, height) { + state = state * LCG_MULTIPLIER + LCG_INCREMENT + OPAQUE_ALPHA or (state ushr 8 and 0xFFFFFF) + } +} + +private fun imageOf( + width: Int, + height: Int, + pixel: (index: Int) -> Int, +): ImageBitmap { + val pixels = IntArray(width * height) { pixel(it) } + return Bitmap + .createBitmap(width, height, Bitmap.Config.ARGB_8888) + .apply { setPixels(pixels, 0, width, 0, 0, width, height) } + .asImageBitmap() +} + +private const val HEAD_WIDTH_PX = 384 +private const val LCG_MULTIPLIER = 1664525 +private const val LCG_INCREMENT = 1013904223 +private const val OPAQUE_ALPHA = 0xFF shl 24 +private const val BLACK = 0xFF000000.toInt() +private const val WHITE = 0xFFFFFFFF.toInt() diff --git a/print-engine/src/androidUnitTest/kotlin/de/tillhub/printengine/html/HtmlUtilsImageTest.kt b/print-engine/src/androidUnitTest/kotlin/de/tillhub/printengine/html/HtmlUtilsImageTest.kt index ea17128..dc5d420 100644 --- a/print-engine/src/androidUnitTest/kotlin/de/tillhub/printengine/html/HtmlUtilsImageTest.kt +++ b/print-engine/src/androidUnitTest/kotlin/de/tillhub/printengine/html/HtmlUtilsImageTest.kt @@ -16,7 +16,7 @@ internal class HtmlUtilsImageTest : result shouldBe "
" + "
" + "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAEElEQVR4AQEFAPr/AAAAAAAABQAB" + + "ZHiVOAAAAABJRU5ErkJggg==\"/>" } }) diff --git a/print-engine/src/commonMain/kotlin/de/tillhub/printengine/PrinterImpl.kt b/print-engine/src/commonMain/kotlin/de/tillhub/printengine/PrinterImpl.kt index 6e4e635..31ce9c5 100644 --- a/print-engine/src/commonMain/kotlin/de/tillhub/printengine/PrinterImpl.kt +++ b/print-engine/src/commonMain/kotlin/de/tillhub/printengine/PrinterImpl.kt @@ -40,8 +40,8 @@ internal class PrinterImpl( info.serviceVersion, ) } - }.doOnError { - logWarning("getting printer info") + }.doOnError { error -> + logWarning(error, "getting printer info") } } @@ -72,8 +72,8 @@ internal class PrinterImpl( controller.start() analytics?.logPrintReceipt(job.description) } - }.doOnError { - logWarning("printing job '${job.description}'") + }.doOnError { error -> + logWarning(error, "printing job '${job.description}'") analytics?.logErrorPrintReceipt("printing text '${job.description}'") } } @@ -82,7 +82,13 @@ internal class PrinterImpl( Logger.i("printing: $message") } - private fun logWarning(reason: String) { - Logger.w("Printer not connected for: $reason") + private fun logWarning( + error: PrinterResult.Error, + reason: String, + ) { + when (error) { + PrinterResult.Error.PrinterNotConnected -> Logger.w("Printer not connected for: $reason") + is PrinterResult.Error.WithException -> Logger.w("Failed for: $reason", error.error) + } } } diff --git a/print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/ImageBitmapExt.kt b/print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/ImageBitmapExt.kt index 90d70e9..b2a08f7 100644 --- a/print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/ImageBitmapExt.kt +++ b/print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/ImageBitmapExt.kt @@ -3,3 +3,41 @@ package de.tillhub.printengine.data import androidx.compose.ui.graphics.ImageBitmap expect fun ImageBitmap.encodeToBase64(): String + +/** + * Builds an [ImageBitmap] from opaque ARGB [pixels]. The only platform specific step of + * [normalizeForPrintHead]; everything above it is shared Kotlin. + */ +internal expect fun argbToImageBitmap( + pixels: IntArray, + width: Int, + height: Int, +): ImageBitmap + +/** + * Returns this image prepared for a monochrome thermal print head that is [headWidthPx] + * dots wide: downscaled to that width when wider, and reduced to 1 bit black and white by + * Floyd-Steinberg error diffusion. + * + * Both steps are lossless as far as the device is concerned - the head prints a dot or no + * dot, at its own resolution - while typically shrinking the PNG behind a data URI by an + * order of magnitude. On the HTML printers that is the difference between a receipt that + * fits into a single IPC transaction and one that is silently dropped. + * + * Images at or below [headWidthPx] keep their size: upscaling adds no printable detail and + * would only grow the payload. + */ +fun ImageBitmap.normalizeForPrintHead(headWidthPx: Int): ImageBitmap { + if (width <= 0 || height <= 0 || headWidthPx <= 0) return this + + val pixels = IntArray(width * height) + readPixels(pixels) + + val normalized = MonochromeImage.normalize( + pixels = pixels, + sourceWidth = width, + sourceHeight = height, + headWidthPx = headWidthPx, + ) + return argbToImageBitmap(normalized.pixels, normalized.width, normalized.height) +} diff --git a/print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/MonochromeImage.kt b/print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/MonochromeImage.kt new file mode 100644 index 0000000..1be4503 --- /dev/null +++ b/print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/MonochromeImage.kt @@ -0,0 +1,193 @@ +package de.tillhub.printengine.data + +/** + * Pixel level preparation of images for a monochrome thermal print head. + * + * Deliberately free of any platform bitmap type: the whole algorithm is shared and unit + * tested in commonTest, and only the final "pixels to platform bitmap" step needs an + * expect/actual (see [argbToImageBitmap]). + */ +internal object MonochromeImage { + /** + * The result of [normalize]: opaque ARGB pixels that are already pure black or white, + * together with the size they describe. + */ + class Pixels( + val pixels: IntArray, + val width: Int, + val height: Int, + ) + + /** + * Downscales the [sourceWidth] x [sourceHeight] ARGB [pixels] so their width fits + * [headWidthPx], then reduces them to pure black and white. + * + * Images at or below [headWidthPx] keep their size: a print head cannot render detail + * beyond its own width, so upscaling would inflate the payload without adding anything + * printable. + */ + fun normalize( + pixels: IntArray, + sourceWidth: Int, + sourceHeight: Int, + headWidthPx: Int, + ): Pixels { + val targetWidth = targetWidth(sourceWidth, headWidthPx) + val targetHeight = targetHeight(sourceWidth, sourceHeight, targetWidth) + + val gray = toGrayscale(pixels) + val scaled = if (targetWidth == sourceWidth && targetHeight == sourceHeight) { + gray + } else { + downscale(gray, sourceWidth, sourceHeight, targetWidth, targetHeight) + } + + return Pixels( + pixels = toOpaqueArgb(dither(scaled, targetWidth, targetHeight)), + width = targetWidth, + height = targetHeight, + ) + } + + /** Never wider than the head, never upscaled. */ + private fun targetWidth( + sourceWidth: Int, + headWidthPx: Int, + ): Int = minOf(sourceWidth, headWidthPx) + + /** Height that preserves the aspect ratio of [sourceWidth] x [sourceHeight] at [targetWidth]. */ + private fun targetHeight( + sourceWidth: Int, + sourceHeight: Int, + targetWidth: Int, + ): Int = when { + targetWidth == sourceWidth -> sourceHeight + else -> maxOf(1, (sourceHeight.toLong() * targetWidth / sourceWidth).toInt()) + } + + /** + * Converts ARGB pixels to 0..255 luminance, compositing over white first so that + * transparent regions come out as unprinted paper rather than as black. + */ + private fun toGrayscale(pixels: IntArray): IntArray = IntArray(pixels.size) { index -> + val pixel = pixels[index] + val alpha = (pixel ushr ALPHA_SHIFT) and CHANNEL_MASK + val red = (pixel ushr RED_SHIFT) and CHANNEL_MASK + val green = (pixel ushr GREEN_SHIFT) and CHANNEL_MASK + val blue = pixel and CHANNEL_MASK + + val luminance = (RED_WEIGHT * red + GREEN_WEIGHT * green + BLUE_WEIGHT * blue) shr WEIGHT_SHIFT + when (alpha) { + CHANNEL_MASK -> luminance + else -> (luminance * alpha + CHANNEL_MASK * (CHANNEL_MASK - alpha)) / CHANNEL_MASK + } + } + + /** + * Box filter downscale of a luminance plane: every target pixel is the average of the + * source pixels it covers. Averaging rather than sampling matters here, because dropping + * pixels from a barcode-like pattern loses strokes that averaging preserves as grey - and + * grey is what [dither] turns back into detail. + */ + @Suppress("NestedBlockDepth") + private fun downscale( + gray: IntArray, + sourceWidth: Int, + sourceHeight: Int, + targetWidth: Int, + targetHeight: Int, + ): IntArray { + val scaled = IntArray(targetWidth * targetHeight) + for (targetY in 0 until targetHeight) { + val startY = targetY * sourceHeight / targetHeight + val endY = maxOf(startY + 1, (targetY + 1) * sourceHeight / targetHeight) + for (targetX in 0 until targetWidth) { + val startX = targetX * sourceWidth / targetWidth + val endX = maxOf(startX + 1, (targetX + 1) * sourceWidth / targetWidth) + + var sum = 0 + var count = 0 + for (sourceY in startY until endY) { + val rowOffset = sourceY * sourceWidth + for (sourceX in startX until endX) { + sum += gray[rowOffset + sourceX] + count++ + } + } + scaled[targetY * targetWidth + targetX] = sum / count + } + } + return scaled + } + + /** + * Floyd-Steinberg error diffusion: each pixel is pushed to black or white and the + * rounding error is spread over the neighbours not yet visited. That is what keeps + * photographic gradients readable on a head that can only print "dot" or "no dot". + * + * [gray] is consumed as the error accumulator, so the caller must not reuse it. + */ + private fun dither( + gray: IntArray, + width: Int, + height: Int, + ): IntArray { + val output = IntArray(gray.size) + for (y in 0 until height) { + val rowOffset = y * width + for (x in 0 until width) { + val index = rowOffset + x + val value = gray[index] + val quantized = if (value < THRESHOLD) BLACK else WHITE + output[index] = quantized + + val error = value - quantized + if (error == 0) continue + + if (x + 1 < width) { + gray[index + 1] += error * RIGHT_WEIGHT / ERROR_DIVISOR + } + if (y + 1 < height) { + val belowOffset = index + width + if (x > 0) { + gray[belowOffset - 1] += error * BELOW_LEFT_WEIGHT / ERROR_DIVISOR + } + gray[belowOffset] += error * BELOW_WEIGHT / ERROR_DIVISOR + if (x + 1 < width) { + gray[belowOffset + 1] += error * BELOW_RIGHT_WEIGHT / ERROR_DIVISOR + } + } + } + } + return output + } + + /** Expands a luminance plane back into opaque ARGB pixels. */ + private fun toOpaqueArgb(gray: IntArray): IntArray = IntArray(gray.size) { index -> + val value = gray[index].coerceIn(BLACK, WHITE) + OPAQUE_ALPHA or (value shl RED_SHIFT) or (value shl GREEN_SHIFT) or value + } + + private const val ALPHA_SHIFT = 24 + private const val RED_SHIFT = 16 + private const val GREEN_SHIFT = 8 + private const val CHANNEL_MASK = 0xFF + private const val OPAQUE_ALPHA = 0xFF shl ALPHA_SHIFT + + // Integer approximation of the Rec. 601 luma coefficients (0.299, 0.587, 0.114). + private const val RED_WEIGHT = 77 + private const val GREEN_WEIGHT = 151 + private const val BLUE_WEIGHT = 28 + private const val WEIGHT_SHIFT = 8 + + private const val BLACK = 0 + private const val WHITE = 255 + private const val THRESHOLD = 128 + + // Floyd-Steinberg diffusion kernel. + private const val RIGHT_WEIGHT = 7 + private const val BELOW_LEFT_WEIGHT = 3 + private const val BELOW_WEIGHT = 5 + private const val BELOW_RIGHT_WEIGHT = 1 + private const val ERROR_DIVISOR = 16 +} diff --git a/print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/PrinterInfo.kt b/print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/PrinterInfo.kt index e596383..adad7f8 100644 --- a/print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/PrinterInfo.kt +++ b/print-engine/src/commonMain/kotlin/de/tillhub/printengine/data/PrinterInfo.kt @@ -50,33 +50,56 @@ class PrinterInfo( /** * Defines the width of the printing paper. + * + * [characterCount] describes the paper in text terms, [printHeadWidthPx] in dots. Both are + * needed: text is laid out per character, while images have to be scaled to what the head can + * physically resolve. */ sealed class PrintingPaperSpec( open val characterCount: Int, + open val printHeadWidthPx: Int, ) { - data object PaxPaper56mm : PrintingPaperSpec(PAX_PAPER_56MM_CHAR_COUNT) + data object PaxPaper56mm : PrintingPaperSpec( + characterCount = PAX_PAPER_56MM_CHAR_COUNT, + printHeadWidthPx = PAPER_56MM_HEAD_WIDTH_PX, + ) - data object SunmiPaper56mm : PrintingPaperSpec(SUNMI_PAPER_56MM_CHAR_COUNT) + data object SunmiPaper56mm : PrintingPaperSpec( + characterCount = SUNMI_PAPER_56MM_CHAR_COUNT, + printHeadWidthPx = PAPER_56MM_HEAD_WIDTH_PX, + ) - data object VerifonePaper56mm : PrintingPaperSpec(VERIFONE_PAPER_56MM_CHAR_COUNT) + data object VerifonePaper56mm : PrintingPaperSpec( + characterCount = VERIFONE_PAPER_56MM_CHAR_COUNT, + printHeadWidthPx = PAPER_56MM_HEAD_WIDTH_PX, + ) class External( override val characterCount: Int, - ) : PrintingPaperSpec(characterCount) { + override val printHeadWidthPx: Int = EXTERNAL_HEAD_WIDTH_PX, + ) : PrintingPaperSpec(characterCount, printHeadWidthPx) { override fun toString() = "PrintingPaperSpec.External(" + - "characterCount=$characterCount" + + "characterCount=$characterCount, " + + "printHeadWidthPx=$printHeadWidthPx" + ")" override fun equals(other: Any?) = other is External && - characterCount == other.characterCount + characterCount == other.characterCount && + printHeadWidthPx == other.printHeadWidthPx - override fun hashCode() = HashHelper.hash(characterCount) + override fun hashCode() = HashHelper.hash(characterCount, printHeadWidthPx) } companion object { const val PAX_PAPER_56MM_CHAR_COUNT = 35 const val SUNMI_PAPER_56MM_CHAR_COUNT = 38 const val VERIFONE_PAPER_56MM_CHAR_COUNT = 32 + + /** 56mm of printable width at the 203 dpi every built-in head in this library runs at. */ + const val PAPER_56MM_HEAD_WIDTH_PX = 384 + + /** 80mm at 203 dpi, the common width of the external receipt printers we support. */ + const val EXTERNAL_HEAD_WIDTH_PX = 576 } } diff --git a/print-engine/src/commonMain/kotlin/de/tillhub/printengine/html/HtmlPrinterController.kt b/print-engine/src/commonMain/kotlin/de/tillhub/printengine/html/HtmlPrinterController.kt index 81962bc..2786a92 100644 --- a/print-engine/src/commonMain/kotlin/de/tillhub/printengine/html/HtmlPrinterController.kt +++ b/print-engine/src/commonMain/kotlin/de/tillhub/printengine/html/HtmlPrinterController.kt @@ -5,7 +5,9 @@ import de.tillhub.printengine.PrinterController import de.tillhub.printengine.barcode.BarcodeEncoder import de.tillhub.printengine.barcode.BarcodeType import de.tillhub.printengine.data.PrinterState +import de.tillhub.printengine.data.PrintingPaperSpec import de.tillhub.printengine.data.RawPrinterData +import de.tillhub.printengine.data.normalizeForPrintHead import de.tillhub.printengine.html.HtmlUtils.generateImageHtml import de.tillhub.printengine.html.HtmlUtils.monospaceText import de.tillhub.printengine.html.HtmlUtils.singleLineCenteredText @@ -16,6 +18,7 @@ import kotlinx.coroutines.flow.MutableStateFlow abstract class HtmlPrinterController( private val printerState: MutableStateFlow, private val barcodeEncoder: BarcodeEncoder, + val paperSpec: PrintingPaperSpec, val barcodeSize: BarcodeSize, val qrCodeSize: QrCodeSize, val fontSize: FontSize, @@ -39,8 +42,12 @@ abstract class HtmlPrinterController( batchSB.appendLine(monospaceText(text, fontSize.value)) } + /** + * Normalised for the print head first: inlined into the receipt HTML at full colour and + * resolution, an image is unprintable detail and big enough to overflow the IPC transaction. + */ override fun printImage(image: ImageBitmap) { - batchSB.append(generateImageHtml(image)) + appendImage(image.normalizeForPrintHead(paperSpec.printHeadWidthPx)) } override fun printBarcode(barcode: String) { @@ -51,7 +58,7 @@ abstract class HtmlPrinterController( imgWidth = barcodeSize.width, imgHeight = barcodeSize.height, )?.let { image -> - printImage(image) + appendImage(image) printText(singleLineCenteredText(barcode)) } } @@ -64,7 +71,7 @@ abstract class HtmlPrinterController( imgWidth = qrCodeSize.value, imgHeight = qrCodeSize.value, )?.let { image -> - printImage(image) + appendImage(image) printText(singleLineCenteredText(qrData)) } } @@ -74,9 +81,20 @@ abstract class HtmlPrinterController( } override fun start() { - if (batchSB.isNotEmpty()) { - printContent(transformToHtml(batchSB.toString(), includeStyleTag)) - batchSB.clear() - } + if (batchSB.isEmpty()) return + + val content = transformToHtml(batchSB.toString(), includeStyleTag) + // Cleared before the content is handed over, so that a receipt the transport rejects + // cannot leak into the next print job. + batchSB.clear() + + printContent(content) + } + + /** + * Appends an image that is already fit for the print head, skipping normalisation. + */ + private fun appendImage(image: ImageBitmap) { + batchSB.append(generateImageHtml(image)) } } diff --git a/print-engine/src/commonTest/kotlin/de/tillhub/printengine/data/MonochromeImageTest.kt b/print-engine/src/commonTest/kotlin/de/tillhub/printengine/data/MonochromeImageTest.kt new file mode 100644 index 0000000..2359a7e --- /dev/null +++ b/print-engine/src/commonTest/kotlin/de/tillhub/printengine/data/MonochromeImageTest.kt @@ -0,0 +1,145 @@ +package de.tillhub.printengine.data + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue + +/** + * Exercises [MonochromeImage.normalize], the entry point the print path uses. The scaling and + * dithering steps are covered through it rather than individually, so the tests describe what a + * caller can rely on instead of how the pixels get there. + */ +internal class MonochromeImageTest { + @Test + fun `downscales to the head width and preserves the aspect ratio`() { + val normalized = MonochromeImage.normalize( + pixels = gradient(width = 800, height = 400), + sourceWidth = 800, + sourceHeight = 400, + headWidthPx = HEAD_WIDTH_PX, + ) + + assertEquals(HEAD_WIDTH_PX, normalized.width) + assertEquals(192, normalized.height) + assertEquals(HEAD_WIDTH_PX * 192, normalized.pixels.size) + } + + @Test + fun `does not upscale an image that already fits`() { + val normalized = MonochromeImage.normalize( + pixels = gradient(width = 120, height = 60), + sourceWidth = 120, + sourceHeight = 60, + headWidthPx = HEAD_WIDTH_PX, + ) + + assertEquals(120, normalized.width) + assertEquals(60, normalized.height) + } + + @Test + fun `never collapses a wide flat image to no height at all`() { + val normalized = MonochromeImage.normalize( + pixels = gradient(width = 1000, height = 2), + sourceWidth = 1000, + sourceHeight = 2, + headWidthPx = 10, + ) + + assertEquals(10, normalized.width) + assertEquals(1, normalized.height) + } + + @Test + fun `emits only opaque black or white pixels`() { + val normalized = MonochromeImage.normalize( + pixels = gradient(width = 200, height = 100), + sourceWidth = 200, + sourceHeight = 100, + headWidthPx = HEAD_WIDTH_PX, + ) + + assertTrue( + normalized.pixels.all { it == BLACK || it == WHITE }, + "normalised output must be 1 bit monochrome", + ) + } + + @Test + fun `prints a transparent pixel as unprinted paper`() { + // Transparent is black in ARGB terms; on paper it has to come out white. + val normalized = normalizeSinglePixel(TRANSPARENT) + + assertEquals(WHITE, normalized) + } + + @Test + fun `weights the colour channels by luminance`() { + // Green carries most of the perceived brightness, blue almost none, so at full saturation + // green lands on the white side of the threshold while red and blue land on the black side. + assertEquals(WHITE, normalizeSinglePixel(GREEN)) + assertEquals(BLACK, normalizeSinglePixel(RED)) + assertEquals(BLACK, normalizeSinglePixel(BLUE)) + } + + @Test + fun `dithers flat mid grey into a mix of black and white`() { + val midGrey = IntArray(SIZE * SIZE) { MID_GREY } + + val normalized = MonochromeImage.normalize( + pixels = midGrey, + sourceWidth = SIZE, + sourceHeight = SIZE, + headWidthPx = HEAD_WIDTH_PX, + ) + + assertTrue(normalized.pixels.any { it == BLACK }, "expected some black dots") + assertTrue(normalized.pixels.any { it == WHITE }, "expected some white dots") + } + + @Test + fun `averages the pixels it merges instead of sampling them`() { + // One dark pixel among three white ones, halved in width. Sampling every other pixel would + // read white twice and lose the dark one outright; averaging carries it into the merged + // pixel, which then dithers to black. + val normalized = MonochromeImage.normalize( + pixels = intArrayOf(WHITE, BLACK, WHITE, WHITE), + sourceWidth = 4, + sourceHeight = 1, + headWidthPx = 2, + ) + + assertEquals(listOf(BLACK, WHITE), normalized.pixels.toList()) + } + + private fun normalizeSinglePixel(pixel: Int): Int = MonochromeImage + .normalize( + pixels = intArrayOf(pixel), + sourceWidth = 1, + sourceHeight = 1, + headWidthPx = HEAD_WIDTH_PX, + ).pixels + .single() + + /** A horizontal grey ramp, the shape that shows whether tone survives normalisation. */ + private fun gradient( + width: Int, + height: Int, + ): IntArray = IntArray(width * height) { index -> + val value = (index % width) * 255 / (width - 1) + OPAQUE_ALPHA or (value shl 16) or (value shl 8) or value + } + + private companion object { + const val HEAD_WIDTH_PX = 384 + const val SIZE = 8 + const val OPAQUE_ALPHA = 0xFF shl 24 + const val BLACK = 0xFF000000.toInt() + const val WHITE = 0xFFFFFFFF.toInt() + const val MID_GREY = 0xFF7F7F7F.toInt() + const val TRANSPARENT = 0x00000000 + const val RED = 0xFFFF0000.toInt() + const val GREEN = 0xFF00FF00.toInt() + const val BLUE = 0xFF0000FF.toInt() + } +} diff --git a/print-engine/src/commonTest/kotlin/de/tillhub/printengine/html/HtmlPrinterControllerTest.kt b/print-engine/src/commonTest/kotlin/de/tillhub/printengine/html/HtmlPrinterControllerTest.kt new file mode 100644 index 0000000..e501876 --- /dev/null +++ b/print-engine/src/commonTest/kotlin/de/tillhub/printengine/html/HtmlPrinterControllerTest.kt @@ -0,0 +1,130 @@ +package de.tillhub.printengine.html + +import androidx.compose.ui.graphics.ImageBitmap +import de.tillhub.printengine.PrintService +import de.tillhub.printengine.PrinterController +import de.tillhub.printengine.barcode.BarcodeEncoder +import de.tillhub.printengine.barcode.BarcodeType +import de.tillhub.printengine.data.PrinterInfo +import de.tillhub.printengine.data.PrinterResult +import de.tillhub.printengine.data.PrinterServiceVersion +import de.tillhub.printengine.data.PrinterState +import de.tillhub.printengine.data.PrintingFontType +import de.tillhub.printengine.data.PrintingIntensity +import de.tillhub.printengine.data.PrintingPaperSpec +import de.tillhub.printengine.withPrinterCatching +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlin.test.Test +import kotlin.test.assertNull +import kotlin.test.assertTrue + +internal class HtmlPrinterControllerTest { + @Test + fun `start sends the assembled receipt`() { + val controller = TestHtmlPrinterController() + + controller.printText("receipt") + controller.start() + + assertTrue(controller.printedContent.orEmpty().contains("receipt")) + } + + @Test + fun `start sends nothing when there is nothing batched`() { + val controller = TestHtmlPrinterController() + + controller.start() + + assertNull(controller.printedContent) + } + + @Test + fun `a receipt the transport rejects does not leak into the next print job`() { + val controller = TestHtmlPrinterController(failOnPrint = true) + + controller.printText("first") + runCatching { controller.start() } + controller.failOnPrint = false + + controller.printText("second") + controller.start() + + val printed = controller.printedContent.orEmpty() + assertTrue(printed.contains("second")) + assertTrue(!printed.contains("first"), "stale batch was resent") + } + + @Test + fun `a transport failure is reported as an error rather than as success`() { + val controller = TestHtmlPrinterController(failOnPrint = true) + val service = TestPrintService(controller) + + controller.printText("receipt") + val result = service.withPrinterCatching { it.start() } + + assertTrue( + result is PrinterResult.Error.WithException, + "expected a failed transport to surface as an error but was $result", + ) + } + + private class TestPrintService( + controller: PrinterController, + ) : PrintService() { + override var printController: PrinterController? = controller + override val printerState: Flow = MutableStateFlow(PrinterState.Connected) + } + + private class TestHtmlPrinterController( + var failOnPrint: Boolean = false, + ) : HtmlPrinterController( + printerState = MutableStateFlow(PrinterState.Connected), + barcodeEncoder = NoBarcodeEncoder, + paperSpec = PrintingPaperSpec.PaxPaper56mm, + barcodeSize = BarcodeSize(height = 140, width = 435), + qrCodeSize = QrCodeSize(220), + fontSize = FontSize(13), + includeStyleTag = false, + feedString = FeedString("
"), + ) { + var printedContent: String? = null + private set + + override fun printContent( + content: String, + cutAfterPrint: Boolean, + ) { + if (failOnPrint) throw IllegalStateException("transport failed") + printedContent = content + } + + override fun setFontSize(fontSize: PrintingFontType) = Unit + + override fun setIntensity(intensity: PrintingIntensity) = Unit + + override fun printImage(image: ImageBitmap) = Unit + + override fun cutPaper() = Unit + + override suspend fun getPrinterInfo(): PrinterInfo = PrinterInfo( + serialNumber = "n/a", + deviceModel = "test", + printerVersion = "n/a", + printerPaperSpec = PrintingPaperSpec.PaxPaper56mm, + printingFontType = PrintingFontType.DEFAULT_FONT_SIZE, + printerHead = "n/a", + printedDistance = 0, + serviceVersion = PrinterServiceVersion.Unknown, + ) + } + + private object NoBarcodeEncoder : BarcodeEncoder { + override fun encodeAsBitmap( + content: String, + type: BarcodeType, + imgWidth: Int, + imgHeight: Int, + ): ImageBitmap? = null + } +} diff --git a/print-engine/src/iosMain/kotlin/de/tillhub/printengine/data/ImageBitmap.ios.kt b/print-engine/src/iosMain/kotlin/de/tillhub/printengine/data/ImageBitmap.ios.kt index c8527ee..1162601 100644 --- a/print-engine/src/iosMain/kotlin/de/tillhub/printengine/data/ImageBitmap.ios.kt +++ b/print-engine/src/iosMain/kotlin/de/tillhub/printengine/data/ImageBitmap.ios.kt @@ -1,6 +1,7 @@ package de.tillhub.printengine.data import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.toComposeImageBitmap import kotlinx.cinterop.ExperimentalForeignApi import kotlinx.cinterop.addressOf import kotlinx.cinterop.usePinned @@ -13,32 +14,42 @@ import org.jetbrains.skia.Bitmap as SkiaBitmap import org.jetbrains.skia.Image as SkiaImage /** - * Encodes a Compose [ImageBitmap] to PNG bytes via Skia. - * Handles pixel extraction, Skia bitmap/image lifecycle, and cleanup. - * Returns null if PNG encoding fails. + * Wraps ARGB [pixels] in a Skia bitmap. + * + * On little-endian (all Apple platforms) the raw bytes of an ARGB int are already in BGRA + * order, which is what Skia's N32 native format expects - so the pixels can be memcpy'd + * across without any per-channel shuffling. */ @OptIn(ExperimentalForeignApi::class) -fun ImageBitmap.encodeToPngBytes(): ByteArray? { - val w = width - val h = height - val buffer = IntArray(w * h) - readPixels(buffer) - - // On little-endian (all Apple platforms), raw int bytes are already in - // BGRA order which matches Skia's N32 native format — memcpy directly. - val bytes = ByteArray(buffer.size * 4) - buffer.usePinned { src -> +private fun skiaBitmapOf( + pixels: IntArray, + width: Int, + height: Int, +): SkiaBitmap { + val bytes = ByteArray(pixels.size * BYTES_PER_PIXEL) + pixels.usePinned { src -> bytes.usePinned { dst -> memcpy(dst.addressOf(0), src.addressOf(0), bytes.size.toULong()) } } - val imageInfo = ImageInfo.makeN32Premul(w, h) - val skiaBitmap = SkiaBitmap().apply { + val imageInfo = ImageInfo.makeN32Premul(width, height) + return SkiaBitmap().apply { allocPixels(imageInfo) - installPixels(imageInfo, bytes, w * 4) + installPixels(imageInfo, bytes, width * BYTES_PER_PIXEL) } +} +/** + * Encodes a Compose [ImageBitmap] to PNG bytes via Skia. + * Handles pixel extraction, Skia bitmap/image lifecycle, and cleanup. + * Returns null if PNG encoding fails. + */ +fun ImageBitmap.encodeToPngBytes(): ByteArray? { + val buffer = IntArray(width * height) + readPixels(buffer) + + val skiaBitmap = skiaBitmapOf(buffer, width, height) return try { val skiaImage = SkiaImage.makeFromBitmap(skiaBitmap) try { @@ -57,3 +68,23 @@ actual fun ImageBitmap.encodeToBase64(): String { ?: error("Failed to encode image to PNG") return Base64.encode(pngBytes) } + +internal actual fun argbToImageBitmap( + pixels: IntArray, + width: Int, + height: Int, +): ImageBitmap { + val skiaBitmap = skiaBitmapOf(pixels, width, height) + return try { + val skiaImage = SkiaImage.makeFromBitmap(skiaBitmap) + try { + skiaImage.toComposeImageBitmap() + } finally { + skiaImage.close() + } + } finally { + skiaBitmap.close() + } +} + +private const val BYTES_PER_PIXEL = 4 diff --git a/print-engine/src/iosTest/kotlin/de/tillhub/printengine/data/ImageBitmapExtTest.kt b/print-engine/src/iosTest/kotlin/de/tillhub/printengine/data/ImageBitmapExtTest.kt new file mode 100644 index 0000000..cf0b3cb --- /dev/null +++ b/print-engine/src/iosTest/kotlin/de/tillhub/printengine/data/ImageBitmapExtTest.kt @@ -0,0 +1,132 @@ +package de.tillhub.printengine.data + +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.toComposeImageBitmap +import org.jetbrains.skia.ImageInfo +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.jetbrains.skia.Bitmap as SkiaBitmap +import org.jetbrains.skia.Image as SkiaImage + +/** + * Covers the Skia backed half of [normalizeForPrintHead]: the shared algorithm is tested in + * [MonochromeImageTest], this checks that reading pixels out of a Compose [ImageBitmap] and + * building one back up works on iOS. + */ +internal class ImageBitmapExtTest { + @Test + fun `normalizeForPrintHead downscales an oversized image to the head width`() { + val normalized = gradientImage(width = 800, height = 400) + .normalizeForPrintHead(HEAD_WIDTH_PX) + + assertEquals(HEAD_WIDTH_PX, normalized.width) + assertEquals(192, normalized.height) + } + + @Test + fun `normalizeForPrintHead does not upscale an image that already fits`() { + val normalized = gradientImage(width = 120, height = 60) + .normalizeForPrintHead(HEAD_WIDTH_PX) + + assertEquals(120, normalized.width) + assertEquals(60, normalized.height) + } + + @Test + fun `normalizeForPrintHead reduces the image to one bit monochrome`() { + val normalized = gradientImage(width = 200, height = 100) + .normalizeForPrintHead(HEAD_WIDTH_PX) + + val pixels = IntArray(normalized.width * normalized.height) + normalized.readPixels(pixels) + + assertTrue( + pixels.all { it == BLACK || it == WHITE }, + "normalized output must be 1 bit monochrome", + ) + } + + @Test + fun `normalizeForPrintHead shrinks the encoded payload`() { + // Photographic detail is what PNG cannot compress away, so that is what is measured + // here - a flat logo or a smooth ramp would understate the difference. + val image = photoLikeImage(width = 800, height = 400) + + val normalizedSize = image.normalizeForPrintHead(HEAD_WIDTH_PX).encodeToBase64().length + + assertTrue( + normalizedSize < image.encodeToBase64().length, + "normalising should shrink the payload", + ) + } + + /** A horizontal grey ramp: enough tone that dithering has something to do. */ + private fun gradientImage( + width: Int, + height: Int, + ): ImageBitmap = imageOf(width, height) { index -> + val value = ((index % width) * 255 / (width - 1)).toByte() + // Neutral grey, so all three colour channels carry the same value. + byteArrayOf(value, value, value, OPAQUE_ALPHA) + } + + /** + * Deterministic per-pixel colour noise, standing in for a photo: like a photograph and + * unlike a gradient, there is no redundancy for PNG to squeeze out. + */ + private fun photoLikeImage( + width: Int, + height: Int, + ): ImageBitmap { + var state = 1 + return imageOf(width, height) { + state = state * LCG_MULTIPLIER + LCG_INCREMENT + byteArrayOf( + (state ushr 8).toByte(), + (state ushr 16).toByte(), + (state ushr 24).toByte(), + OPAQUE_ALPHA, + ) + } + } + + /** Builds an [ImageBitmap] straight through Skia, independent of production code. */ + private fun imageOf( + width: Int, + height: Int, + // N32 on little-endian Apple platforms is BGRA. + bgraPixel: (index: Int) -> ByteArray, + ): ImageBitmap { + val bytes = ByteArray(width * height * BYTES_PER_PIXEL) + for (index in 0 until width * height) { + bgraPixel(index).copyInto(bytes, index * BYTES_PER_PIXEL) + } + + val imageInfo = ImageInfo.makeN32Premul(width, height) + val skiaBitmap = SkiaBitmap().apply { + allocPixels(imageInfo) + installPixels(imageInfo, bytes, width * BYTES_PER_PIXEL) + } + return try { + val skiaImage = SkiaImage.makeFromBitmap(skiaBitmap) + try { + skiaImage.toComposeImageBitmap() + } finally { + skiaImage.close() + } + } finally { + skiaBitmap.close() + } + } + + private companion object { + const val HEAD_WIDTH_PX = 384 + const val LCG_MULTIPLIER = 1664525 + const val LCG_INCREMENT = 1013904223 + const val BYTES_PER_PIXEL = 4 + const val OPAQUE_ALPHA = 0xFF.toByte() + const val BLACK = 0xFF000000.toInt() + const val WHITE = 0xFFFFFFFF.toInt() + } +} diff --git a/print-plugins/pax/src/main/java/de/tillhub/printengine/pax/DirectPrintService.kt b/print-plugins/pax/src/main/java/de/tillhub/printengine/pax/DirectPrintService.kt index 379bf6a..2d1160b 100644 --- a/print-plugins/pax/src/main/java/de/tillhub/printengine/pax/DirectPrintService.kt +++ b/print-plugins/pax/src/main/java/de/tillhub/printengine/pax/DirectPrintService.kt @@ -33,7 +33,9 @@ internal class DirectPrintServiceImpl( .apply { replyTo = Messenger(PrintResponseHandler(listener)) }.also { message -> - sendMessage(message, listener) + // A failed status check only means the state is unknown, so it is reported and + // swallowed - this runs from the controller's constructor. + sendMessage(message, listener, rethrowOnFailure = false) } } @@ -53,18 +55,28 @@ internal class DirectPrintServiceImpl( MSG_PRINT_INTENSITY to printingIntensity, ) }.also { message -> - sendMessage(message, listener) + sendMessage(message, listener, rethrowOnFailure = true) } } + /** + * @throws RemoteException if [rethrowOnFailure] and the transaction fails. + * + * [DirectPrintListener.onFailed] only moves the printer state; it does not tell the caller of + * `startPrintJob` anything. Rethrowing is what turns a failed transaction - including the + * `TransactionTooLargeException` an oversized receipt triggers - into a `PrinterResult.Error` + * instead of a `Success` for a receipt that was never printed. + */ private fun sendMessage( message: Message, listener: DirectPrintListener, + rethrowOnFailure: Boolean, ) { try { requestMessenger.send(message) } catch (e: RemoteException) { listener.onFailed(e) + if (rethrowOnFailure) throw e } } diff --git a/print-plugins/pax/src/main/java/de/tillhub/printengine/pax/PaxPrinterController.kt b/print-plugins/pax/src/main/java/de/tillhub/printengine/pax/PaxPrinterController.kt index 4858bff..cbc08b2 100644 --- a/print-plugins/pax/src/main/java/de/tillhub/printengine/pax/PaxPrinterController.kt +++ b/print-plugins/pax/src/main/java/de/tillhub/printengine/pax/PaxPrinterController.kt @@ -22,6 +22,7 @@ internal class PaxPrinterController( ) : HtmlPrinterController( printerState = printerState, barcodeEncoder = barcodeEncoder, + paperSpec = PAX_PAPER_SPEC, barcodeSize = PAX_BARCODE_SIZE, qrCodeSize = PAX_QR_CODE_SIZE, fontSize = PAX_FONT_SIZE, @@ -49,7 +50,7 @@ internal class PaxPrinterController( serialNumber = "n/a", deviceModel = "A920", printerVersion = "n/a", - printerPaperSpec = PrintingPaperSpec.PaxPaper56mm, + printerPaperSpec = PAX_PAPER_SPEC, printingFontType = PrintingFontType.DEFAULT_FONT_SIZE, printerHead = "n/a", printedDistance = 0, @@ -89,6 +90,7 @@ internal class PaxPrinterController( } companion object { + private val PAX_PAPER_SPEC = PrintingPaperSpec.PaxPaper56mm private const val DEFAULT_INTENSITY = 50 private const val LIGHT_INTENSITY = 25 private const val DARK_INTENSITY = 70 diff --git a/print-plugins/pax/src/test/java/de/tillhub/printengine/pax/DirectPrintServiceImplTest.kt b/print-plugins/pax/src/test/java/de/tillhub/printengine/pax/DirectPrintServiceImplTest.kt index 8b51c00..f8909f8 100644 --- a/print-plugins/pax/src/test/java/de/tillhub/printengine/pax/DirectPrintServiceImplTest.kt +++ b/print-plugins/pax/src/test/java/de/tillhub/printengine/pax/DirectPrintServiceImplTest.kt @@ -4,6 +4,7 @@ import android.os.Message import android.os.Messenger import android.os.RemoteException import de.tillhub.printengine.pax.DirectPrintService.DirectPrintListener +import io.kotest.assertions.throwables.shouldThrow import io.kotest.core.spec.style.FunSpec import io.kotest.extensions.robolectric.RobolectricTest import io.kotest.matchers.shouldBe @@ -60,7 +61,25 @@ class DirectPrintServiceImplTest : val ex = RemoteException() every { requestMessenger.send(any()) } throws ex - target.print("payload", 50, listener) + // Reported to the listener for the printer state, and rethrown so the caller of + // startPrintJob does not get a Success for a receipt that was never sent. + val thrown = shouldThrow { + target.print("payload", 50, listener) + } + + thrown shouldBe ex + verify { + listener.onFailed(ex) + } + } + + test("checkStatus + exception") { + val ex = RemoteException() + every { requestMessenger.send(any()) } throws ex + + // A failed status check only leaves the state unknown; it runs from the controller's + // constructor, so it must not throw. + target.checkStatus(listener) verify { listener.onFailed(ex) diff --git a/print-plugins/pax/src/test/java/de/tillhub/printengine/pax/PaxPrinterControllerTest.kt b/print-plugins/pax/src/test/java/de/tillhub/printengine/pax/PaxPrinterControllerTest.kt index a42e14e..019aea3 100644 --- a/print-plugins/pax/src/test/java/de/tillhub/printengine/pax/PaxPrinterControllerTest.kt +++ b/print-plugins/pax/src/test/java/de/tillhub/printengine/pax/PaxPrinterControllerTest.kt @@ -1,6 +1,7 @@ package de.tillhub.printengine.pax import android.graphics.Bitmap +import android.os.RemoteException import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asImageBitmap import de.tillhub.printengine.barcode.BarcodeEncoder @@ -12,7 +13,9 @@ import de.tillhub.printengine.data.PrintingFontType import de.tillhub.printengine.data.PrintingIntensity import de.tillhub.printengine.data.PrintingPaperSpec import de.tillhub.printengine.data.RawPrinterData +import de.tillhub.printengine.data.normalizeForPrintHead import de.tillhub.printengine.html.HtmlUtils +import io.kotest.assertions.throwables.shouldThrow import io.kotest.core.spec.style.DescribeSpec import io.kotest.extensions.robolectric.RobolectricTest import io.kotest.matchers.shouldBe @@ -31,6 +34,10 @@ internal class PaxPrinterControllerTest : lateinit var androidBitmap: Bitmap lateinit var bitmap: ImageBitmap + + // What printImage inlines: normalised for the print head. Barcodes and QR codes are + // generated for this printer already, so they are inlined unchanged. + lateinit var normalizedBitmap: ImageBitmap lateinit var printerState: MutableStateFlow lateinit var printService: DirectPrintService lateinit var barcodeEncoder: BarcodeEncoder @@ -39,6 +46,9 @@ internal class PaxPrinterControllerTest : beforeSpec { androidBitmap = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888) bitmap = androidBitmap.asImageBitmap() + normalizedBitmap = bitmap.normalizeForPrintHead( + PrintingPaperSpec.PaxPaper56mm.printHeadWidthPx, + ) } beforeTest { @@ -165,7 +175,8 @@ internal class PaxPrinterControllerTest : } it("printImage") { - val payload = HtmlUtils.transformToHtml(HtmlUtils.generateImageHtml(bitmap), true) + val payload = + HtmlUtils.transformToHtml(HtmlUtils.generateImageHtml(normalizedBitmap), true) target.printImage(bitmap) target.start() @@ -196,7 +207,7 @@ internal class PaxPrinterControllerTest : appendLine(HtmlUtils.monospaceText(HtmlUtils.singleLineCenteredText("barcode"), 13)) append(HtmlUtils.generateImageHtml(bitmap)) appendLine(HtmlUtils.monospaceText(HtmlUtils.singleLineCenteredText("qr_code"), 13)) - append(HtmlUtils.generateImageHtml(bitmap)) + append(HtmlUtils.generateImageHtml(normalizedBitmap)) appendLine(HtmlUtils.monospaceText("end line", 13)) append("
") }.toString(), @@ -215,4 +226,15 @@ internal class PaxPrinterControllerTest : printService.print(payload, 50, any()) } } + + it("a transport failure propagates out of start") { + val ex = RemoteException() + every { printService.print(any(), any(), any()) } throws ex + + target.printText("text_to_print") + + shouldThrow { + target.start() + } + } }) diff --git a/print-plugins/star/src/androidMain/kotlin/de/tillhub/printengine/star/StarPrinterController.android.kt b/print-plugins/star/src/androidMain/kotlin/de/tillhub/printengine/star/StarPrinterController.android.kt index c0d38c7..b43dfad 100644 --- a/print-plugins/star/src/androidMain/kotlin/de/tillhub/printengine/star/StarPrinterController.android.kt +++ b/print-plugins/star/src/androidMain/kotlin/de/tillhub/printengine/star/StarPrinterController.android.kt @@ -123,7 +123,10 @@ internal actual class StarPrinterController( serialNumber = "n/a", deviceModel = starPrinter.information?.model?.name ?: "Unknown", printerVersion = "n/a", - printerPaperSpec = PrintingPaperSpec.External(characterCount = 32), + printerPaperSpec = PrintingPaperSpec.External( + characterCount = 32, + printHeadWidthPx = IMAGE_WIDTH, + ), printingFontType = PrintingFontType.DEFAULT_FONT_SIZE, printerHead = "n/a", printedDistance = 0, diff --git a/print-plugins/star/src/androidMain/kotlin/de/tillhub/printengine/star/StarPrinterDiscovery.android.kt b/print-plugins/star/src/androidMain/kotlin/de/tillhub/printengine/star/StarPrinterDiscovery.android.kt index b5792f4..6faeede 100644 --- a/print-plugins/star/src/androidMain/kotlin/de/tillhub/printengine/star/StarPrinterDiscovery.android.kt +++ b/print-plugins/star/src/androidMain/kotlin/de/tillhub/printengine/star/StarPrinterDiscovery.android.kt @@ -23,6 +23,9 @@ actual class StarPrinterDiscovery( ) : PrinterDiscovery { companion object { private const val CHARACTER_COUNT = 52 + + /** Matches the width [StarPrinterController] renders images at. */ + private const val IMAGE_WIDTH = 406 private const val MANUFACTURER_STAR = "STAR" } @@ -79,7 +82,10 @@ actual class StarPrinterDiscovery( serialNumber = "n/a", deviceModel = printer.information?.model?.name ?: "Unknown", printerVersion = "n/a", - printerPaperSpec = PrintingPaperSpec.External(characterCount = CHARACTER_COUNT), + printerPaperSpec = PrintingPaperSpec.External( + characterCount = CHARACTER_COUNT, + printHeadWidthPx = IMAGE_WIDTH, + ), printingFontType = PrintingFontType.DEFAULT_FONT_SIZE, printerHead = "n/a", printedDistance = 0, diff --git a/print-plugins/verifone/src/main/java/de/tillhub/printengine/verifone/VerifonePrintController.kt b/print-plugins/verifone/src/main/java/de/tillhub/printengine/verifone/VerifonePrintController.kt index 8b8ae68..639887c 100644 --- a/print-plugins/verifone/src/main/java/de/tillhub/printengine/verifone/VerifonePrintController.kt +++ b/print-plugins/verifone/src/main/java/de/tillhub/printengine/verifone/VerifonePrintController.kt @@ -1,5 +1,6 @@ package de.tillhub.printengine.verifone +import android.os.RemoteException import com.verifone.peripherals.DirectPrintManager import com.verifone.peripherals.Printer import de.tillhub.printengine.barcode.BarcodeEncoder @@ -23,6 +24,7 @@ internal class VerifonePrintController( ) : HtmlPrinterController( printerState = printerState, barcodeEncoder = barcodeEncoder, + paperSpec = VERIFONE_PAPER_SPEC, barcodeSize = VERIFONE_BARCODE_SIZE, qrCodeSize = VERIFONE_QR_CODE_SIZE, fontSize = VERIFONE_FONT_SIZE, @@ -67,20 +69,34 @@ internal class VerifonePrintController( } } + /** + * @throws RemoteException if handing the receipt to the print service fails. + * + * [printListener] only reports failures the service itself reports back, and only by moving + * the printer state - it never sees a transaction that failed on the way out, and the caller + * of `startPrintJob` would get a `Success` for a receipt that was never printed. So a + * transport failure - `TransactionTooLargeException` among them - is reflected in the state + * and rethrown for `withPrinterCatching` to turn into a `PrinterResult.Error`. + */ override fun printContent( content: String, cutAfterPrint: Boolean, ) { - printManager.printString( - printListener, - content, - when { - cutAfterPrint || useCutter -> Printer.PRINTER_FULL_CUT - else -> Printer.PRINTER_NO_CUTTER_LINE_FEED - }, - ) - - useCutter = false + try { + printManager.printString( + printListener, + content, + when { + cutAfterPrint || useCutter -> Printer.PRINTER_FULL_CUT + else -> Printer.PRINTER_NO_CUTTER_LINE_FEED + }, + ) + } catch (e: RemoteException) { + printerState.value = PrinterState.Error.ConnectionLost + throw e + } finally { + useCutter = false + } } override fun setFontSize(fontSize: PrintingFontType) = Unit // Not supported @@ -95,7 +111,7 @@ internal class VerifonePrintController( serialNumber = "n/a", deviceModel = "Verifone T630c", printerVersion = "n/a", - printerPaperSpec = PrintingPaperSpec.VerifonePaper56mm, + printerPaperSpec = VERIFONE_PAPER_SPEC, printingFontType = PrintingFontType.DEFAULT_FONT_SIZE, printerHead = "n/a", printedDistance = 0, @@ -103,6 +119,7 @@ internal class VerifonePrintController( ) companion object { + private val VERIFONE_PAPER_SPEC = PrintingPaperSpec.VerifonePaper56mm private val VERIFONE_FEED_STRING = FeedString("

") private val VERIFONE_FONT_SIZE = FontSize(20) private val VERIFONE_QR_CODE_SIZE = QrCodeSize(420) diff --git a/print-plugins/verifone/src/test/java/de/tillhub/printengine/verifone/VerifonePrintControllerTest.kt b/print-plugins/verifone/src/test/java/de/tillhub/printengine/verifone/VerifonePrintControllerTest.kt index c9906f4..86d5159 100644 --- a/print-plugins/verifone/src/test/java/de/tillhub/printengine/verifone/VerifonePrintControllerTest.kt +++ b/print-plugins/verifone/src/test/java/de/tillhub/printengine/verifone/VerifonePrintControllerTest.kt @@ -1,6 +1,7 @@ package de.tillhub.printengine.verifone import android.graphics.Bitmap +import android.os.RemoteException import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asImageBitmap import com.verifone.peripherals.DirectPrintManager @@ -14,7 +15,9 @@ import de.tillhub.printengine.data.PrinterState import de.tillhub.printengine.data.PrintingFontType import de.tillhub.printengine.data.PrintingPaperSpec import de.tillhub.printengine.data.RawPrinterData +import de.tillhub.printengine.data.normalizeForPrintHead import de.tillhub.printengine.html.HtmlUtils +import io.kotest.assertions.throwables.shouldThrow import io.kotest.core.spec.style.DescribeSpec import io.kotest.extensions.robolectric.RobolectricTest import io.kotest.matchers.shouldBe @@ -33,6 +36,10 @@ internal class VerifonePrintControllerTest : lateinit var androidBitmap: Bitmap lateinit var bitmap: ImageBitmap + + // What printImage inlines: normalised for the print head. Barcodes and QR codes are + // generated for this printer already, so they are inlined unchanged. + lateinit var normalizedBitmap: ImageBitmap lateinit var printManager: DirectPrintManager lateinit var printerState: MutableStateFlow lateinit var barcodeEncoder: BarcodeEncoder @@ -41,6 +48,9 @@ internal class VerifonePrintControllerTest : beforeSpec { androidBitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888) bitmap = androidBitmap.asImageBitmap() + normalizedBitmap = bitmap.normalizeForPrintHead( + PrintingPaperSpec.VerifonePaper56mm.printHeadWidthPx, + ) } beforeTest { @@ -169,7 +179,7 @@ internal class VerifonePrintControllerTest : } it("printImage") { - val payload = HtmlUtils.transformToHtml(HtmlUtils.generateImageHtml(bitmap)) + val payload = HtmlUtils.transformToHtml(HtmlUtils.generateImageHtml(normalizedBitmap)) printerController.printImage(bitmap) printerController.start() @@ -209,7 +219,7 @@ internal class VerifonePrintControllerTest : 20, ), ) - append(HtmlUtils.generateImageHtml(bitmap)) + append(HtmlUtils.generateImageHtml(normalizedBitmap)) appendLine(HtmlUtils.monospaceText("end line", 20)) append("

") }.toString(), @@ -248,7 +258,7 @@ internal class VerifonePrintControllerTest : 20, ), ) - append(HtmlUtils.generateImageHtml(bitmap)) + append(HtmlUtils.generateImageHtml(normalizedBitmap)) appendLine(HtmlUtils.monospaceText("end line", 20)) append("

") }.toString(), @@ -267,4 +277,18 @@ internal class VerifonePrintControllerTest : printManager.printString(any(), payload, Printer.PRINTER_FULL_CUT) } } + + it("a transport failure is reflected in the state and propagates out of start") { + // The print listener never sees a transaction that failed on the way out, so without + // this the caller would get a Success for a receipt that was never printed. + every { printManager.printString(any(), any(), any()) } throws RemoteException() + + printerController.printText("text_to_print") + + shouldThrow { + printerController.start() + } + + printerState.value shouldBe PrinterState.Error.ConnectionLost + } }) From f857c696f4c63be8cf7b211d8b7266a6e2285884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90or=C4=91e=20Hrnjez?= Date: Wed, 19 Aug 2026 10:34:59 +0200 Subject: [PATCH 4/4] Print a header and footer image in the sample app Gives the header/footer image path something to exercise on a real device: apex.png as the header, photoshoppng.png as the footer. The latter is 2000x1400 at 233 KB, close to the image size that triggered UNTIL-21656, so it covers the downscale path rather than only the dither. The print job moves out of the companion object, since decoding a drawable needs resources. The drawables sit in drawable-nodpi so they are decoded at their authored pixel size instead of being density scaled for the screen. Co-Authored-By: Claude Opus 5 (1M context) --- .../printengine/sample/MainActivity.kt | 137 ++++++++++-------- .../androidMain/res/drawable-nodpi/apex.png | Bin 0 -> 8594 bytes .../res/drawable-nodpi/photoshoppng.png | Bin 0 -> 233291 bytes 3 files changed, 78 insertions(+), 59 deletions(-) create mode 100644 sample/src/androidMain/res/drawable-nodpi/apex.png create mode 100644 sample/src/androidMain/res/drawable-nodpi/photoshoppng.png diff --git a/sample/src/androidMain/kotlin/de/tillhub/printengine/sample/MainActivity.kt b/sample/src/androidMain/kotlin/de/tillhub/printengine/sample/MainActivity.kt index 78c7fb5..1190939 100644 --- a/sample/src/androidMain/kotlin/de/tillhub/printengine/sample/MainActivity.kt +++ b/sample/src/androidMain/kotlin/de/tillhub/printengine/sample/MainActivity.kt @@ -2,6 +2,7 @@ package de.tillhub.printengine.sample import android.Manifest import android.content.pm.PackageManager +import android.graphics.BitmapFactory import android.os.Build import android.os.Bundle import android.widget.Toast @@ -9,6 +10,7 @@ import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts +import androidx.annotation.DrawableRes import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface @@ -16,6 +18,8 @@ import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateListOf import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.asImageBitmap import androidx.lifecycle.lifecycleScope import de.tillhub.printengine.PrintEngine import de.tillhub.printengine.data.DiscoveryState @@ -39,6 +43,32 @@ class MainActivity : ComponentActivity() { } private val printers = mutableStateListOf() + private val printJob: PrintJob by lazy { + PrintJob( + listOf( + // A branch header image, printed before anything else. + PrintCommand.Image(decodeDrawable(R.drawable.apex)), + PrintCommand.Text(RECEIPT_TEXT), + PrintCommand.Text("This is a another line"), + PrintCommand.Text("-------"), + PrintCommand.Text("Barcode working:"), + PrintCommand.Barcode("RTC6093739"), + PrintCommand.Text("Barcode broken:"), + PrintCommand.Barcode("RTB183648B"), + PrintCommand.Text("Barcode more broken:"), + PrintCommand.Barcode("RTABCDEFAB"), + PrintCommand.Text("QR code:"), + PrintCommand.QrCode("123ABC"), + PrintCommand.Text("40 char line:"), + PrintCommand.Text("1234567890123456789012345678901234567890"), + // A branch footer image, printed last before the paper is fed and cut. + PrintCommand.Image(decodeDrawable(R.drawable.photoshoppng)), + PrintCommand.FeedPaper, + PrintCommand.CutPaper, + ), + ) + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -170,69 +200,58 @@ class MainActivity : ComponentActivity() { } } + /** + * The drawables live in `drawable-nodpi`, so they are decoded at their authored pixel size + * rather than being density scaled for the screen - a print head has its own resolution and + * scaling for the display would only distort it. + */ + private fun decodeDrawable( + @DrawableRes resId: Int, + ): ImageBitmap = BitmapFactory.decodeResource(resources, resId).asImageBitmap() + private fun showToast(message: String) { Toast.makeText(this, message, Toast.LENGTH_LONG).show() } companion object { - private val printJob = - PrintJob( - listOf( - PrintCommand.Text( - " receipt-header \n" + - "------------------------------------------\n" + - "Receipt: 1\n" + - "Salesperson: staff name\n" + - "Date and Time: 20.5.2020 20:00\n" + - "Branch: 1\n" + - "Register: 123\n" + - "------------------------------------------\n" + - "Customer number: 654321\n" + - "------------------------------------------\n" + - " receipt-note \n" + - "------------------------------------------\n" + - "0011 \n" + - "multiline long product item name for \n" + - "receipt att-desc \n" + - "- addon_name \n" + - " 10.00 € 1 10.00 €\n" + - " note \n" + - "voucher-code \n" + - " \n" + - "------------------------------------------\n" + - "Tips 3.00 €\n" + - " \n" + - "******************************************\n" + - "Total (gross): 10.00 €\n" + - "******************************************\n" + - "Given: \n" + - "Cash 10.00 €\n" + - "- including tip: 3.00 €\n" + - "------------------------------------------\n" + - "Change: 10.00 €\n" + - "------------------------------------------\n" + - "Vat \n" + - " 19 % 1.00 €\n" + - "------------------------------------------\n" + - "Net: 10.00 €\n" + - "------------------------------------------\n" + - " receipt-footer \n", - ), - PrintCommand.Text("This is a another line"), - PrintCommand.Text("-------"), - PrintCommand.Text("Barcode working:"), - PrintCommand.Barcode("RTC6093739"), - PrintCommand.Text("Barcode broken:"), - PrintCommand.Barcode("RTB183648B"), - PrintCommand.Text("Barcode more broken:"), - PrintCommand.Barcode("RTABCDEFAB"), - PrintCommand.Text("QR code:"), - PrintCommand.QrCode("123ABC"), - PrintCommand.Text("40 char line:"), - PrintCommand.Text("1234567890123456789012345678901234567890"), - PrintCommand.FeedPaper, - PrintCommand.CutPaper, - ), - ) + private const val RECEIPT_TEXT = + " receipt-header \n" + + "------------------------------------------\n" + + "Receipt: 1\n" + + "Salesperson: staff name\n" + + "Date and Time: 20.5.2020 20:00\n" + + "Branch: 1\n" + + "Register: 123\n" + + "------------------------------------------\n" + + "Customer number: 654321\n" + + "------------------------------------------\n" + + " receipt-note \n" + + "------------------------------------------\n" + + "0011 \n" + + "multiline long product item name for \n" + + "receipt att-desc \n" + + "- addon_name \n" + + " 10.00 € 1 10.00 €\n" + + " note \n" + + "voucher-code \n" + + " \n" + + "------------------------------------------\n" + + "Tips 3.00 €\n" + + " \n" + + "******************************************\n" + + "Total (gross): 10.00 €\n" + + "******************************************\n" + + "Given: \n" + + "Cash 10.00 €\n" + + "- including tip: 3.00 €\n" + + "------------------------------------------\n" + + "Change: 10.00 €\n" + + "------------------------------------------\n" + + "Vat \n" + + " 19 % 1.00 €\n" + + "------------------------------------------\n" + + "Net: 10.00 €\n" + + "------------------------------------------\n" + + " receipt-footer \n" } } diff --git a/sample/src/androidMain/res/drawable-nodpi/apex.png b/sample/src/androidMain/res/drawable-nodpi/apex.png new file mode 100644 index 0000000000000000000000000000000000000000..b7b8feca8c978aac116970990f49457db63a64dc GIT binary patch literal 8594 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