Can you reproduce using one of our samples or online demos? no
Are you using the WebViewer server? no
Does the issue only happen on certain browsers? chrome
Is your issue related to a front-end framework? we’re using angular 14, but this issue looks like it’s related to your code
Is your issue related to annotations? signature modal + signature annotation
Please give a brief summary of your issue:
After a user is singing a document the signature modal (on a pre-defined template) - the signature is out of place + sometimes takes over the entire page
Please describe your issue and provide steps to reproduce it:
we are using this code to get the signature after the modal closes:
onAnnotationEvent(
‘annotationChanged’(…) => {
…some mapping logic - finding if there is a new signature
if (action === ‘add’ && newSignatures.length) {
here we’re getting the parent annotation, a logic that worked in v7 and stopped working in v8 because of this issue, once we moved from .annot to getAssociatedSignatureAnnotation() - we saw that whenever this issue is happening we couldn’t get the AssociatedSignatureAnnotation at all (returned null) and this looks like the heart of this issue from your end,
I found that even setting it manually and connecting the elements didn’t help here…
}
})
or like a bigger signature + out of place when drawing
this is a recording of the issue of the signature getting bigger - the correct behavior is that the signature should be smaller and inside the sign rectangle :
Do you have any assumptions what can cause this? any direction will be extremely helpful!
Did this issue happen directly as a result of the upgrade from 7.x to 8.x?
Is so, you will have to update namespace adjustments and some reference may no longer be supported:
Can you also provide a sample code of how you are creating the signature field and how you are capturing the newly created signatures? (also how you are calling the ‘getAssociatedSignatureAnnotation’)
It would be even better if you can provide a minimal sample runnable project that show your issue.
On a side note, minified references to the object are not reliable. i.e. in your first screenshot ba.g0 is not a function error, you will need to use the correct Object references that you can find in the our API documentation (PDFTron WebViewer Index).
Hi Kim, thanks for the response,
One important note - for free hand annotations (the video), this issue is happening occasionally, for types signatures it’s consistant (the types signature that takes over the page)
yes - I’ve finished upgrading by the migration docs + I’ve looked at all of the changes log for the 8.0+ versions and made necessary changes by them as well.
so here inside the annotation changed event
if (action === ‘add’ && newSignatures.length) {
…for each signature…
const parentAnnotation = this.store
.getElementsByType(ANNOTATIONS_SIGNATURE)
.map((element) => element.annotation)
.find((annotation) => annotation. getAssociatedSignatureAnnotation() === sigAnnotation);
// here I’ve made sure the element reference is kept - our store contains the correct elements, this code used to work in v7 (with ‘annot’ instead of getAssociatedSignatureAnnotation that is a change for v8, with annot now it doesn’t work either)
this is the code that puts the signature in the pdf after the modal closed - the first one is for the free hand tool - the enlarged and out of place signature - both of them used to work perfectly
// save vector signature drawing XML
if (sigAnnotation instanceof api.freeHandAnnotation) {
api
.exportAnnotations({
annotList: [sigAnnotation as any],
})
.then((xfdf) => {
parentElement.signatureXML = xfdf;
});
}
— this code is for typing the signature and this is what takes over the entire page
// for typed signatures need to extract base64 image data
parentAnnotation.signatureImage = [
sigAnnotation.canvas?.toDataURL(),
api.signatureTool.annot?.canvas?.toDataURL(),
].find((v) => v && isString(v));
if (
!parentAnnotation.signatureImage &&
isFunction(sigAnnotation.getImageData)
) {
sigAnnotation.getImageData().then((imageData) => {
parentAnnotation.signatureImage = imageData;
});
}
I just tested on 8.7 and the getAssociatedSignatureAnnotation works as expected.
If you create a signature annotation and the widget, are you able to access it using the annotationManager using the iframe?
Hi, I’m just informing you that the issue was caused by a canvas run over that happened somewhere in out code. - this is what caused the big signature issue that is mentioned here.
In version 7.3 it was necessary due to other issues we had but in version 8.7 it made a new issue as you can see here.
about the other issue, we found a solution - a workaroud for it too - in this topic - https://community.apryse.com/t/users-cant-sign-in-inksignature-after-they-are-filling-their-initials
Thanks for the quick response!