zplCore.comzplCore.com

33Platforms, writing systems & databases

Platforms

Tested on macOS, Windows 11, Debian (mcr.microsoft.com/dotnet/sdk:10.0), Ubuntu 24.04 chiseled (aspnet & runtime-deps:10.0-noble-chiseled-extra), Azure Linux 3.0 (sdk, runtime, runtime-distroless), on a Synology DS923+ NAS (linux-x64, Container Manager, JIT & NativeAOT) and on the Raspberry Pi (linux-arm 32-bit & linux-arm64). No native packages required: SkiaSharp NativeAssets.Linux.NoDependencies, HarfBuzzSharp and PDFium ship their own libraries, and the fonts are embedded. Minimal images have no system fonts – supply characters outside the embedded fonts (CJK, emoji) via RegisterFont/~DY/~DU (build/LINUX.md, build/Dockerfile.test.azurelinux).

Databases

Binding and print jobs are tested with SQLite (EF Core) and LiteDB in the unit tests, and in tests/ZplCore.IntegrationTests via Testcontainers against SQL Server 2022 (EF Core), PostgreSQL (Npgsql EF Core) and MongoDB (MongoDB.Driver and MongoDB.EntityFrameworkCore). Without Docker these tests are skipped.

Writing systems of the world

WorldScriptTests renders Arabic, Chinese, Hindi (Devanagari), Korean, Japanese and Russian with downloaded Noto TTFs – once as a TTF in printer memory (~DU + ^A@), once as a graphic in the label model (PrintAsGraphic, so the printer needs no font). On Linux containers without system fonts this proves that the loaded font, including HarfBuzz shaping, is really used. Examples in samples/fonts:

Arabic: TTF in printer memory (~DU + ^A@)
Arabic
Chinese: TTF in printer memory (~DU + ^A@)
Chinese
Hindi: TTF in printer memory (~DU + ^A@)
Hindi
Korean: TTF in printer memory (~DU + ^A@)
Korean
Japanese: TTF in printer memory (~DU + ^A@)
Japanese
Russian: TTF in printer memory (~DU + ^A@)
Russian