Updated the digital document signing system to use INCHES as the standard unit for annotations and signatures, aligning with GdPicture14's native format. Previously used DevExpress units (1/100 inch) and other formats have been replaced.
- Updated `AnnotationDto` to reflect the new coordinate system.
- Introduced `SignatureDto` for signature positions, deprecating `AnnotationDto`.
- Added conversion formulas for transforming coordinates between INCHES and other systems (DevExpress, PDF Points, PDF.js, etc.).
- Added a unit comparison table and A4 page dimensions in various units.
- Introduced a new read-only PDF.js viewer for envelopes (`/envelope/{EnvelopeKey}`).
These changes improve consistency, simplify conversions, and align with modern tools like PSPDFKit and iText7.
33 lines
1.3 KiB
C#
33 lines
1.3 KiB
C#
namespace EnvelopeGenerator.ReceiverUI.Models;
|
|
|
|
/// <summary>
|
|
/// Represents a pre-assigned signature annotation position on a specific page.
|
|
/// <br/><br/>
|
|
/// <b>Coordinate unit (X, Y):</b> Inches (GdPicture14 native unit),
|
|
/// origin at the <b>top-left</b> corner of the page, both axes increase downward/rightward.
|
|
/// <br/><br/>
|
|
/// <b>Conversion to DevExpress:</b> Multiply by 100 (DX uses 1/100 inch).
|
|
/// Convert: <c>xDX = xInches * 100.0</c>
|
|
/// <br/>
|
|
/// <b>Conversion to PDF Points:</b> Multiply by 72 (1 inch = 72 points).
|
|
/// Convert: <c>xPt = xInches * 72.0</c>
|
|
/// <br/>
|
|
/// <b>Y-axis for PDF (bottom-left origin):</b> Flip required for iText7.
|
|
/// Convert: <c>yPt = (pageHeightInches - yInches - elemHeightInches) * 72.0</c>
|
|
/// </summary>
|
|
[Obsolete("Use SignatureDto with SignatureService.")]
|
|
public record AnnotationDto
|
|
{
|
|
/// <summary>Unique identifier of the annotation.</summary>
|
|
public long Id { get; init; }
|
|
|
|
/// <summary>1-based page number within the document.</summary>
|
|
public int Page { get; init; }
|
|
|
|
/// <summary>Horizontal position in INCHES from the left edge of the page.</summary>
|
|
public double X { get; init; }
|
|
|
|
/// <summary>Vertical position in INCHES from the top edge of the page.</summary>
|
|
public double Y { get; init; }
|
|
}
|