Add support for "GoToE" actions with destinations (issue 17056)

This shouldn't be very common in practice, since "GoToE" actions themselves seem quite uncommon; see PR 15537.
This commit is contained in:
Jonas Jenwald 2023-10-03 08:01:55 +02:00
parent da4fdc76a3
commit bf9c33e60f
7 changed files with 62 additions and 19 deletions

View file

@ -709,7 +709,7 @@ class LinkAnnotationElement extends AnnotationElement {
this._bindNamedAction(link, data.action);
isBound = true;
} else if (data.attachment) {
this._bindAttachment(link, data.attachment);
this.#bindAttachment(link, data.attachment, data.attachmentDest);
isBound = true;
} else if (data.setOCGState) {
this.#bindSetOCGState(link, data.setOCGState);
@ -793,14 +793,16 @@ class LinkAnnotationElement extends AnnotationElement {
* Bind attachments to the link element.
* @param {Object} link
* @param {Object} attachment
* @param {str} [dest]
*/
_bindAttachment(link, attachment) {
#bindAttachment(link, attachment, dest = null) {
link.href = this.linkService.getAnchorUrl("");
link.onclick = () => {
this.downloadManager?.openOrDownloadData(
this.container,
attachment.content,
attachment.filename
attachment.filename,
dest
);
return false;
};