This example shows how to prevent changing an electronically signed PDF
function getViewerOptions() {
return {
workerSrc: "/document-solutions/javascript-pdf-viewer/demos/product-bundles/build/dspdfviewer.worker.js",
supportApi: {
apiUrl: window.top.SUPPORTAPI_URL, token: window.top.SUPPORTAPI_TOKEN, webSocketUrl: false
}
};
}
function configureViewerUI(viewer) {
var documentSigned = false;
viewer.addDefaultPanels();
viewer.addAnnotationEditorPanel();
viewer.addFormEditorPanel();
viewer.onAfterOpen.register(function() {
viewer.getSignatureInfo().then(function (info) {
documentSigned = info.signed;
});
});
// Cancel edit events if the current document is electronically signed:
const onBeforeEditHandler = (args) => {
const cancel = documentSigned && args.annotation.annotationType !== 13 /* Allow editing stamps */;
if(cancel) {
args.cancel = true;
setTimeout(()=> {
viewer.showMessage("Cannot edit a signed document.", "The document was signed with an electronic digital signature.", "warn");
viewer.hideSecondToolbar();
viewer.layoutMode = 0;
viewer.editMode = 0;
viewer.repaint();
}, 200);
}
};
viewer.onBeforeAddAnnotation.register(onBeforeEditHandler);
viewer.onBeforeUpdateAnnotation.register(onBeforeEditHandler);
viewer.onBeforeRemoveAnnotation.register(onBeforeEditHandler);
}
window.onload = function() {
var viewer = new DsPdfViewer("#viewer", getViewerOptions());
configureViewerUI(viewer);
viewer.open("/document-solutions/javascript-pdf-viewer/demos/product-bundles/assets/pdf/prevent-editing-signed-pdf.pdf");
}