mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-20 15:18:08 +02:00
[api-minor] Add partial support for the "GoToE" action (issue 8844)
*Please note:* The referenced issue is the only mention that I can find, in either GitHub or Bugzilla, of "GoToE" actions. Hence why I've purposely settled for a very simple, and partial, "GoToE" implementation to avoid complicating things initially.[1] In particular, this patch only supports "GoToE" actions that references the /EmbeddedFiles-dict in the PDF document. See https://web.archive.org/web/20220309040754if_/https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#G11.2048909 --- [1] Usually I always prefer having *real-world* test-cases to work with, whenever I'm implementing new features.
This commit is contained in:
parent
8c59cc72a3
commit
ce66fefbff
8 changed files with 97 additions and 3 deletions
|
@ -636,6 +636,7 @@ const PDFViewerApplication = {
|
|||
container: appConfig.sidebar.outlineView,
|
||||
eventBus,
|
||||
linkService: pdfLinkService,
|
||||
downloadManager,
|
||||
});
|
||||
|
||||
this.pdfAttachmentViewer = new PDFAttachmentViewer({
|
||||
|
|
|
@ -20,8 +20,9 @@ import { SidebarView } from "./ui_utils.js";
|
|||
/**
|
||||
* @typedef {Object} PDFOutlineViewerOptions
|
||||
* @property {HTMLDivElement} container - The viewer element.
|
||||
* @property {IPDFLinkService} linkService - The navigation/linking service.
|
||||
* @property {EventBus} eventBus - The application event bus.
|
||||
* @property {IPDFLinkService} linkService - The navigation/linking service.
|
||||
* @property {DownloadManager} downloadManager - The download manager.
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -37,6 +38,7 @@ class PDFOutlineViewer extends BaseTreeViewer {
|
|||
constructor(options) {
|
||||
super(options);
|
||||
this.linkService = options.linkService;
|
||||
this.downloadManager = options.downloadManager;
|
||||
|
||||
this.eventBus._on("toggleoutlinetree", this._toggleAllTreeItems.bind(this));
|
||||
this.eventBus._on(
|
||||
|
@ -109,7 +111,10 @@ class PDFOutlineViewer extends BaseTreeViewer {
|
|||
/**
|
||||
* @private
|
||||
*/
|
||||
_bindLink(element, { url, newWindow, action, dest, setOCGState }) {
|
||||
_bindLink(
|
||||
element,
|
||||
{ url, newWindow, action, attachment, dest, setOCGState }
|
||||
) {
|
||||
const { linkService } = this;
|
||||
|
||||
if (url) {
|
||||
|
@ -124,6 +129,18 @@ class PDFOutlineViewer extends BaseTreeViewer {
|
|||
};
|
||||
return;
|
||||
}
|
||||
if (attachment) {
|
||||
element.href = linkService.getAnchorUrl("");
|
||||
element.onclick = () => {
|
||||
this.downloadManager.openOrDownloadData(
|
||||
element,
|
||||
attachment.content,
|
||||
attachment.filename
|
||||
);
|
||||
return false;
|
||||
};
|
||||
return;
|
||||
}
|
||||
if (setOCGState) {
|
||||
element.href = linkService.getAnchorUrl("");
|
||||
element.onclick = () => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue