Henara.Scan.Client 0.11.0

Henara.Scan.Client

Setup

dotnet add package Henara.Scan.Client
builder.Services.AddScanClient(builder.Configuration);
Variable Required Default
SCAN_SERVICE_URL yes —
SCAN_API_TOKEN yes —
SCAN_DEADLINE_SECONDS no 300
SCAN_MAX_MESSAGE_BYTES no 67108864

Results

if ((await scan.Crop(image, cancellationToken)).TryGetValue(out var page, out var error) == false)
    return error;
var city = front.PatientCity.Or("unknown");

if (front.PatientBirthDate.TryGetValue(out var born))
    Use(born);

Calls

Leave IsAutocropEnabled off for images that are already cropped.

var cropped = await scan.Crop(image, cancellationToken);

var pdf = await scan.Combine([front, back], isAutocropEnabled: true, cancellationToken);

Muster 13 and Muster 56

var reading = await scan.ReadMuster13(
    new SheetsReadRequest(
        [new SheetImage(SheetSide.Front, front), new SheetImage(SheetSide.Back, back)],
        IsFieldImageRequested: true,
        new ReadOutputs(RenderTargets.Pdf | RenderTargets.Html, false, false),
        IsAutocropEnabled: true),
    cancellationToken);

ReadMuster56 takes the same request. A PDF of one or two pages goes in a single SheetImage, with IsFieldImageRequested: false.

Front page with either engine

var frontPage = await scan.ReadMuster13FrontPage(
    OcrEngine.Azure,
    new FrontPageReadRequest(front, new ReadOutputs(RenderTargets.None, false, false)),
    cancellationToken);

ReadMuster56FrontPage returns only the fields both forms share; use ReadMuster56 for the rest.

Teilnahmebestätigung

var attendance = await scan.ReadAttendanceSheet(
    new AttendanceSheetReadRequest(sheet, IsAutocropEnabled: true),
    cancellationToken);

Own schema

var schemas = await scan.ListSchemas(cancellationToken);

var custom = await scan.ReadMuster13(
    new SheetsReadRequest([new SheetImage(SheetSide.Front, front)], false, new ReadOutputs())
    {
        SchemaJson = schemaJson
    },
    cancellationToken);

var annotation = await scan.ReadImagesWithSchemaWithMistral(
    new SchemaReadRequest(schemaJson, [page1, page2]),
    cancellationToken);

Field images

var stamp = reading.Reading.FieldImages.FirstOrDefault(image => image.FieldId == "stempel-arzt");

if (stamp is { HasInk: true })
    Save(stamp.Content, stamp.ContentType);
FieldId Form Sheet
stempel-arzt Muster 13 front
stempel-leistungserbringer Muster 13 back
leistung-unterschrift-1 … -20 Muster 13 back
stempel-arzt Muster 56 back
unterschrift-versicherter Muster 56 back
stempel-kk Muster 56 back

No packages depend on Henara.Scan.Client.

Version Downloads Last updated
1.4.0 19 11/03/2026
1.3.0 2 10/31/2026
1.2.0 2 10/30/2026
1.1.0 0 10/30/2026
1.0.0 1 10/30/2026
0.14.0 7 10/16/2026
0.13.0 20 10/08/2026
0.12.0 4 10/07/2026
0.11.0 16 09/28/2026
0.10.0 5 09/06/2026
0.9.0 3 09/06/2026
0.8.0 13 09/05/2026
0.7.0 10 09/05/2026
0.6.0 33 08/29/2026
0.5.0 7 08/29/2026
0.4.0 1 08/28/2026
0.3.0 14 08/26/2026
0.2.0 1 08/26/2026