45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
namespace PrintService.Models;
|
|
|
|
/// <summary>
|
|
/// Root configuration loaded from printer-config.json
|
|
/// </summary>
|
|
public class PrinterConfiguration
|
|
{
|
|
public Dictionary<string, DocumentTypeConfig> DocumentTypes { get; set; } = new();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Configuration for a single document type (replaces DocumentConfig for printer/tray mapping)
|
|
/// </summary>
|
|
public class DocumentTypeConfig
|
|
{
|
|
public string Name { get; set; } = string.Empty;
|
|
public List<PageConfig> Pages { get; set; } = new();
|
|
|
|
// Rendering settings
|
|
public string FontName { get; set; } = "Courier New";
|
|
public float FontSize { get; set; } = 10f;
|
|
public int HorizontalOffset { get; set; } = 0;
|
|
public int VerticalOffset { get; set; } = 0;
|
|
|
|
// Post-processing settings
|
|
public bool ArchiveAfterPrint { get; set; } = true;
|
|
public string? ArchivePath { get; set; }
|
|
public string? OutputPath { get; set; }
|
|
public bool SkipPostProcessing { get; set; } = false;
|
|
|
|
// Text transformation rules
|
|
public List<TextTransform> Transformations { get; set; } = new();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Configuration for a single page (printer and tray assignment)
|
|
/// </summary>
|
|
public class PageConfig
|
|
{
|
|
public int PageNumber { get; set; }
|
|
public string PrinterName { get; set; } = string.Empty;
|
|
public int TrayNumber { get; set; }
|
|
public string? TrayLabel { get; set; }
|
|
}
|