- Refactored BurnPdfCommandHandler to use new extension methods for cleaner annotation handling. - Introduced ITextStyle interface to generalize font styling for text annotations. - Updated PDFBurnerParams to implement ITextStyle for consistent font settings reuse. - Added MathematExtensions for coordinate and unit conversion (ToInches, ToPointF). - Added GdPictureExtensions to encapsulate annotation-related logic (form fields, images, ink). - Improved readability and maintainability by removing redundant helper methods.
73 lines
1.6 KiB
C#
73 lines
1.6 KiB
C#
using EnvelopeGenerator.Application.Common.Interfaces.Model;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Drawing;
|
|
|
|
namespace EnvelopeGenerator.Application.Common.Configurations;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public class PDFBurnerParams : ITextStyle
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public IEnumerable<string> IgnoredLabels { get; set; } = new List<string>
|
|
{
|
|
"Date", "Datum", "ZIP", "PLZ", "Place", "Ort", "Position", "Stellung"
|
|
};
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
|
|
public double TopMargin { get; set; } = 0.1;
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public double YOffset { get; set; } = -0.3;
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public string FontName { get; set; } = "Arial";
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int FontSize { get; set; } = 8;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
[SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "<Pending>")]
|
|
public FontStyle FontStyle { get; set; } = FontStyle.Italic;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public Dictionary<string, int> IndexOfAnnot { get; init; } = new()
|
|
{
|
|
{ string.Empty, 0 },
|
|
{ "seal", 0 },
|
|
{ "position", 1 },
|
|
{ "city", 2 },
|
|
{ "date", 3 }
|
|
};
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int DefaultIndexOfAnnot { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <returns></returns>
|
|
public int GetAnnotationIndex(string name) => IndexOfAnnot.TryGetValue(name, out var value) ? value : DefaultIndexOfAnnot;
|
|
} |