Interceptor Beispiel: Signaturen speichern

Hier ein kleines Beispiel zum speichern und laden der Signaturen in den LocalStore des Browsers.

Über diesen Weg können mit Hilfe der DMS API die Signaturen auch aus dem System geladen und gespeichert werden falls dies gewünscht ist.

var signatureInterceptor = {
    // Beim starten der Editor Instanz
    initEditorConfiguration(instance) {
        const { documentViewer } = instance.Core;

        // Signatur Tool holen
        const signatureTool = documentViewer.getTool('AnnotationCreateSignature');

        // Methode zum speichern der Signaturen definieren
        const saveSignature = async () => {
            const signatures = await signatureTool.exportSignatures();
            window.localStorage.setItem("signatures", JSON.stringify(signatures));
        };

        // Immer speichern wenn eine Signatur erstellt oder gelöscht wird
        signatureTool.on("signatureSaved", saveSignature);
        signatureTool.on("signatureDeleted", saveSignature);
    },

    // Beim laden jedes Dokuments
    async updateEditorConfiguration(instance, info, config) {
        const { documentViewer } = instance.Core;

        // Signatur Tool holen
        const signatureTool = documentViewer.getTool('AnnotationCreateSignature');

        // Holen der aktuellen Signaturen
        const existingSignatures = await signatureTool.exportSignatures();
        
        // Nur die gespeicherten Signaturen laden, wenn aktuell keine vorhanden sind
        if(existingSignatures.length == 0){
            // Laden der Signaturen aus dem LocalStore
            const signatures = window.localStorage.getItem("signatures");
            // Falls Signaturen gespeichert wurden
            if (signatures) {
                // Import der Signaturen in embedded documents
                const result = await signatureTool.importSignatures(JSON.parse(signatures));
            }
        }
    }
}

// Registrierung des Interceptors
window.ed.registerInterceptor(signatureInterceptor);

Weitere Details zu den Interceptors kann im Wiki unter Interceptor-Aufbau finden.

1 Like