namespace Oms.Application.Labeling.Hiprint; /// /// 中间绘制指令(与具体 PDF 引擎解耦)。 /// 坐标单位:pt;页面尺寸:mm(再换算)。 /// public sealed class LabelPageIr { public float WidthMm { get; init; } = 100f; public float HeightMm { get; init; } = 150f; public List Ops { get; init; } = []; } public abstract class LabelDrawOp { public float LeftPt { get; init; } public float TopPt { get; init; } public float WidthPt { get; init; } public float HeightPt { get; init; } } public sealed class LabelTextOp : LabelDrawOp { public string Text { get; init; } = string.Empty; public float FontSizePt { get; init; } = 10f; public bool Bold { get; init; } public string? ColorHex { get; init; } public string Align { get; init; } = "left"; public bool Wrap { get; init; } } public sealed class LabelBarcodeOp : LabelDrawOp { public string Content { get; init; } = string.Empty; public bool QrCode { get; init; } } public sealed class LabelLineOp : LabelDrawOp { public bool Vertical { get; init; } public string? ColorHex { get; init; } public float ThicknessPt { get; init; } = 1f; } public sealed class LabelRectOp : LabelDrawOp { public string? BorderColorHex { get; init; } public float BorderWidthPt { get; init; } = 1f; } public sealed class LabelImageOp : LabelDrawOp { public string? Src { get; init; } }