feat(Hintergrund): Locate add, um die Position des Hintergrunds anhand anderer Anmerkungen zu berechnen.
- Standort des Hintergrunds zu Anmerkungen hinzugefügt
This commit is contained in:
parent
e72ea534e5
commit
d75da655d2
@ -64,7 +64,10 @@ public class AnnotationParams
|
|||||||
var dict = _annots.ToDictionary(a => a.Name.ToLower(), a => a as IAnnotation);
|
var dict = _annots.ToDictionary(a => a.Name.ToLower(), a => a as IAnnotation);
|
||||||
|
|
||||||
if (Background is not null)
|
if (Background is not null)
|
||||||
|
{
|
||||||
|
Background.Locate(_annots);
|
||||||
dict.Add(Background.Name.ToLower(), Background);
|
dict.Add(Background.Name.ToLower(), Background);
|
||||||
|
}
|
||||||
|
|
||||||
return dict;
|
return dict;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,4 +20,29 @@ public record Background : IAnnotation
|
|||||||
public double Left { get; set; }
|
public double Left { get; set; }
|
||||||
|
|
||||||
public double Top { get; set; }
|
public double Top { get; set; }
|
||||||
|
|
||||||
|
public void Locate(IEnumerable<IAnnotation> annotations)
|
||||||
|
{
|
||||||
|
// set Top
|
||||||
|
if (annotations.MinBy(a => a.Top)?.Top is double minTop)
|
||||||
|
Top = minTop;
|
||||||
|
|
||||||
|
// set Left
|
||||||
|
if (annotations.MinBy(a => a.Left)?.Left is double minLeft)
|
||||||
|
Left = minLeft;
|
||||||
|
|
||||||
|
// set Width
|
||||||
|
if(annotations.MaxBy(a => a.GetRight())?.GetRight() is double maxRight)
|
||||||
|
Width = maxRight - Left;
|
||||||
|
|
||||||
|
// set Height
|
||||||
|
if (annotations.MaxBy(a => a.GetBottom())?.GetBottom() is double maxBottom)
|
||||||
|
Height = maxBottom - Top;
|
||||||
|
|
||||||
|
// add margins
|
||||||
|
Top -= Margin;
|
||||||
|
Left -= Margin;
|
||||||
|
Width += Margin * 2;
|
||||||
|
Height += Margin * 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
8
EnvelopeGenerator.Web/Models/Annotation/Extensions.cs
Normal file
8
EnvelopeGenerator.Web/Models/Annotation/Extensions.cs
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
namespace EnvelopeGenerator.Web.Models.Annotation;
|
||||||
|
|
||||||
|
public static class Extensions
|
||||||
|
{
|
||||||
|
public static double GetRight(this IAnnotation annotation) => annotation.Left + annotation?.Width ?? 0;
|
||||||
|
|
||||||
|
public static double GetBottom(this IAnnotation annotation) => annotation.Top + annotation?.Height ?? 0;
|
||||||
|
}
|
||||||
@ -7,23 +7,28 @@ async function createAnnotations(document, instance) {
|
|||||||
const page = element.page - 1
|
const page = element.page - 1
|
||||||
|
|
||||||
//background
|
//background
|
||||||
const id_background = PSPDFKit.generateInstantId()
|
if(annotParams.background){
|
||||||
|
const id_background = PSPDFKit.generateInstantId();
|
||||||
const annotation_background = new PSPDFKit.Annotations.WidgetAnnotation({
|
const annotation_background = new PSPDFKit.Annotations.WidgetAnnotation({
|
||||||
id: id_background,
|
id: id_background,
|
||||||
pageIndex: page,
|
pageIndex: page,
|
||||||
formFieldName: id_background,
|
formFieldName: id_background,
|
||||||
backgroundColor: PSPDFKit.Color.WHITE,
|
backgroundColor: PSPDFKit.Color.WHITE,
|
||||||
blendMode: 'normal',
|
blendMode: 'normal',
|
||||||
//boundingBox: new PSPDFKit.Geometry.Rect({width: 152, height: 180, left: 186.09992, top: 648.8533600000001}),
|
boundingBox: new PSPDFKit.Geometry.Rect(annotParams.background),
|
||||||
fontSize: 8,
|
fontSize: 8,
|
||||||
})
|
});
|
||||||
|
|
||||||
const formFieldBackground = new PSPDFKit.FormFields.ButtonFormField({
|
const formFieldBackground = new PSPDFKit.FormFields.ButtonFormField({
|
||||||
name: id_background,
|
name: id_background,
|
||||||
annotationIds: PSPDFKit.Immutable.List([annotation_background.id]),
|
annotationIds: PSPDFKit.Immutable.List([annotation_background.id]),
|
||||||
value: "",
|
value: "",
|
||||||
readOnly: false
|
readOnly: false
|
||||||
})
|
});
|
||||||
|
|
||||||
|
signatures.push(annotation_background)
|
||||||
|
signatures.push(formFieldBackground)
|
||||||
|
}
|
||||||
|
|
||||||
//signatures
|
//signatures
|
||||||
const id = PSPDFKit.generateInstantId()
|
const id = PSPDFKit.generateInstantId()
|
||||||
@ -175,9 +180,6 @@ async function createAnnotations(document, instance) {
|
|||||||
readOnly: true
|
readOnly: true
|
||||||
})
|
})
|
||||||
|
|
||||||
signatures.push(annotation_background)
|
|
||||||
signatures.push(formFieldBackground)
|
|
||||||
|
|
||||||
signatures.push(annotation)
|
signatures.push(annotation)
|
||||||
signatures.push(formField)
|
signatures.push(formField)
|
||||||
signatures.push(annotation_date)
|
signatures.push(annotation_date)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user