mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-22 16:18:08 +02:00
Append the contents of FileAttachment
annotations to the attachments view of the sidebar, for easier access to the embedded files
Other PDF viewers, e.g. Adobe Reader, seem to append `FileAttachment`s to their attachments views. One obvious difference in PDF.js is that we cannot append all the annotations on document load, since that would require parsing *every* page. Despite that, it still seems like a good idea to add `FileAttachment`s, since it's thus possible to access all the various types of attachments from a single place. *Note:* With the previous patch we display a notification when a `FileAttachment` is added to the sidebar, which thus makes appending the contents of these annotations to the sidebar slightly more visible/useful.
This commit is contained in:
parent
616e5fadff
commit
c102232275
6 changed files with 91 additions and 12 deletions
|
@ -29,6 +29,7 @@
|
|||
|
||||
var AnnotationBorderStyleType = sharedUtil.AnnotationBorderStyleType;
|
||||
var AnnotationType = sharedUtil.AnnotationType;
|
||||
var stringToPDFString = sharedUtil.stringToPDFString;
|
||||
var Util = sharedUtil.Util;
|
||||
var addLinkAttributes = displayDOMUtils.addLinkAttributes;
|
||||
var LinkTarget = displayDOMUtils.LinkTarget;
|
||||
|
@ -1007,8 +1008,15 @@ var FileAttachmentAnnotationElement = (
|
|||
function FileAttachmentAnnotationElement(parameters) {
|
||||
AnnotationElement.call(this, parameters, true);
|
||||
|
||||
this.filename = getFilenameFromUrl(parameters.data.file.filename);
|
||||
this.content = parameters.data.file.content;
|
||||
var file = this.data.file;
|
||||
this.filename = getFilenameFromUrl(file.filename);
|
||||
this.content = file.content;
|
||||
|
||||
this.linkService.onFileAttachmentAnnotation({
|
||||
id: stringToPDFString(file.filename),
|
||||
filename: file.filename,
|
||||
content: file.content,
|
||||
});
|
||||
}
|
||||
|
||||
Util.inherit(FileAttachmentAnnotationElement, AnnotationElement, {
|
||||
|
@ -1086,8 +1094,7 @@ var AnnotationLayer = (function AnnotationLayerClosure() {
|
|||
if (!data) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var properties = {
|
||||
var element = annotationElementFactory.create({
|
||||
data: data,
|
||||
layer: parameters.div,
|
||||
page: parameters.page,
|
||||
|
@ -1097,8 +1104,7 @@ var AnnotationLayer = (function AnnotationLayerClosure() {
|
|||
imageResourcesPath: parameters.imageResourcesPath ||
|
||||
getDefaultSetting('imageResourcesPath'),
|
||||
renderInteractiveForms: parameters.renderInteractiveForms || false,
|
||||
};
|
||||
var element = annotationElementFactory.create(properties);
|
||||
});
|
||||
if (element.isRenderable) {
|
||||
parameters.div.appendChild(element.render());
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
exports.renderTextLayer = displayTextLayer.renderTextLayer;
|
||||
exports.AnnotationLayer = displayAnnotationLayer.AnnotationLayer;
|
||||
exports.CustomStyle = displayDOMUtils.CustomStyle;
|
||||
exports.createPromiseCapability = sharedUtil.createPromiseCapability;
|
||||
exports.PasswordResponses = sharedUtil.PasswordResponses;
|
||||
exports.InvalidPDFException = sharedUtil.InvalidPDFException;
|
||||
exports.MissingPDFException = sharedUtil.MissingPDFException;
|
||||
|
|
|
@ -55,6 +55,8 @@
|
|||
exports.AnnotationLayer =
|
||||
pdfjsLibs.pdfjsDisplayAnnotationLayer.AnnotationLayer;
|
||||
exports.CustomStyle = pdfjsLibs.pdfjsDisplayDOMUtils.CustomStyle;
|
||||
exports.createPromiseCapability =
|
||||
pdfjsLibs.pdfjsSharedUtil.createPromiseCapability;
|
||||
exports.PasswordResponses = pdfjsLibs.pdfjsSharedUtil.PasswordResponses;
|
||||
exports.InvalidPDFException = pdfjsLibs.pdfjsSharedUtil.InvalidPDFException;
|
||||
exports.MissingPDFException = pdfjsLibs.pdfjsSharedUtil.MissingPDFException;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue