From 30d63b0c502e0b55590bc4bd4fb12c7fa5a7a5d9 Mon Sep 17 00:00:00 2001 From: Tim van der Meij Date: Sun, 2 Apr 2017 20:31:21 +0200 Subject: [PATCH 1/2] Annotations: move container border removal to the display layer The display layer is responsible for creating the HTML elements for the annotations from the core layer. If we need to ignore border styling for the containers of certain elements, the display layer should do so and not the core layer. I noticed this during the implementation of line annotations, for which we actually need the original border width in the display layer, even though we ignore it for the container. If we set the border style to zero in the core layer, this becomes impossible. To prevent this, this patch moves the container border removal code from the core layer to the display layer. This makes the core layer output the unchanged annotation data and lets the display layer remove any border styling if necessary. --- src/core/annotation.js | 12 ------------ src/display/annotation_layer.js | 26 ++++++++++++++------------ 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/src/core/annotation.js b/src/core/annotation.js index 20b7b7aa9..0ca76bf6a 100644 --- a/src/core/annotation.js +++ b/src/core/annotation.js @@ -989,9 +989,6 @@ var HighlightAnnotation = (function HighlightAnnotationClosure() { this.data.annotationType = AnnotationType.HIGHLIGHT; this._preparePopup(parameters.dict); - - // PDF viewers completely ignore any border styles. - this.data.borderStyle.setWidth(0); } Util.inherit(HighlightAnnotation, Annotation, {}); @@ -1005,9 +1002,6 @@ var UnderlineAnnotation = (function UnderlineAnnotationClosure() { this.data.annotationType = AnnotationType.UNDERLINE; this._preparePopup(parameters.dict); - - // PDF viewers completely ignore any border styles. - this.data.borderStyle.setWidth(0); } Util.inherit(UnderlineAnnotation, Annotation, {}); @@ -1021,9 +1015,6 @@ var SquigglyAnnotation = (function SquigglyAnnotationClosure() { this.data.annotationType = AnnotationType.SQUIGGLY; this._preparePopup(parameters.dict); - - // PDF viewers completely ignore any border styles. - this.data.borderStyle.setWidth(0); } Util.inherit(SquigglyAnnotation, Annotation, {}); @@ -1037,9 +1028,6 @@ var StrikeOutAnnotation = (function StrikeOutAnnotationClosure() { this.data.annotationType = AnnotationType.STRIKEOUT; this._preparePopup(parameters.dict); - - // PDF viewers completely ignore any border styles. - this.data.borderStyle.setWidth(0); } Util.inherit(StrikeOutAnnotation, Annotation, {}); diff --git a/src/display/annotation_layer.js b/src/display/annotation_layer.js index fded967d5..65fd7cacd 100644 --- a/src/display/annotation_layer.js +++ b/src/display/annotation_layer.js @@ -119,7 +119,7 @@ AnnotationElementFactory.prototype = * @alias AnnotationElement */ var AnnotationElement = (function AnnotationElementClosure() { - function AnnotationElement(parameters, isRenderable) { + function AnnotationElement(parameters, isRenderable, ignoreBorder) { this.isRenderable = isRenderable || false; this.data = parameters.data; this.layer = parameters.layer; @@ -131,7 +131,7 @@ var AnnotationElement = (function AnnotationElementClosure() { this.renderInteractiveForms = parameters.renderInteractiveForms; if (isRenderable) { - this.container = this._createContainer(); + this.container = this._createContainer(ignoreBorder); } } @@ -140,10 +140,12 @@ var AnnotationElement = (function AnnotationElementClosure() { * Create an empty container for the annotation's HTML element. * * @private + * @param {boolean} ignoreBorder * @memberof AnnotationElement * @returns {HTMLSectionElement} */ - _createContainer: function AnnotationElement_createContainer() { + _createContainer: + function AnnotationElement_createContainer(ignoreBorder) { var data = this.data, page = this.page, viewport = this.viewport; var container = document.createElement('section'); var width = data.rect[2] - data.rect[0]; @@ -165,7 +167,7 @@ var AnnotationElement = (function AnnotationElementClosure() { CustomStyle.setProp('transformOrigin', container, -rect[0] + 'px ' + -rect[1] + 'px'); - if (data.borderStyle.width > 0) { + if (!ignoreBorder && data.borderStyle.width > 0) { container.style.borderWidth = data.borderStyle.width + 'px'; if (data.borderStyle.style !== AnnotationBorderStyleType.UNDERLINE) { // Underline styles only have a bottom border, so we do not need @@ -873,7 +875,8 @@ var HighlightAnnotationElement = ( function HighlightAnnotationElement(parameters) { var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - AnnotationElement.call(this, parameters, isRenderable); + AnnotationElement.call(this, parameters, isRenderable, + /* ignoreBorder = */ true); } Util.inherit(HighlightAnnotationElement, AnnotationElement, { @@ -890,7 +893,6 @@ var HighlightAnnotationElement = ( if (!this.data.hasPopup) { this._createPopup(this.container, null, this.data); } - return this.container; } }); @@ -907,7 +909,8 @@ var UnderlineAnnotationElement = ( function UnderlineAnnotationElement(parameters) { var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - AnnotationElement.call(this, parameters, isRenderable); + AnnotationElement.call(this, parameters, isRenderable, + /* ignoreBorder = */ true); } Util.inherit(UnderlineAnnotationElement, AnnotationElement, { @@ -924,7 +927,6 @@ var UnderlineAnnotationElement = ( if (!this.data.hasPopup) { this._createPopup(this.container, null, this.data); } - return this.container; } }); @@ -940,7 +942,8 @@ var SquigglyAnnotationElement = (function SquigglyAnnotationElementClosure() { function SquigglyAnnotationElement(parameters) { var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - AnnotationElement.call(this, parameters, isRenderable); + AnnotationElement.call(this, parameters, isRenderable, + /* ignoreBorder = */ true); } Util.inherit(SquigglyAnnotationElement, AnnotationElement, { @@ -957,7 +960,6 @@ var SquigglyAnnotationElement = (function SquigglyAnnotationElementClosure() { if (!this.data.hasPopup) { this._createPopup(this.container, null, this.data); } - return this.container; } }); @@ -974,7 +976,8 @@ var StrikeOutAnnotationElement = ( function StrikeOutAnnotationElement(parameters) { var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - AnnotationElement.call(this, parameters, isRenderable); + AnnotationElement.call(this, parameters, isRenderable, + /* ignoreBorder = */ true); } Util.inherit(StrikeOutAnnotationElement, AnnotationElement, { @@ -991,7 +994,6 @@ var StrikeOutAnnotationElement = ( if (!this.data.hasPopup) { this._createPopup(this.container, null, this.data); } - return this.container; } }); From e15a2ec5234b1324cb82bcb69196528e2ad53d22 Mon Sep 17 00:00:00 2001 From: Tim van der Meij Date: Sun, 2 Apr 2017 20:50:17 +0200 Subject: [PATCH 2/2] Annotations: implement support for line annotations This patch implements support for line annotations. Other viewers only show the popup annotation when hovering over the line, which may have any orientation. To make this possible, we render an invisible line (SVG element) over the line on the canvas that acts as the trigger for the popup annotation. This invisible line has the same starting coordinates, ending coordinates and width of the line on the canvas. --- src/core/annotation.js | 21 +++++++++ src/display/annotation_layer.js | 74 +++++++++++++++++++++++++++++++ test/pdfs/.gitignore | 1 + test/pdfs/annotation-line.pdf | Bin 0 -> 84943 bytes test/test_manifest.json | 7 +++ test/unit/annotation_spec.js | 21 +++++++++ web/annotation_layer_builder.css | 1 + 7 files changed, 125 insertions(+) create mode 100755 test/pdfs/annotation-line.pdf diff --git a/src/core/annotation.js b/src/core/annotation.js index 0ca76bf6a..a0fefdfc3 100644 --- a/src/core/annotation.js +++ b/src/core/annotation.js @@ -115,6 +115,9 @@ AnnotationFactory.prototype = /** @lends AnnotationFactory.prototype */ { case 'Popup': return new PopupAnnotation(parameters); + case 'Line': + return new LineAnnotation(parameters); + case 'Highlight': return new HighlightAnnotation(parameters); @@ -955,6 +958,8 @@ var PopupAnnotation = (function PopupAnnotationClosure() { return; } + var parentSubtype = parentItem.get('Subtype'); + this.data.parentType = isName(parentSubtype) ? parentSubtype.name : null; this.data.parentId = dict.getRaw('Parent').toString(); this.data.title = stringToPDFString(parentItem.get('T') || ''); this.data.contents = stringToPDFString(parentItem.get('Contents') || ''); @@ -983,6 +988,22 @@ var PopupAnnotation = (function PopupAnnotationClosure() { return PopupAnnotation; })(); +var LineAnnotation = (function LineAnnotationClosure() { + function LineAnnotation(parameters) { + Annotation.call(this, parameters); + + this.data.annotationType = AnnotationType.LINE; + + var dict = parameters.dict; + this.data.lineCoordinates = Util.normalizeRect(dict.getArray('L')); + this._preparePopup(dict); + } + + Util.inherit(LineAnnotation, Annotation, {}); + + return LineAnnotation; +})(); + var HighlightAnnotation = (function HighlightAnnotationClosure() { function HighlightAnnotation(parameters) { Annotation.call(this, parameters); diff --git a/src/display/annotation_layer.js b/src/display/annotation_layer.js index 65fd7cacd..e807d7275 100644 --- a/src/display/annotation_layer.js +++ b/src/display/annotation_layer.js @@ -93,6 +93,9 @@ AnnotationElementFactory.prototype = case AnnotationType.POPUP: return new PopupAnnotationElement(parameters); + case AnnotationType.LINE: + return new LineAnnotationElement(parameters); + case AnnotationType.HIGHLIGHT: return new HighlightAnnotationElement(parameters); @@ -681,6 +684,10 @@ var ChoiceWidgetAnnotationElement = ( * @alias PopupAnnotationElement */ var PopupAnnotationElement = (function PopupAnnotationElementClosure() { + // Do not render popup annotations for parent elements with these types as + // they create the popups themselves (because of custom trigger divs). + var IGNORE_TYPES = ['Line']; + function PopupAnnotationElement(parameters) { var isRenderable = !!(parameters.data.title || parameters.data.contents); AnnotationElement.call(this, parameters, isRenderable); @@ -697,6 +704,10 @@ var PopupAnnotationElement = (function PopupAnnotationElementClosure() { render: function PopupAnnotationElement_render() { this.container.className = 'popupAnnotation'; + if (IGNORE_TYPES.indexOf(this.data.parentType) >= 0) { + return this.container; + } + var selector = '[data-annotation-id="' + this.data.parentId + '"]'; var parentElement = this.layer.querySelector(selector); if (!parentElement) { @@ -866,6 +877,69 @@ var PopupElement = (function PopupElementClosure() { return PopupElement; })(); +/** + * @class + * @alias LineAnnotationElement + */ +var LineAnnotationElement = (function LineAnnotationElementClosure() { + var SVG_NS = 'http://www.w3.org/2000/svg'; + + function LineAnnotationElement(parameters) { + var isRenderable = !!(parameters.data.hasPopup || + parameters.data.title || parameters.data.contents); + AnnotationElement.call(this, parameters, isRenderable, + /* ignoreBorder = */ true); + } + + Util.inherit(LineAnnotationElement, AnnotationElement, { + /** + * Render the line annotation's HTML element in the empty container. + * + * @public + * @memberof LineAnnotationElement + * @returns {HTMLSectionElement} + */ + render: function LineAnnotationElement_render() { + this.container.className = 'lineAnnotation'; + + // Create an invisible line with the same starting and ending coordinates + // that acts as the trigger for the popup. Only the line itself should + // trigger the popup, not the entire container. + var data = this.data; + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + + var svg = document.createElementNS(SVG_NS, 'svg:svg'); + svg.setAttributeNS(null, 'version', '1.1'); + svg.setAttributeNS(null, 'width', width + 'px'); + svg.setAttributeNS(null, 'height', height + 'px'); + svg.setAttributeNS(null, 'preserveAspectRatio', 'none'); + svg.setAttributeNS(null, 'viewBox', '0 0 ' + width + ' ' + height); + + // PDF coordinates are calculated from a bottom left origin, so transform + // the line coordinates to a top left origin for the SVG element. + var line = document.createElementNS(SVG_NS, 'svg:line'); + line.setAttributeNS(null, 'x1', data.rect[2] - data.lineCoordinates[0]); + line.setAttributeNS(null, 'y1', data.rect[3] - data.lineCoordinates[1]); + line.setAttributeNS(null, 'x2', data.rect[2] - data.lineCoordinates[2]); + line.setAttributeNS(null, 'y2', data.rect[3] - data.lineCoordinates[3]); + line.setAttributeNS(null, 'stroke-width', data.borderStyle.width); + line.setAttributeNS(null, 'stroke', 'transparent'); + + svg.appendChild(line); + this.container.append(svg); + + // Create the popup ourselves so that we can bind it to the line instead + // of to the entire container (which is the default). + this._createPopup(this.container, line, this.data); + + return this.container; + } + }); + + return LineAnnotationElement; +})(); + /** * @class * @alias HighlightAnnotationElement diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 0f7eabc30..35aef99f1 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -268,6 +268,7 @@ !annotation-strikeout.pdf !annotation-squiggly.pdf !annotation-highlight.pdf +!annotation-line.pdf !annotation-fileattachment.pdf !annotation-text-widget.pdf !annotation-choice-widget.pdf diff --git a/test/pdfs/annotation-line.pdf b/test/pdfs/annotation-line.pdf new file mode 100755 index 0000000000000000000000000000000000000000..2a81992e723586c97abd7301121b00e40cbf2b1e GIT binary patch literal 84943 zcmcGzWpG`~5-ujNB#W7uwZ+V2F*7qWGg_8~Tg=R0F*7qWvn*|)#mo?&bKlK-NhMWD zRkEt9X1b^6`?`C&=Ep2bB{2yG7Df(4ILiEnp%p|p77}I>M-v-FIDUR6HE$<#CQ)NI zV>?GnCM9D_b5|19zso8lOmfB!mNX7_3<`1pCRH~VcT+bt7jttJM@Kgj?*Dkm8@t#_ zJ6JgWh52V{ZbtIg&0J8B>6@vGqlBZ2{oe%%YjZm@S6zLxOI zOYdUt;PzjB6?0cdcNbH0*MCqP9o+sISV%bjrT)vI zAR_-6ME^5L|K(+pH#f637IE~_{kxT!goB5Jk&Tsvo1KM`hgF|R^e^&XQdbi8e}S1K zT^!w={!;y0mwy!|RVFnTV+U8Kf1)$>W)f9p5;OO(HZ@m~6#0v;W^Cg6*X2JI`cDR~ zB+N|T92^|oTy;rU{!=Rw)_=HFNdCt2KdbN$<$upX!rIQw+=WTP&e+Xd%-qz`%$!Ni z+`-b#iiCxQT~N@~&Bff<9udwfOLZ1mskUzJ(fz?qnYp$>)yc(K!wGKpVBV8WjhTJ6 zp;76p^xgrh8Z(%PD3mLt06ZI%D;uN$8+k~ao&h6dh#Si8^aN(rZen_BIc^0CXlUX9 zjvd?#PA)g3I42&qzS{~BilP{Z&irBZ5;faDcz$Ci2!EvzCP5*A1=oWB{e-ij94`pRx3L4kLHxwR^t5f7 z*RhqgP5onY+St5sGPz1Ard#*QXwmPV_Y?>1gnaf#AC6<2a@r~PO#4lo>!s-e#>PqD&oo{eSc!kXph$5-!gC~(^A|bfxXvD=d5en*VFlqA#rk-wduDF@Z zO9v)iFx80c&;#-^)sfek;_2;NvjmMzECZ;#Q+RQIzzJu`+n^O*G+7vA?YneS|f z2bPL&n9YAa3#XR@4sfp?dlo-N5^g2~Ao%Bb&)a_%Oi$K^cI z9Z);Yj))}x+3>Gl@`y)u!2z~ta_C^hhLz6vi|CV~Pswhu?LhotK&C!MSlhvJA zPU6aFemdN)l7IlQ6YhIn&V=M^_MEZ1H~guWsXqbWL7iyNzPKUpZlJA~_ebieJ0Vs5 zOw2O$o{?!y@u&HK-?bmQ2``3ofZR_ZvvU?hr-g`viIiq~?atEY$`JSryd$o~nM^** zhst!epWvU3Wvb=WiW%I-eoL+6b*8lA6Ec#qH_1`_rh`|;L*k-g2#m+6xhs5J)EkKh zjnvu<*A}XBjdOXi^JQ?B-Um4mc$zdVR7Df_QG}UHH#s^uHXXP&B8+LY3RUPXOIAyI zCChjDhi?luFQvaO#pE5Fqm9UKZuJg`G>@NIV=IDYN|A&e0k>cD^F=dq@~ri%Q&`CN zJPJc9Hn-Id;jZyCy-Q8hRdv1PabIk?hLU__@J()RwS1#s=f7Z{oLgHTbxFF&({xRQ zHPKC4VZ|br@fz>7>E9iOVI*0eLYRWsQZo10Hh-|Wt#%F>an=T3b3O6xTTx}1RIAE*o zt!|T&NG_^bK*4oz+lCe%utwCcpUNS|YN+oweQ5mYd8W?2-)_=6Z_>Ow>`{~<@hKi55$w; zS-2w1B>+Qsl~=s`wo5mrjc>rS)rAN;^E%0>imIya>@pq`0N;8WRe=l>Y$%m?P|hrW z%?QJAdhUvYS>1&-NAYR}CiewDW)o5Bkoug)#@rHbP1V+stu3I&8ZXp;?y#)V@m3Bo z%E>Ay7ftI@i!LX-x7=%~aqd{gxNt+@t>DCixX0=ws#g%+v^w$^R6m@ijI9LBMuRfe z>QVo5jW(t+rbN6mFzVPEj#Z+n+cY<}PNPb#1h>&oAI36cipD-`$(_cmVK&I63FaB4 zchUX0bdcKi)QByiD%s{SW|6aCkWA*nG~(-$7-_Kw6~S2~@CMg^u3KxUvbVS&BlJLU zG5XNXlb*{}lJ6y}Af3<4*0*t{PVv-QrpSWM22S@B7GHv~-2L?HOd;@9ak^KCyp}H| zKj0jlLn1O*-O8~auiszgq8$6wQNOmVii$=7IVGwo!jTA+6Hi~{C1Eo7vZ@qSV(d1$ zkIQgI*>51?(N&9Id*jVIGJzH5pc@SX!{Q0&c;qRdm z?pn4@MDqPng@qhAa6Ut#knlg(zc&T1YR%Nf38ub8jbkFyer=}og0=}me(;f-w)i%O zgP(~<5(%lzPcNmwI%u-*PK2?v)M^ziH)QZ@f^7I(3UtdB8VJ&*mUNCO^50z_8*=~YJlONms2?9r7xw&zuJT3 zuPgiJ0MJ$UX2Q;+S*qHR8`0~TM%Nf)!xGM4Gsyh;zi9-edDFkekmncLmK@o6wgfkb zZhkj;XBiQ+Q^T_3+d|3sGd07OrD4!=;y+6W`&+! za*p%)xLD1w-d?ja(I$yZ3>X9<=Elf*IdX&!&W+hQ{p*}er!J+lylr-icIX5_?EbNN za|oW|6leCR##a)Y$v=`TUw)BI>r^I(#3-?8{Hi3|4zHLpzeczXN3OcY3B>CxLf?Rx zAg)lb%UI^sG$O*{UuCPKUwb8d9w2!9_!SYr7gZBE<^g556C0ps#OjCYVJ!m#b z6K2x^#)Ev7gV?#eL_-fM(ONLk(kfrZK2r;X5HB-}%DQ8cVYsp5yax>nL=W#|8ZM2r z!#}jLy=@F>^w$j>KNiH^s8&Jg*6qw$hej2d!A5lpT5g6ISn4GAaZU2AO~p4__JbYS zJM(2i&*(xMrH0Av(dC7E<%AgV0NDpL>f18j;*<4vkDT#M2ehUftnGAyDI zc^Ke;=_HeOjPHP7(k$u`02MV^7VQXW6}cpnpBQ_^r3ofk7|AM8$tF=4m?}xK%2eWI z7=^_+lp%@{XaETr=THptA{@pcWCl_zVAOh4EImzxO^aI3yVc@D1$?nFH$w#OG&Qyw|;^{-= zBPal9#Zqzov?1aVUI0)Lvn(oIh;#%FprDvp#yC!dNjwRI7oY~f0JLJzlX<0LWUCOQ zg3>S~i@C{$i~-$=AYDLrJjfQ%odA*rbjN{Q0fLDjRe)eTC=P>I_BtMeSmrtq<5KoI z2jf!aS`n}v4hEp+uFpZxPf*UV0HDMP6zVl0{xx5n)AM zN)a$ct%eb=MXS`}VHm!}t(pGQLgcrpYrPzhC z44`fD^aPX%=lBbB3h)Zr#9T|a?8c|aGNjpqXrwSmcoVI7<8!U>=F|!RVoPF)Kq^#u ziVR`)oYDv@y;Wt{atb_rk0{7!((G7k&MaU%z(BdJg72kNtlB3`bxKS6vJyG3l)SsNk3CVe7+=9oE zR4@1n9D&`WFT8fS&@Z%hxo|HDE`})n3U|24{xWTf;Yg_da^}RS{!+up;oHI*$ z=V4Ew!FSol#BmRlEd@9HImd7Z%JvW|zPYKzHTlJf8ep^XTC^A!ialj}4xXN5n=P=K zv^`_Iy1?MOxEp1%{x>(CIdd`HaK_?{RHf?ZW0Qi&a87i6oaUvUoFVqN!q_PG2pfk% z)6~37cDF$~1DpiIexj?KU)&hyd~CX7*0V($IqfQ7vgM~%Q2x`7R#0;;CqB3whBAw2 z%}aqPN|upjhhzm71r6a?XbgEC@?z2K_0Nl)fu%V%%cxW2<&@>58M5qQR05e2oRL;k z@;=b+ghen=;nPLC3MDYlWvSL;s=!|;>S2j~d1Jd2*TK@e6m^}{p^2P7se%)4zU`IC zV9vEVp@AR_q}%GmOh>g)6?n1Lh!oZlXyK{t!IEDjD4Te>>{VQ|uuH|KqdP~vyL*-b zwyQNhp+9{-+d7tC~5m3YSx?PYjo2aU4~@tE0XyKU2R88SO7-Lano$KL4{09i-~83A>R7E>q_9{ zcR0%;IeHx~Dj%-s`U~I>QuY2*q}EO0E_!lMX4Cl&)d6aF9IFUd^d>zxPf}EM19m3~ zzSC;eQ?4aft`BY|P|H=!wiZQs^%~h%Pn#(^h<8ShY-Dj3zp3K?9#p#kWjVu3aTH7w zIk;++BD-AEF)2sg(yg*Ps)xnPm%-su&mde!itwlomDKo1NChZ|KU+>BG`fD*R(h2j zP)c~xG-T+pp1?|BX{SwM;Xu)7ah$;+tb}WVJHNGVm$eF|{dSpkK$q$Z+3hT0Az<`A zS-wux+-al?+Vl4F)9geeK8jipYzHlRH7rzy$1*l#5IDMIU<3fI6Qo&QKrG^hn?Ld~ z1=$1#≫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 bO)X;|y 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%0D2VuB`D3j$#I!TnWMGDPEsfay5vOC`-;iLm7m@3g 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 literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index bf7aee0bd..ac3f4ac95 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -3357,6 +3357,13 @@ "type": "eq", "annotations": true }, + { "id": "annotation-line", + "file": "pdfs/annotation-line.pdf", + "md5": "fde60608be2748f10fb6522cba425ca1", + "rounds": 1, + "type": "eq", + "annotations": true + }, { "id": "annotation-fileattachment", "file": "pdfs/annotation-fileattachment.pdf", "md5": "d20ecee4b53c81b2dd44c8715a1b4a83", diff --git a/test/unit/annotation_spec.js b/test/unit/annotation_spec.js index 9693b4e58..7b7af73b4 100644 --- a/test/unit/annotation_spec.js +++ b/test/unit/annotation_spec.js @@ -1287,6 +1287,27 @@ describe('annotation', function() { }); }); + describe('LineAnnotation', function() { + it('should set the line coordinates', function() { + var lineDict = new Dict(); + lineDict.set('Type', Name.get('Annot')); + lineDict.set('Subtype', Name.get('Line')); + lineDict.set('L', [1, 2, 3, 4]); + + var lineRef = new Ref(122, 0); + var xref = new XRefMock([ + { ref: lineRef, data: lineDict, } + ]); + + var annotation = annotationFactory.create(xref, lineRef, pdfManagerMock, + idFactoryMock); + var data = annotation.data; + expect(data.annotationType).toEqual(AnnotationType.LINE); + + expect(data.lineCoordinates).toEqual([1, 2, 3, 4]); + }); + }); + describe('FileAttachmentAnnotation', function() { it('should correctly parse a file attachment', function() { var fileStream = new StringStream( diff --git a/web/annotation_layer_builder.css b/web/annotation_layer_builder.css index 982f66134..234d3d70e 100644 --- a/web/annotation_layer_builder.css +++ b/web/annotation_layer_builder.css @@ -143,6 +143,7 @@ .annotationLayer .underlineAnnotation, .annotationLayer .squigglyAnnotation, .annotationLayer .strikeoutAnnotation, +.annotationLayer .lineAnnotation svg line, .annotationLayer .fileAttachmentAnnotation { cursor: pointer; }