namespace PrintService.Models; /// /// Configuration for document types /// public class DocumentConfig { /// /// Name/identifier of the document type /// public string Name { get; set; } = string.Empty; /// /// Printer name to send to /// public string PrinterName { get; set; } = string.Empty; /// /// Sequence of tray numbers to use (1-based, e.g., [3, 4, 1, 2]) /// These will be mapped to physical PaperSource indexes /// public int[] TraySequence { get; set; } = Array.Empty(); /// /// Font name to use for rendering /// public string FontName { get; set; } = "Courier New"; /// /// Font size in points /// public float FontSize { get; set; } = 10f; /// /// Vertical offset adjustment (in pixels) /// public int VerticalOffset { get; set; } = 0; /// /// Horizontal offset adjustment (in pixels) /// public int HorizontalOffset { get; set; } = 0; /// /// Text transformation rules (regex patterns to remove/replace) /// public List Transformations { get; set; } = new(); /// /// Whether to archive files after printing (true) or delete them (false) /// public bool ArchiveAfterPrint { get; set; } = true; /// /// Archive folder path (if ArchiveAfterPrint is true) /// public string? ArchivePath { get; set; } /// /// Output folder for PDF files (when using "Microsoft Print to PDF") /// If specified, PDFs will be saved to this folder automatically /// public string? OutputPath { get; set; } /// /// Skip post-processing (archive/delete) to leave files in queue for repeated testing /// Useful for development and testing scenarios /// public bool SkipPostProcessing { get; set; } = false; } /// /// Text transformation rule /// public class TextTransform { /// /// Regex pattern to match /// public string Pattern { get; set; } = string.Empty; /// /// Replacement text (empty string to remove) /// public string Replacement { get; set; } = string.Empty; /// /// Description of what this transformation does /// public string Description { get; set; } = string.Empty; }