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.
.NET 10.0
- Google.Protobuf (>= 3.35.1)
- Grpc.Net.ClientFactory (>= 2.83.0)
- Henara.Scan.Contracts (>= 0.4.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.12)
| 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 |