zplCore.comzplCore.com

ScanProofSymbol

public record ScanProofSymbol

Scan-proof result for one barcode symbol on one label.

Constructors

SignatureDescription
# ScanProofSymbol()

Properties

PropertyTypeDescription
BarHeightDots { get; init; }double?Bar height (linear) or symbol height (2D) in dots and millimetres.
BarHeightMm { get; init; }double?
ClippedPixels { get; init; }intPixels of this symbol that lie outside the label (cut off by ^PW/^LL).
Column { get; init; }int
Columns { get; init; }int?
required Command { get; init; }stringZPL command, e.g. "^BC".
DecodedData { get; init; }stringData read back from the rendered bitmap (first decoder that read it), null when not decoded.
Decoders { get; init; }IReadOnlyList<ScanProofDecoderResult>
ExpectedData { get; init; }stringData the symbol must carry, derived from the field data with the symbology rules of the ZPL command (check digits added, invocation codes resolved, start/stop characters …); GS1 data in raw form with GS separators. Null when it cannot be derived.
ExpectedGs1 { get; init; }boolThe expected data is GS1 data (FNC1 in first position).
FieldData { get; init; }stringField data after ^FH, ^FN/field values, ^SN/^SF and clock substitution (what the renderer received).
Findings { get; init; }IReadOnlyList<ScanProofFinding>
Grade { get; init; }ScanProofGrade?Overall digital grade (lowest of the graded parameters); null when the symbol could not be graded.
GradeValue { get; init; }double?Numeric grade 0.0–4.0 (average of the scan-line grades for linear symbols, capped by the geometric parameters).
GreyPixels { get; init; }intGrey (anti-aliased) pixels inside the symbol area.
Height { get; init; }int
HumanReadable { get; init; }stringInterpretation line printed by the barcode command (null: none).
HumanReadableMatches { get; init; }bool?The interpretation line agrees with the decoded data (null: no line or nothing to compare).
Index { get; init; }int0-based index of the symbol on its label.
IntegerModules { get; init; }bool?Every bar and space is a whole multiple of X (two-width codes: narrow and wide are whole dots).
IsDataProblem { get; }boolData is wrong or unreadable: ScanProofDataStatus.Mismatch, ScanProofDataStatus.DataAltered, ScanProofDataStatus.NotDecoded or ScanProofDataStatus.NotRendered.
Kind { get; init; }ScanProofSymbolKind
LabelIndex { get; init; }int0-based label index (^PQ copies and formats in order).
Line { get; init; }int
MaxBarGainDots { get; init; }int?Largest simulated bar gain/loss (whole dots per edge pair) at which the symbol still decodes (heuristic; null when not run).
MaxBarLossDots { get; init; }int?
OverlapPixels { get; init; }intPixels inside the symbol or its quiet zone where the label differs from the symbol's own ink (other fields drawn over or into it).
Parameters { get; init; }IReadOnlyList<ScanProofParameter>
QuietZones { get; init; }ScanProofQuietZones
Robustness { get; init; }IReadOnlyList<ScanProofRobustnessCheck>
Rotation { get; init; }intRotation of the field: 0, 90, 180 or 270 degrees clockwise (^B…N/R/I/B).
Rows { get; init; }int?Rows × columns of modules for 2D symbols.
SourceLength { get; init; }int
SourceOffset { get; init; }intField block in the ZPL source (offset/length, 1-based line/column; -1/0 when unknown).
Status { get; init; }ScanProofDataStatus
SymbolBounds { get; init; }ScanProofRectThe symbol itself on the label (bars or modules without interpretation line and quiet zones), in dots; for stand-alone barcodes in bitmap pixels. Null when nothing was drawn.
SymbolWidthDots { get; init; }double?Symbol width (bars or modules, without quiet zones) in dots.
required Symbology { get; init; }stringSymbology name, e.g. "Code 128", "GS1-128", "QR Code".
WideToNarrowRatio { get; init; }double?Realised wide:narrow ratio of two-width symbologies.
Width { get; init; }int
X { get; init; }intLogical field box on the label in dots (as ZplRenderedElement).
XDimensionDots { get; init; }double?Narrow module width (X) measured on the bitmap, in dots and millimetres (null: not measurable).
XDimensionMm { get; init; }double?
Y { get; init; }int