Getrennte Datumsauswahl, Postleitzahl und Stadtfelder hinzugefügt.

This commit is contained in:
Developer 02 2024-07-05 01:37:11 +02:00
parent 7e325a7eb6
commit 6238d66ca2
2 changed files with 90 additions and 9 deletions

View File

@ -3,11 +3,15 @@
const signatures = [] const signatures = []
for(var element of document.elements){ for(var element of document.elements){
const [annotation, formField, annotation2, formFieldDate] = await Annotation.createSignature(element) const [annotation, formField, annotation_date, formFieldDate, annotation_postcode, formFieldPostcode, annotation_city, formFieldCity] = await Annotation.createSignature(element)
signatures.push(annotation) signatures.push(annotation)
signatures.push(formField) signatures.push(formField)
signatures.push(annotation2) signatures.push(annotation_date)
signatures.push(formFieldDate) signatures.push(formFieldDate)
signatures.push(annotation_postcode)
signatures.push(formFieldPostcode)
signatures.push(annotation_city)
signatures.push(formFieldCity)
} }
return [...signatures ] return [...signatures ]
@ -42,7 +46,6 @@
}) })
//date //date
var city = await getCity();
const id_date = PSPDFKit.generateInstantId() const id_date = PSPDFKit.generateInstantId()
const annotation_date = new PSPDFKit.Annotations.WidgetAnnotation({ const annotation_date = new PSPDFKit.Annotations.WidgetAnnotation({
id: id_date, id: id_date,
@ -51,21 +54,74 @@
backgroundColor: PSPDFKit.Color.DarkBlue, backgroundColor: PSPDFKit.Color.DarkBlue,
blendMode: 'multiply', blendMode: 'multiply',
boundingBox: new PSPDFKit.Geometry.Rect({ boundingBox: new PSPDFKit.Geometry.Rect({
width: width * 1.5, width: width * 0.75,
height: height / 2, height: height / 2,
top: top + height + 25, top: top + height + 25,
left: left - width * .25, left: left - width * .25,
}), }),
fontSize:8 fontSize:8,
additionalActions: {
onFormat: new PSPDFKit.Actions.JavaScriptAction({
script: `AFDate_FormatEx("dd/mm/yyyy")`,
}),
}
}) })
const formFieldDate = new PSPDFKit.FormFields.TextFormField({ const formFieldDate = new PSPDFKit.FormFields.TextFormField({
name: id_date, name: id_date,
annotationIds: PSPDFKit.Immutable.List([annotation_date.id]), annotationIds: PSPDFKit.Immutable.List([annotation_date.id]),
value: getLocaleDateString() + ", " + city value: locale_date_dd_mm_yyyy()
}) })
return [annotation, formField, annotation_date, formFieldDate] //post_code
var location = await getLocation();
const id_postcode = PSPDFKit.generateInstantId()
const annotation_postcode = new PSPDFKit.Annotations.WidgetAnnotation({
id: id_postcode,
pageIndex: page,
formFieldName: id_postcode,
backgroundColor: PSPDFKit.Color.DarkBlue,
blendMode: 'multiply',
boundingBox: new PSPDFKit.Geometry.Rect({
width: width * 0.45,
height: height / 2,
top: top + height + 25,
left: left - width * .25 + width * 0.80,
}),
fontSize:8
})
const formFieldPostcode = new PSPDFKit.FormFields.TextFormField({
name: id_postcode,
annotationIds: PSPDFKit.Immutable.List([annotation_postcode.id]),
value: location.postalCode
})
//city
var location = await getLocation();
const id_city = PSPDFKit.generateInstantId()
const annotation_city = new PSPDFKit.Annotations.WidgetAnnotation({
id: id_city,
pageIndex: page,
formFieldName: id_city,
backgroundColor: PSPDFKit.Color.DarkBlue,
blendMode: 'multiply',
boundingBox: new PSPDFKit.Geometry.Rect({
width: width * 0.75,
height: height / 2,
top: top + height + 25,
left: left - width * .25 + width * 1.30,
}),
fontSize:8
})
const formFieldCity = new PSPDFKit.FormFields.TextFormField({
name: id_city,
annotationIds: PSPDFKit.Immutable.List([annotation_city.id]),
value: location.city
})
return [annotation, formField, annotation_date, formFieldDate, annotation_postcode, formFieldPostcode, annotation_city, formFieldCity]
} }
static createTextBox(element) { static createTextBox(element) {

View File

@ -29,4 +29,29 @@ async function getCity() {
} }
} }
const getLocaleDateString = _ => new Date().toLocaleDateString('de-DE') async function getLocation() {
try {
const coords = await getCoordinates();
const response = await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${coords.latitude}&lon=${coords.longitude}`);
const data = await response.json();
if (data && data.address) {
const city = data.address.city || data.address.town || data.address.village || data.address.hamlet;
const postalCode = data.address.postcode;
return { postalCode: postalCode, city: city };
}
} catch {
return { postalCode: '', city: '' };
}
}
const getLocaleDateString = _ => new Date().toLocaleDateString('de-DE')
function locale_date_dd_mm_yyyy() {
const today = new Date();
const day = String(today.getDate()).padStart(2, '0');
const month = String(today.getMonth() + 1).padStart(2, '0');
const year = String(today.getFullYear()).slice(-4);
console.log(`${day}/${month}/${year}`)
return `${day}/${month}/${year}`;
}