Add default icons for FileAttachment annotations (bug 1230933)
*Please note:* This "borrows" the icons from Thunderbird. According to the PDF specification, see https://web.archive.org/web/20220309040754if_/https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#G11.2096626, we should be providing default icons for FileAttachment annotations without appearances.
This commit is contained in:
parent
4f1b6f345b
commit
aa5b678f94
@ -4274,10 +4274,15 @@ class FileAttachmentAnnotation extends MarkupAnnotation {
|
||||
constructor(params) {
|
||||
super(params);
|
||||
|
||||
const file = new FileSpec(params.dict.get("FS"), params.xref);
|
||||
const { dict, xref } = params;
|
||||
const file = new FileSpec(dict.get("FS"), xref);
|
||||
|
||||
this.data.annotationType = AnnotationType.FILEATTACHMENT;
|
||||
this.data.file = file.serializable;
|
||||
|
||||
const name = dict.get("Name");
|
||||
this.data.name =
|
||||
name instanceof Name ? stringToPDFString(name.name) : "PushPin";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2509,7 +2509,20 @@ class FileAttachmentAnnotationElement extends AnnotationElement {
|
||||
render() {
|
||||
this.container.className = "fileAttachmentAnnotation";
|
||||
|
||||
const trigger = document.createElement("div");
|
||||
let trigger;
|
||||
if (this.data.hasAppearance) {
|
||||
trigger = document.createElement("div");
|
||||
} else {
|
||||
// Unfortunately it seems that it's not clearly specified exactly what
|
||||
// names are actually valid, since Table 184 contains:
|
||||
// Conforming readers shall provide predefined icon appearances for at
|
||||
// least the following standard names: GraphPushPin, PaperclipTag.
|
||||
// Additional names may be supported as well. Default value: PushPin.
|
||||
trigger = document.createElement("img");
|
||||
trigger.src = `${this.imageResourcesPath}annotation-${
|
||||
/paperclip/i.test(this.data.name) ? "paperclip" : "pushpin"
|
||||
}.svg`;
|
||||
}
|
||||
trigger.className = "popupTriggerArea";
|
||||
trigger.addEventListener("dblclick", this._download.bind(this));
|
||||
|
||||
|
1
test/pdfs/bug1230933.pdf.link
Normal file
1
test/pdfs/bug1230933.pdf.link
Normal file
@ -0,0 +1 @@
|
||||
https://bugzilla.mozilla.org/attachment.cgi?id=8696459
|
@ -6064,6 +6064,14 @@
|
||||
"type": "eq",
|
||||
"annotations": true
|
||||
},
|
||||
{ "id": "bug1230933",
|
||||
"file": "pdfs/bug1230933.pdf",
|
||||
"md5": "d8e7dce9ce79aa5a6121b21be8935429",
|
||||
"link": true,
|
||||
"rounds": 1,
|
||||
"type": "eq",
|
||||
"annotations": true
|
||||
},
|
||||
{ "id": "issue14117",
|
||||
"file": "pdfs/issue14117.pdf",
|
||||
"md5": "9b1c33ad2f59f4e723c258e863149abf",
|
||||
|
6
web/images/annotation-paperclip.svg
Normal file
6
web/images/annotation-paperclip.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="40" width="40">
|
||||
<path d="M9 3.5a1.5 1.5 0 0 0-3-.001v7.95C6 12.83 7.12 14 8.5 14s2.5-1.17 2.5-2.55V5.5a.5.5 0 0 1 1 0v6.03C11.955 13.427 10.405 15 8.5 15S5.044 13.426 5 11.53V3.5a2.5 2.5 0 0 1 5 0v7.003a1.5 1.5 0 0 1-3-.003v-5a.5.5 0 0 1 1 0v5a.5.5 0 0 0 1 0Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 552 B |
7
web/images/annotation-pushpin.svg
Normal file
7
web/images/annotation-pushpin.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="40" width="40">
|
||||
<path d="M8.156 12.5a.99.99 0 0 0 .707-.294l.523-2.574L10.5 8.499l1.058-1.04 2.65-.601a.996.996 0 0 0 0-1.414l-3.657-3.658a.996.996 0 0 0-1.414 0l-.523 2.576L7.5 5.499 6.442 6.535l-2.65.6a.996.996 0 0 0 0 1.413l3.657 3.658a.999.999 0 0 0 .707.295z"/>
|
||||
<path d="M9.842.996c-.386 0-.77.146-1.06.44a.5.5 0 0 0-.136.251l-.492 2.43-1.008 1.03-.953.933-2.511.566a.5.5 0 0 0-.243.133 1.505 1.505 0 0 0-.002 2.123l1.477 1.477-2.768 2.767a.5.5 0 0 0 0 .707.5.5 0 0 0 .708 0l2.767-2.767 1.475 1.474a1.494 1.494 0 0 0 2.123-.002.5.5 0 0 0 .135-.254l.492-2.427 1.008-1.024.953-.937 2.511-.57a.5.5 0 0 0 .243-.132c.586-.58.583-1.543.002-2.125l-3.659-3.656A1.501 1.501 0 0 0 9.842.996Zm.05 1.025a.394.394 0 0 1 .305.12l3.658 3.657c.18.18.141.432.002.627l-2.41.545a.5.5 0 0 0-.24.131L10.15 8.142a.5.5 0 0 0-.007.006L9.029 9.283a.5.5 0 0 0-.133.25l-.48 2.36c-.082.053-.165.109-.26.109a.492.492 0 0 1-.353-.149L4.145 8.195c-.18-.18-.141-.432-.002-.627l2.41-.545a.5.5 0 0 0 .238-.13L7.85 5.857a.5.5 0 0 0 .007-.008l1.114-1.138a.5.5 0 0 0 .133-.25l.472-2.323a.619.619 0 0 1 .317-.117Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
Loading…
Reference in New Issue
Block a user