From 65ecd981fef3787335830b6869f6fb6d5b15a230 Mon Sep 17 00:00:00 2001 From: Calixte Denizet Date: Fri, 7 Aug 2020 20:46:41 +0200 Subject: [PATCH] Add support for missing appearances for hightlights, strikeout, squiggly and underline annotations. --- src/core/annotation.js | 164 +++++++++++++++++- test/pdfs/.gitignore | 5 + ...nnotation-highlight-without-appearance.pdf | Bin 0 -> 16302 bytes ...annotation-squiggly-without-appearance.pdf | Bin 0 -> 15589 bytes ...nnotation-strikeout-without-appearance.pdf | Bin 0 -> 15753 bytes ...nnotation-underline-without-appearance.pdf | Bin 0 -> 15304 bytes test/pdfs/bug1538111.pdf | 108 ++++++++++++ test/test_manifest.json | 35 ++++ 8 files changed, 306 insertions(+), 6 deletions(-) create mode 100644 test/pdfs/annotation-highlight-without-appearance.pdf create mode 100644 test/pdfs/annotation-squiggly-without-appearance.pdf create mode 100644 test/pdfs/annotation-strikeout-without-appearance.pdf create mode 100644 test/pdfs/annotation-underline-without-appearance.pdf create mode 100644 test/pdfs/bug1538111.pdf diff --git a/src/core/annotation.js b/src/core/annotation.js index 5fe3d8654..09a178e0c 100644 --- a/src/core/annotation.js +++ b/src/core/annotation.js @@ -199,8 +199,13 @@ function getQuadPoints(dict, rect) { const y = quadPoints[j + 1]; // The quadpoints should be ignored if any coordinate in the array - // lies outside the region specified by the rectangle. - if (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3]) { + // lies outside the region specified by the rectangle. The rectangle + // can be `null` for markup annotations since their rectangle may be + // incorrect (fixes bug 1538111). + if ( + rect !== null && + (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3]) + ) { return null; } quadPointsLists[i].push({ x, y }); @@ -791,6 +796,68 @@ class MarkupAnnotation extends Annotation { setCreationDate(creationDate) { this.creationDate = isString(creationDate) ? creationDate : null; } + + _setDefaultAppearance({ + xref, + extra, + strokeColor, + fillColor, + blendMode, + pointsCallback, + }) { + let minX = Number.MAX_VALUE; + let minY = Number.MAX_VALUE; + let maxX = Number.MIN_VALUE; + let maxY = Number.MIN_VALUE; + + const buffer = ["q"]; + if (extra) { + buffer.push(extra); + } + if (strokeColor) { + buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`); + } + if (fillColor) { + buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`); + } + + for (const points of this.data.quadPoints) { + const [mX, MX, mY, MY] = pointsCallback(buffer, points); + minX = Math.min(minX, mX); + maxX = Math.max(maxX, MX); + minY = Math.min(minY, mY); + maxY = Math.max(maxY, MY); + } + buffer.push("Q"); + + const formDict = new Dict(xref); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("Subtype", Name.get("Form")); + + const appearanceStream = new StringStream(buffer.join(" ")); + appearanceStream.dict = appearanceStreamDict; + formDict.set("Fm0", appearanceStream); + + const gsDict = new Dict(xref); + if (blendMode) { + gsDict.set("BM", Name.get(blendMode)); + } + + const stateDict = new Dict(xref); + stateDict.set("GS0", gsDict); + + const resources = new Dict(xref); + resources.set("ExtGState", stateDict); + resources.set("XObject", formDict); + + const appearanceDict = new Dict(xref); + appearanceDict.set("Resources", resources); + const bbox = (this.data.rect = [minX, minY, maxX, maxY]); + appearanceDict.set("BBox", bbox); + + this.appearance = new StringStream("/GS0 gs /Fm0 Do"); + this.appearance.dict = appearanceDict; + } } class WidgetAnnotation extends Annotation { @@ -1854,9 +1921,28 @@ class HighlightAnnotation extends MarkupAnnotation { this.data.annotationType = AnnotationType.HIGHLIGHT; - const quadPoints = getQuadPoints(parameters.dict, this.rectangle); + const quadPoints = getQuadPoints(parameters.dict, null); if (quadPoints) { this.data.quadPoints = quadPoints; + if (!this.appearance) { + // Default color is yellow in Acrobat Reader + const fillColor = this.color + ? Array.from(this.color).map(c => c / 255) + : [1, 1, 0]; + this._setDefaultAppearance({ + xref: parameters.xref, + fillColor, + blendMode: "Multiply", + pointsCallback: (buffer, points) => { + buffer.push(`${points[0].x} ${points[0].y} m`); + buffer.push(`${points[1].x} ${points[1].y} l`); + buffer.push(`${points[3].x} ${points[3].y} l`); + buffer.push(`${points[2].x} ${points[2].y} l`); + buffer.push("f"); + return [points[0].x, points[1].x, points[3].y, points[1].y]; + }, + }); + } } } } @@ -1867,9 +1953,26 @@ class UnderlineAnnotation extends MarkupAnnotation { this.data.annotationType = AnnotationType.UNDERLINE; - const quadPoints = getQuadPoints(parameters.dict, this.rectangle); + const quadPoints = getQuadPoints(parameters.dict, null); if (quadPoints) { this.data.quadPoints = quadPoints; + if (!this.appearance) { + // Default color is black + const strokeColor = this.color + ? Array.from(this.color).map(c => c / 255) + : [0, 0, 0]; + this._setDefaultAppearance({ + xref: parameters.xref, + extra: "[] 0 d 1 w", + strokeColor, + pointsCallback: (buffer, points) => { + buffer.push(`${points[2].x} ${points[2].y} m`); + buffer.push(`${points[3].x} ${points[3].y} l`); + buffer.push("S"); + return [points[0].x, points[1].x, points[3].y, points[1].y]; + }, + }); + } } } } @@ -1880,9 +1983,35 @@ class SquigglyAnnotation extends MarkupAnnotation { this.data.annotationType = AnnotationType.SQUIGGLY; - const quadPoints = getQuadPoints(parameters.dict, this.rectangle); + const quadPoints = getQuadPoints(parameters.dict, null); if (quadPoints) { this.data.quadPoints = quadPoints; + if (!this.appearance) { + // Default color is black + const strokeColor = this.color + ? Array.from(this.color).map(c => c / 255) + : [0, 0, 0]; + this._setDefaultAppearance({ + xref: parameters.xref, + extra: "[] 0 d 1 w", + strokeColor, + pointsCallback: (buffer, points) => { + const dy = (points[0].y - points[2].y) / 6; + let shift = dy; + let x = points[2].x; + const y = points[2].y; + const xEnd = points[3].x; + buffer.push(`${x} ${y + shift} m`); + do { + x += 2; + shift = shift === 0 ? dy : 0; + buffer.push(`${x} ${y + shift} l`); + } while (x < xEnd); + buffer.push("S"); + return [points[2].x, xEnd, y - 2 * dy, y + 2 * dy]; + }, + }); + } } } } @@ -1893,9 +2022,32 @@ class StrikeOutAnnotation extends MarkupAnnotation { this.data.annotationType = AnnotationType.STRIKEOUT; - const quadPoints = getQuadPoints(parameters.dict, this.rectangle); + const quadPoints = getQuadPoints(parameters.dict, null); if (quadPoints) { this.data.quadPoints = quadPoints; + if (!this.appearance) { + // Default color is black + const strokeColor = this.color + ? Array.from(this.color).map(c => c / 255) + : [0, 0, 0]; + this._setDefaultAppearance({ + xref: parameters.xref, + extra: "[] 0 d 1 w", + strokeColor, + pointsCallback: (buffer, points) => { + buffer.push( + `${(points[0].x + points[2].x) / 2}` + + ` ${(points[0].y + points[2].y) / 2} m` + ); + buffer.push( + `${(points[1].x + points[3].x) / 2}` + + ` ${(points[1].y + points[3].y) / 2} l` + ); + buffer.push("S"); + return [points[0].x, points[1].x, points[3].y, points[1].y]; + }, + }); + } } } } diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 3da0e6cab..3172b863a 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -113,6 +113,7 @@ !bug1245391_reduced.pdf !bug1252420.pdf !bug1513120_reduced.pdf +!bug1538111.pdf !bug1552113.pdf !issue9949.pdf !bug1308536.pdf @@ -359,10 +360,14 @@ !issue9278.pdf !annotation-text-without-popup.pdf !annotation-underline.pdf +!annotation-underline-without-appearance.pdf !issue269_2.pdf !annotation-strikeout.pdf +!annotation-strikeout-without-appearance.pdf !annotation-squiggly.pdf +!annotation-squiggly-without-appearance.pdf !annotation-highlight.pdf +!annotation-highlight-without-appearance.pdf !annotation-freetext.pdf !annotation-line.pdf !annotation-square-circle.pdf diff --git a/test/pdfs/annotation-highlight-without-appearance.pdf b/test/pdfs/annotation-highlight-without-appearance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..007493362c34bf5e38b2f08b60d5206d82564db0 GIT binary patch literal 16302 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 Rfg2wPge1VPUj&4B{|k=uTHXKv literal 0 HcmV?d00001 diff --git a/test/pdfs/annotation-squiggly-without-appearance.pdf b/test/pdfs/annotation-squiggly-without-appearance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..203efebb17d97af1d7b38cddfa3de517484205ec GIT binary patch literal 15589 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 literal 0 HcmV?d00001 diff --git a/test/pdfs/annotation-strikeout-without-appearance.pdf b/test/pdfs/annotation-strikeout-without-appearance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b8c8cab3cba979a9a2deb0d62cff8dc882136849 GIT binary patch literal 15753 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

|? z%bdZLc^5j5J@0SM?@H&&>q_Vfb)|4+b-m>(?0WAVP91q2R^8pY+jY+md8Sp%uQ-n- zIxbNYSL8o)EU&aTL!vL#|Ib1~%*Y$$z(-8j8toX-cOQ^oa#&)>61@C>DEw>kpy(#` z@)OQu@s3&4#82{o9LpW;O|6>Q&X1y3c&b5B2>waf??N-!RzN|AzWw{9NJuatIes8Mud)yS=L?0)3_cT~)JihVx5FUSHhO7Ebn- z?)G@shYf5!01$Kmtsy0a@HOIv2*LooKw&Td2m*ot!cdS2zoI8v-%8TO)(H*}z~h(n zu!6gI0tBJx^7SOw6<*MFP1?d$0d8+==Xu=^k6+sp?yLt8LN{Cwk3Qc32ciF$L!WiP zLqCfD=hOT`f1Cd2aR`v$|8f|@Bw^4cOn{(sM^yINOzvY1B_mwM>M8}=WBJzs7#V4I z?87;RFcB>iHknnJtF~P^M;&VVIxD@N+NaCdx@{~|19mvycU|$?3AeLwt$93AZ&+Wo ztkckhn;H#%#|nZ^G4?&)oymzy%s#^g{Cy9q;`mp`ZWr&4@%;r7BOi-W zQ5(*!)R*(C5-}EzB_DUqK+2jH%jWMJ5d%9CN(&_0>}YPi1^V2s;OLdrOYy^yyAp{J zEdF+~bp+73k{5b@P8P3(9$}z0AA+Oo;QvNlE^BsL-?L@%;gd zWaFF9@wcUafWb%g0?LaC8|Cq_LLrhiSDa_5F(H=6IoU5JLt-ykf2!jxc1X-VthlOr znaex;VeeaT$QaW|n{W%MKUNj~w3O}qN!G-NSJBM~zxZ6T{{dXWf5+l481ZX+S$bY$ zO2^#`{!1!l;Q_x6=zpWh-rd7f+RnoL8YLpupdYmIDH=UGVRA;6K{Y zs|Nh)fF4uB9bu&n_cY>1AMxSWf%|%z{1evy==IBK8Wy&2ehmxvYqCJD=it|Zdmy~r zt>7L2;I*-7*;e*DtfXzqF2 zTfw#DrT7&Ap6K9+i}OpP4Mfl20k}S7r1cM$T~B$PHqZn8WsV2lf7yWdw-M+Le_3(u zSY>-_4aK7XNh?o#gp1K1 zWAW=77y?|poSgo+382STv2d~FaB<>QQ{nuVOaD9!gkFR+`dAb?vx&;d%E<``Km`Q^ z1VI7pWA9|rsVM)!w-(QmXIts($M z%R#c}&+D;%O^LQ!27Nw@L*_n604OW~5fHq-L!jIOAa(%(cFuqJ!`B^dgC_t0Lh#Td z{k{M&C=?6@*Z}^J0l{DabV9to04~2}=rRxu!vBzg(J24734Cto z{~Qkpx@OS7`vO5w!T%f&2oe@V$L;$1%RV3&1pF^OFgpGJmmU;?X5WAGg+cx?o~OG7 zdQWh_2Bo&WKOF5Uek}w7jjCVh#p73Wu|WWUzfQ-YD>48hfT*ODGz=y!EF>!_g?N3J{zZBKzod%`0-XYYzqZEg>E{r~aqGzqGGywDJTPL1BC#5Lie^7zBU`1Np!(7*GHLKtr4l4M1Tb2tZH( z%m)Msp|5Lee{T)wf~UK^BV66f6Tq+OWnry>u)j`1*TX?U5GdN8zd8y)g@NdiuZM#Q z2!WvglKw;YdTIfv5IQ3N)cuDPJ+&&}-yDPrK>pw$C)#lUj>{_yPYinuXAEx)3k(+w zYYaGsJGur(%N)=ef4K~;h_0%kM?*MzIa#>#20$%e z`2`%KUm?*#YyKUjYnTzDQwIor`}0BvB-m%6oJR_0|D%n9H)V^$n?H+;aX!`%0Z zWb?Ty=k==o!Bg}S-QnJ7o}y`i9_4S&{sFzeh;wbEumF(o59<8?8jC>T|G=WoFDwFn zqY>~Mj{pqS{}GWG+Gy~)qq{hwo7FMA&@}*t6$SzgWKXmNegFRgvwxxz9l<|ADFFN% xm1rFQ*#d+D!T)#B79F5T&%QU~)UzbQNJK)N{eME+HI)7rv_a83!e40nzW_A?p1lA7 literal 0 HcmV?d00001 diff --git a/test/pdfs/annotation-underline-without-appearance.pdf b/test/pdfs/annotation-underline-without-appearance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bb7526dc549dd57701e38bedb232eb91655ecfab GIT binary patch literal 15304 zcmdtJ1yq#X*Eh@!DlkY$3J46+62mYvz(}Y=h{Vv{F?0@{q9D@UsS*Q7H;8}|lG3G= zNJw``euH;E|MywXde`@T>s{-;))nX4*FNX$v-j_}&zf21uqjDO^Md(c0Jheg*2dPF z)+~SkkRRw^Vhs=#1<9lAEnF;t5UfN6ByDBuf*?`0&!^9~@&=sWCzmIa*^!21L?|`Qd9nk8&=;LDoj(TTI&bG> zhb#MZux9jhd#nhXf+w{&b+DeSR!0nIMERgTc-8Ial)AJ2Vj&g>9%g-qg#2k9d z_u^FasJVZOYRhx>XI^@WL-)_m;x>;Ft&dFDyn`iu7|x$DUp}u$35?DnLr~nWkv3}` zOj8)(ARJ727u0aNb>v$XLw24;2+nmsvfDa21#H0rCn5rKqBD(N?X6Hayd&(ANbOyD z#=O`|dQ;{!I`hjg(_~Fw(OZcIij}3N50MYgp2w-nJP2}edTR7_z!g48k~1hCgO7Xu z!LaXQ%r$U9m+(oGyCwgf`t-UE!h$=dKP6tz4ZPoCedCbO{BVzYg7abmf3YAl7Z$65 z5xT8l9yUr%t>E~{rkRh+L9erLvl zJ(@Hmb}JUs#eJD^E?lWUu2?jr{DvbWF#IXhZ?$*2C7I7Yc9A`Yyn0u=r_T3mde3$% zv)*dT&s;w1VXv%y+LDykrL#POS;8U?B>uv^#%QOYN z_XWWvH(O`5#k8IL{HIEL_2R>0Z^Pvyjo6vkA9p32TsAf;Rx)X9loR%VcL_Wxxfcl0 zcR2cvwmEpBS`Txq#a>T%oOmys%2cX|9!Ts`BJ(XeqjrkCGS6@dmgCo=qP?Cq%J@ke zycW#QihVHeMF(tZ&qx!hwx23%%AIUBKPb#g;7%0cv(eINHgnRqQ#g3@qN%X^`rfj7 zd{SQq{XdN6yO3v@l&D zuhO7T{{UxSX-??C!nj7bb?{(^J$(Y&8ZTooL7}f2RxyFSX1r3&rfpg$lKbwZgvd%*cV3D&?|*LH8qVq{`>No%DH zmzD8(FuSIy3fksK$lXn9+O7my)X!HxnZR&R-Qvrexnx9?#ug=}<49iHqp_Jk@^Rub zH!q+vh8`V`uIyl|E}MM*sHC;M(o$StJ(-WK%iLwqr#_`2m^0{IK3npA3u?JDtFaYt8e1XqnY15!v)zlG)NV#E2f@*S~_)5pF|=MvR+VpK)MioVN!{i{nq z`EpC&rn=X=mFcoY-}q8yuB^=bIa4Z|(F--4A7xPQ<+}$KnZMv3hkk;psZQ7Aqg?Lo zrbcxMPf@)M(oTtCGfOn$Ek=CIk9TL-yH)YHYxLd?wrQ|*hzSHh&&FU%XJ1K_c0-W2 z_9rF%sZp$o_ngU{+G;dMT4n~X*y&fDiKV+;$+BnJ%Buye$`KfJy!HNA{v?GSWwi%2 z*qf?S)9GF2B(c_QXv#)rYF@kJh~`u3Z4{GiCq6@oH9vZs)@Hk}1qmLDpph~LQgjs#N6TN80AV@8a7ZYA93 z7fODZd%?*1##`qNuYud}(hM~U{x#by1cN*L`RmAH1${!*y5e@P+97+*bNDhqnteZ_ z$bN~MCbmwS$UXK$Xr{YI^ynaa>sOtjayq$;tXy-N+G|d%*3JQdUOre{neh`ibsF6I zo^-(Rr>fj!yC?dQuXA6x8$8i}P2KW-Lz&1cUZg9*`nm_c_CXQo*!_A#cc@?`gk~q>x7#AYxh9F4XhVFMDH{+wm!_9Yt?Anm3bmQsv zv0;0Bew+8c3aU;cn^_$*D}1ikwIYOMi%&{_!&ch-vm@=WS#+5blya~n=kPfh$uLQB z{fQG@0P~Zr6qTZsj3g0@v7(fO)XCiXOfDz7c8&WM_PJ0S^F(P`@|6 z>0>r--i2eIhfuknI41Y+D@a=-2G8!Ct`fud!XU)4k3cKoL1*=0dC>h)n3!qD4=OCQH)hDsSeilj$*i@uw1 z1nW9Ish$(aD?h!{wwx2umek2dq8IzAV^%zzZtjTm(_35BW2TqIfM(y@)p1ON6Cs{w z$HrDFcCU_XOVrn{evz)v?$@Rdw~Mwl&}39&wQ8i&XIY1OVv1n$UfQC)#xF zD-_flhhM}@TWO@-$8X0i?2mATbbK6bJs@sXFfdhd)3J7Y6VglG9tsJ=s>NwUEo{n3W zq1W{_t8dw2YIanI>>B)H!+hPV`}JW_I(mz?$&0pui?$<+wk?acMT=2Gq~(Tk9f|^q z3Hdg8k_WFoYK+<&7lBWELnd7lcSVx~?Z4a}ZC6Q3j8xwERwvyK#}p#ja^g+v^TS>Y z%P(aRj`xnO^=~#V#1np!sqYqdE#$T=aY_3S6Vq1HF^@-ozeGFfLFIWzANS$Un@{YQ z1c#?b-&q%?F6Y7J#`$^;=HB+mwIT+s%ax?*#sxR&?V?1zR_4E0N3{kGl9}nT^3FOxp_FDXK6F$H;ijN>`RjsrY1l%a=relv+Rv zJ<-OFTSJj!xZkl-#1UU<2N8!@VC;;_#%*_&WBnyTHaq3x4VI$V#GfFMciRPGU+Ak+ zzw4YlPqeP4Wh-6eQ}D&`+H)c)EW9|fZ(*k8ihJW0*@|@$7&VK}KGR1Y)aNg}O&c*8D&+}#}Dh5!t)2y!aL%73qDt^RC0?hI~1qCpju3+SuaS@ zD3;7UT;O@xWhTH*1xoY2f6~=g?SND;Xf%VSDLC=DwpFRrz7P)CvQ+O5jsHLyl5fhg zIu~-^hxuqhU^(%h=+tRvAq17Ym?gkCWU zC2*ZZ?QgXEGTjA!7hGBS+g*E^H_rB-s#U%)Bjeb5uUfpQ=A7~72)Tb@T>157>Lysn zleN#F^yb2%s(~xdD)Mq4%vQmH=3{J{*vh(NX!5NQ0FwBkJx+i8kl4kmz3MsI|L1uH z1b=1LMU#RwW!_nKeIjY%5&LAZV1qomfj23pkX%PVZso?PsRU~dE63h2d#RSmDZ=+; z_(-tUe&$uSQ;HSgN{EKl=faAc?mr8)N6h+VkX>aqE*pwjR-Qi-AZt%;UA0{3-YbtE z3>!8!p?YkZeah+k(N7#|DjEA2FJ;^d_HP%kIox3h+u7Fhzc5O)G<`&y(IbpWUNRrn zOId2LvZwCr%kiXz8p;u|>VTs@zkRhA`orhY?j~cin``Xt)81s#cj46QJB2Cb{oR6O zkWZi@&F*rE!tSPz;+D-5CDo_ou}Kpaqst?jQ%W*K+6K(td0#2wl3ZvaDXp!I6|~Jw zoR9X#G)ij^B-KYNXEaK8{f`p2X<3Vp2Q+pb)zDZ(JnMK8%8@G?kRzL##*IviZ;P)F znR*wOv#Chw^wo(#-mq~@>{vSotvoeeBs6Ws zrJ*b5XF!*EG%L^R;exxl;M7SUR8%u&Wqd~QUS|i(^|o(ZDzy?Z4ZdL`#7a5h1Ysi) zN^OxmHlf8o;w_%!ZK!p}(t0dK(9vnzx~yuu$@HmYx%6iy!%gqI`6q7Spe9=%RkD+y zI35%pFh;R(Y2TSn^~=`h<3tv$?V~m$6$fbTI`mDv8&OrMRfIbZefsGFFqW=-$VwHx z0A}L5{7HJyHd-NF6b7C)_L%fn(TSt_7?UZiE^cZ+Z7Y!G;#5GPOo1#)F+05lQ&W*( zb`4MrjTuQM#6xz?KZ+q|;fjgb{b9Nj(_eH$W_U;|*rm#HW#s-XrgHpoNguN;;rdI8 z*D>E803revsb`fgnF6IP`n!jl9r7RBQW{w-d5Lb!wp8AWS%}#>7AOQ*`r-0A4(QSM zRS)U0^uY$K$ax0_cwDcW6>zi4`PNtz^dIt!257IxWU8CwEwNH(ag^h6g@_Hrk}KT{ z@#I~(MNB<=ypz3?<3tb_BPeaf<5yr2ZY}NVLpT_#0ZZqx${;9df0=nyXu`P|_23rg z69=`xEmC4XZzH7VaTCACCSFN5k;cf;nAy8RKCSYF=X5C-esdFx#9?ksgwK+myN_+z zfk4xZwN5KD4?S1%-v1cu9p znezezid#0c-ND0+YQ~M!TZYCsQzG~>=R*yn#*>;WMTOLQgcl#f{eUZDr%t5WzFT6K8 z+P5d-Ua^;+VOp^dO;ISJ>w6gPna-dtDfUKd-7~N~({q(J5tC``xjLDEIUzkGc^fU1 zSAJ~E<^<*2;1$A+VzXbD?Tcy49m+C)wZX#v6`M_F2cuHsH7T~Z77^{r?eoqT18HX` zuibY`jU9(XINs;TR7hLMq|FZKk=Mb5y}u>m@y_I>P8P7gXa7K*B{XXYMmyD%y88Y6 za<6pMNKj_hB?oS61y3Pt3L_ykJY0zMJly9ha0)3P^xRxOThAsf`Z~Uzv3hWu0+M2w z+M#Hb*?O;#qyJ|S8?ibuHyxk7N73+O-s&-8F1IU z(RRU_u#D$?hpX!*%UNL?7UL}YOzT=lDU(YzCq}guTHG`n>e@_I)5$vpm84m=`bJ$fNsUq% zn?Y_=&OlK}-!7=(GstXhck`E|$KS0_x7ib86QQFS$@W5ZW}43}kVt#0ChyQ%^v2ob zvlE2P^I`i4#Tt>J^`M2S1mNQ4ZHN_1)X-Qe=tJtP zZDrNc#8br_ah}sKdb$-x!FV#dn>NaM^>nl~)ieyNZ128OHjsSVwzA5r$7~srW=x(L2VE@D+pr#%th3Y~Cnpt&sVj$X z@`Bn`$L)&Uvm!!87nh}^vZ~Ves8qbVKAzFShRJX7@wVRFY&jj%^_cBuuZ)bj)&wC} zy9E0MzjtRV`@U=(wtJ(0wz(1Vlj!y-U*da?g{99aA{@qU1?(VAUv(MeD+g3OtS_c0 zWQA}gMX>N|oz*aVaYts%e6Qne*mP@Z6>sU~JVyV1wn28Ka8dt2Kxv~qskmK5+RkR~ zxVX3Z^%Hj{W|aWGkeoQSPuqaE>8{A?r=QFFy>dr|Bgs_H?llg1JwC9R5X@og4}B$< z(rkNe!{U3Gt(!H>Qo*BMI7Y=tJ~cKqF~cke)bh$s2F;c_<@p7_O*5Y9Y3o8KuzRb+ zf4slZZ2HcFOT1WfH9z+KA6ae}WEr1fR|Ap4+RUP#*9h7mX^TQ5+-7|y{n**T;lq76dD zvHNns{VPOrG?wIciFIU{#)}4hfW$J{U#yOa*63UmSLpYfq5E{I5u~Y0%%9IAPh9_L%5GHi3+F{~~D?p*(8dmyznDuG^`z5v69wHteEZSYy@n zM)%FC@Q{Tt{M%ki2dXfy&1kCFns^^om?%@YL#J+I+$=YG-vq{}Qq6dnT__l>-@&0~ z$BG;lRZk0^u2LB_Zx|ZMvnJX}&8BEZxTG4Y!wxfk`l_3XX)R}SsM(nKWe#jt9w60Q z`^WIrh#%-Oslv`|&npYRS*$%S49c=2yt-8sep{|{!Rk1{u&>|ms}nyEslt{R)~-r? z>aer)_(z+}0+BN-$7#f)`DcaPk~f~*{&Dx#L}7wq>&|T3b)%IRbinpbZJCp8jyUx) z*Eq(77YS-)cO+Me>)hU$!B!7m%Zu2)m-Q2(4Px`(=h)JEJ>`s!2z}x!Dr8ZN&MN!D zkh6G>dBr_EI zH%>r5RW$sPIN!dH31KQQ$R%CBc>5Yx_FmDHGtL-!HGV*x^uV(bel$xrr}oPHC4wpO zwLN~M&?$?7 zxSO+WUv8>yQmZ^3C^*j6wL&S`!QOZr7vUd!Op5&k7_F5X&>GV4{I=-+oO#rOxqS$; zfB#KnHXi(iY|nXUuA&tfr`hpcom_K;N=j1Dhyh8GyHxyc!(uPJ`!1TiTE->K19UF@4qHfd{FTZ$Q%btT&xtb*6cGDTZE4WN|3Za^MmU%7y)II+Qq#;W6fq}bBNH%_UDYE6u zWypbHQBj&-e27tzZBRo(V$i@xH!bZj{cfM~6wz9B<1H0G{W~gWTwiRI$M}xs-BA0+ z?Yg&6nXTOo3)QH02iu5i3AYaK9nE>a*Dv4})enm^qD5*O2tm1CmX;z>{h9g@meo?U zxA^xa(Y|iCmj2f6l8yA_03_Q}8F*5y;_hj*z|e1_dyU1f&?xSeGp9D=)?2hm{;#_2;QVU3j*vK0IfXeOTQR;ld463^TlASXtu|R%VKCY1hM&(IpH0!m)4aTa&l2Z#JNgt~B;fUL z@H@8&dbS@rBu!EM*xLBY7xiin?NKK-L=!Jj_sC-Fp}Us!Q~qebT)a95OB@o;#5ESQ zCO;W1$!m+(Mz0h%Bjy+xz9HaKO#V?KxDo?JvX_pAIqn1sBsY)nB{*qGq~mXV+*Pt9 z6EkO!Ui0-0U_q1SNpEg20bC?0L1ih3ekG~RHHMb=bCriP_PNG>*)op0*Al!zH>tyZ zb`$lSKYO-;{=}b`bd*-_3>3cm64zG63v8=)bHArmVqMU(oIcTUi-a=jrpZIy$!OeN z8Q@6&R{Nc)K?;J`rXQ4?6j=q-lvM--1XQL#XNFVY2}ANpap(jC;O2oXXeHQ%m_+iU zwQ}A&+#gdfiu8Ks_#5i<8AC2i(UwA3M!pnV*7h|G5vcvpl_q_VoRE!I-na2GCxyf5d8@0~zT<61CBcok~ z!DXB+E_M@>6jGAMK|w599lG8k&x_<0%N%|*{^q;0x!wM*m1c{?uu&u$G{ey3;eI?n z{VmM>MG^A1?&=a~6V#Gv zBg_CX%z<*jF3dxLGE{e^g3XxI5v+tUoRZJUNSN0VZA7;?0u>0}l2J4FB9a670mftq zP#}_^m@Jlzjya!9lFCId7=lQro}Wed@U%Tf_;9v02OeX{F3INcm@oL+W&@Akl0CgO z@5?+xF|W^zB;2uJzF=(=L7XWE*S_$O3w}Vb(1p&K?F+Abbpiw+MIinInmIa>x`3cIwEY2zT^$&1_FS&(7S$+7^MB0=69>^f=n85qd0bqlk5y`FqSI zl=A>)KAL#}X2}T&ssH^`0ug-tGW7q~v+QN)@2BO<(EsMtU^2&5cIJ6I6p;*1T)eii zSRiMjP4!Al)D?`GF6ZI4q*2^haJhwHNU!-MK=Zt&UEu8_mh>7l-IC|6On@`M>3gEq z(%k_v%p)XTqs#-0IFhDA!1@u5j*?40F=yvbv60Os9kMejjPEvg%bQEnKc*UD5&Q z^cL_fS>ud$==D5=r5D0^=RJu$#h5Vn3`%2%aglqTU7qRpJPy!ERQeJ+wbe?{p(uWs zXQo>o2@zIUj!1C4w{#FHOoiS>r*;(htBPYpXI%I&cV?E!GkKxI5GlTvr=g4+6QBzJZ4^s9)OUS3;U!nd$VVz7;;??EJn0a(2#z10&*LTDzyw^m#=v^9Y7CTy*gt*7SG*+8ZfO zxBun>>3shw*A_!g@` zOY68Bi!M)kSMWDN;7+%P!%RQJUrndG?W~G;z7G@L2!@M1`s#ULmo6=Aw+QX!`pDIr zMzXW2D@@#;&hYBd%mfZ-vcDi|_(eM3+(^&bf#d3u*xLMPK>B^pE)wKMI&S(GVY{WO z5YmQ(BU=^>vCqJo=P>V?bYJ?|&SuG?(C(hbn4?ag6%{5=E0(lMAhB(;>~3OP;?b_w zkhqd5PXR$yIE~d@6*Muh&VOuggd7=GU(T0UMXyFL*MO@=A=hwQjX~}Uo(`p4J|6GF z!gsay0)a&TWfA=r)jiWl>H$$C6&PQaZZW;vB(nWgJ@_%i64_hM2u)i~K&MhUQ$9D} zjfI$y2$rpY@xP|ArH6VR-1U2jKpM1g<3+nruHRk)`|nyN?IWFt7G zc77?oeGP@~o?DoY|IEc}?r=S~V?FI57x>g%Nq~a`!-~X0+~YcasnK$W2hu6sHod4Z z=S33KIXfgSChl2WX41$`td4!Wu$8bfvQ3C_cGFy#V)mOj!|ck1(Eg{E$1N|*&WUQC z;$Gs2<6MxO&iXgs-2%xplQ!Zv5~V*s?{CS9J|Y=7 z9EXo?#B;7WhIq|@Gr%$1HqqA?o0_(eDNw*u`!(lgvmV#Wn;y4LFoLD0*XKOv z;0q6kzADTUWmOzBJhfbNx@;NS5P#M%``CLHuZifmBkKDJ>-M$n zI@hpMuubQAK5X5ujn0V)ufspP?7>aZz($r%k(;_VZ(o1Y5|FsDiO(Z4b)@UouvNK^ zW~x|snm@JH$E;?g(8c$RD2 zWxlj^RCU+uXzK`%$ycX?5AFFu?uHHq-@c%3`>pxM0Li7>W$@FluWwzB zNwoTHI1V|QX`P(%i$UdWf>!p83z=IFjXkw0q|cb29xHV!BDf{I5rffg22dA)9A@V3 z3;cU8B}$6!A2Q)?+?-r@)jbQicr6id@vOw}^7;=A2kqMCWu@BYw?)HDq9ZF?oHj@J z-CxeqdUVdyNUBeS5{r)RI(|fvz%(PTJTES0m3GUI;yxL6@X{*P(+ZIXOM$ai^qs zvaC(yIAt4VaFxo+g@0qdYHc{@cw|`>)->|`W5aR$vZ`Oku0g2aV3LZG-s9MfE_B6$ znW>z;o+`#sop_nHGND|M-5b3&p8=g&akI9bM#|pdVAv92U5-0k-bg+6pksQ#Sh~}m z?ctLyf^6mc?i35M@0e=vNc);+oaB@izh3#_qfT#SiJmHrgOe`w;$9CRtiz(9uw+j= zG;jP?NOwHBHU1OnL#BLX%sZr){Lk5gRf1fh@DlBf1Ho|GuEL;vtHmJB_X4SvsrtSO zYuP8<*=@~!5__Dv?5DJ&!p7n=Q20Ew8~N( z{4P&HX|-byAbt6MrjuPy@CA#(B9n?sa&BX9=fw*anaXBkHigEl({Jq$(^`)u)pQs3 zxX+s}USAF~9M4|TvaMex)jH}qbFGZ5;~nBA;duLpJ)3UfGvaW(Rfab~Vv8s3U);h^ z_S?r6Y9oT%*KYXxy&|n6tHb$m-OJzp6%he$#zXu8l575gMvyW>%j<%;^!^7Ai3V;K z;f>+?84;J!Xc-GJ8UeRe?rW(uKjg0lye@Mi{ULcY0V@tk3rQQElRt48E_KVzWE>VFoPB?i0lqt*)N!FW z*9lf~$_61VR&%p0zcNruv;Ut7=#2Q7dz)s?cTQ|he~xn7VotF|q=o5O?Xz0{2RP06 ze)wn9$Hd$0j^xL%?Hk+ox9PU;ZFA2hwSfFJ{ga+$;emd8fM;;c573AsN-BykN_2MZ z7`%OR8@kOh$2Iq|h18#-<>=YgZ?o4U@f2|taiZ{|ev875!ujM6p5xr+-zIasCVaEa zUl|AxB@o4#BAvp&gS&Zs^S36vJJ&XEG!ai-_aQoF-zJ_z&XLTy&8@ZAwT%0h;^O<4 z;uzkrzi$7V{SABErfX9KQ#g90diZ)odU$%o>-Z(OCD%%D`0)8yGKh|p)}Mx+E0$k! z9X@Ekz)W0Ho@SX`s{Z#v37pS3p%DN1o3DiNIR8H_{%L@BmdTdtx^L)v#quMrL-F<* z%)}|>mGDwAtM#(y0q+%74KJQdH-?-sk#$(*|1VZjU#*e8T0RX1Lxtggt)&+Fdo8t^ zry~j^?O^XBiE=hYTRFNoU>BleUy;UkC=lY&)xj-cY-?qLwgOzOP`7XfLa_y`1_I&W zq00*u5(M&s;SeBL04xB6!vyp}Ph7D2rjP6`Y*9dd0O*mkDazgjCG z+70pyYeeOxFgO)PA5DRxRhL+HpJ}mmK3>Ax4XNhZWr1vfwB#TbOXNR4LiVR)PX)^4 z>!MECPG=pWC!fkT9zS5IeEMRB^>mh+@^dV1N8r&hMe~6Bmc+ixWIQ}?TKo8%X=+YM zs$VF7HeKU?0V(+35%>!{AXQfrmn$TxpMx3{|5bpgBr*T2vP=Kp)J z(qQ1#(Et4%{EzS0(E@)}z_zJ`b}&^%x#)thyFfr{C=VC?e}ecQwSGBE$=Ct~QZhzg zQ3HC_2S^3w?BI$vML7e(SIR0N1(cbU@fG8)EE2?0O$d&q+GDhXt0Q(hi7M9d#`eyR zS526Df+SS2Omnj`MX5YSfSv$dut5H4t5*pJ*DGKAqYJFT|L#M=7@H*=EU=@tzz*`)paCF7 zN0j{|Qx_`-d)?pL0%>XM0PS6EZGXS=qtQ$@>EQU^qXNUkEIS?H$g|FTlai&%yN% ze|Vr#<^X;m7z)6)^v3}dgux&%pgHh&8CXDA01L>g18Dz;3|j_cLHJ)}*j+CFMFtjt z3t>I@U-cmWp$CRvA@*N-U~D$WM(f`)0j%^tWH5egdj2nZLRjYhhfD|?oPX;<_=WzX zU+gfjjQms21#OI-0nk^VRJHO#VO<4Mad5z*>KA$epeOd`4nXi#)UkAXA_>$5ic0f8 zl9T{LAHfBoPzX#CEGQ`;(-5I8C{r6}S34jG4iOd< zl#<|wL-{2Ige75cX>5Yx7X(W{uxNk?NnU}_*~J*`@++iZY(^3Qu(3%gN&~JSjHMOv zpS%M80{hkdZ=wVLgJrN?j!ohqHK|wG- z6o>^nA4Gs3E(`?<@k98qsKp*v*8VXi072^ZW+=3+l|2dwQg$^qQ*yAnNo_3i z#U+j!junm_4iLu;#~8;R`!vHr;h?ck1?Nv#%l^Sh4VsT#sa*?Lgqre0%qodrY0yD3Y$QDv2~=ec?~4-D~xu5d?;%_RcZ+n)zE zLciydKV)Etu)ts3{}t&!wZYho_!ry%)P_Q@W}V-eNDTOciNA3CI~4`75W_N#bG!J1 zY@#G=(C%Z0Y6*4bV=f>kq`4?KsdMNy(MQqoXgRwQuB%b~gSglsqET*G;$nG%ZRKwg z|Bl7Km~>?%)(qm`x%7WCIN>nZ|0{6fsACcQJAQ4k*tN$Z7>HwvV9VJ1|6%z4 z2~cb>|HLOh_-}w>A^qnUFjVmGY3qLzc(I3{)ckQ>I?XPNGethkX8m`-yF%6f06ZA> K*V13W`+op+jUQhC literal 0 HcmV?d00001 diff --git a/test/pdfs/bug1538111.pdf b/test/pdfs/bug1538111.pdf new file mode 100644 index 000000000..deac036e1 --- /dev/null +++ b/test/pdfs/bug1538111.pdf @@ -0,0 +1,108 @@ +%PDF-1.7 +% ò¤ô + +1 0 obj << + /Type /Catalog + /Pages 2 0 R +>> +endobj + +2 0 obj << + /Type /Pages + /Count 1 + /Kids [ 3 0 R ] +>> +endobj + +3 0 obj << + /Type /Page + /Parent 2 0 R + /MediaBox [0 0 595 842] + /Annots [ + 4 0 R + 5 0 R + 6 0 R + 7 0 R + ] + /Tabs /R +>> +endobj + +4 0 obj << + /Type /Annot + /Subtype /Highlight + /Rect [ 108 602 506 640 ] + /NM (Hilight-1) + /F 4 + /QuadPoints [ + 107.7896 639.9486 505.8939 639.9486 107.7896 629.1634 505.8939 629.1634 + 107.7896 626.2871 505.8939 626.2871 107.7896 615.5011 505.8939 615.5011 + 107.7896 612.6248 380.1389 612.6248 107.7896 601.8397 380.1389 601.8397 + ] + /C [ 1 1 0 ] + /Contents () +>> +endobj + +5 0 obj << + /Type /Annot + /Subtype /Underline + /Rect [ 108 552 506 590 ] + /NM (Underline-1) + /F 4 + /QuadPoints [ + 107.7896 589.9486 505.8939 589.9486 107.7896 579.1634 505.8939 579.1634 + 107.7896 576.2871 505.8939 576.2871 107.7896 565.5011 505.8939 565.5011 + 107.7896 562.6248 380.1389 562.6248 107.7896 551.8397 380.1389 551.8397 + ] + /C [ 0 0 0 ] + /Contents () +>> +endobj + +6 0 obj << + /Type /Annot + /Subtype /Squiggly + /Rect [ 108 502 506 540 ] + /NM (Squiggly-1) + /F 4 + /QuadPoints [ + 107.7896 539.9486 505.8939 539.9486 107.7896 529.1634 505.8939 529.1634 + 107.7896 526.2871 505.8939 526.2871 107.7896 515.5011 505.8939 515.5011 + 107.7896 512.6248 380.1389 512.6248 107.7896 501.8397 380.1389 501.8397 + ] + /C [ 0 0 0 ] + /Contents () +>> +endobj + +7 0 obj << + /Type /Annot + /Subtype /StrikeOut + /Rect [ 108 452 506 490 ] + /NM (StrikeOut-1) + /F 4 + /QuadPoints [ + 107.7896 489.9486 505.8939 489.9486 107.7896 479.1634 505.8939 479.1634 + 107.7896 476.2871 505.8939 476.2871 107.7896 465.5011 505.8939 465.5011 + 107.7896 462.6248 380.1389 462.6248 107.7896 451.8397 380.1389 451.8397 + ] + /C [ 0 0 0 ] + /Contents () +>> +endobj + +xref +0 8 +0000000000 65535 f +0000000016 00000 n +0000000070 00000 n +0000000136 00000 n +0000000281 00000 n +0000000671 00000 n +0000001063 00000 n +0000001453 00000 n +trailer<< /Root 1 0 R /Size 8 >> +startxref +1845 +%%EOF diff --git a/test/test_manifest.json b/test/test_manifest.json index 273378359..a2b1d8752 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -764,6 +764,13 @@ "annotations": true, "about": "Annotation with (unsupported) file:// URL." }, + { "id": "bug1538111", + "file": "pdfs/bug1538111.pdf", + "md5": "3f3635cfc25d132fb1054042e520e297", + "rounds": 1, + "annotations": true, + "type": "eq" + }, { "id": "bug1552113", "file": "pdfs/bug1552113.pdf", "md5": "dafb7ba1328e8deaab2e3619c94bf974", @@ -4378,6 +4385,13 @@ "type": "eq", "annotations": true }, + { "id": "annotation-underline-without-appearance", + "file": "pdfs/annotation-underline-without-appearance.pdf", + "md5": "dd5be5e9a8e6bdbf67c175ca170f7cb7", + "rounds": 1, + "annotations": true, + "type": "eq" + }, { "id": "annotation-strikeout", "file": "pdfs/annotation-strikeout.pdf", "md5": "6624e6b5bedd2f2855b6ab12bbf93c57", @@ -4385,6 +4399,13 @@ "type": "eq", "annotations": true }, + { "id": "annotation-strikeout-without-appearance", + "file": "pdfs/annotation-strikeout-without-appearance.pdf", + "md5": "1dc751ab83e8deb3094bfc580289b097", + "rounds": 1, + "annotations": true, + "type": "eq" + }, { "id": "annotation-squiggly", "file": "pdfs/annotation-squiggly.pdf", "md5": "38661e731ac6c525af5894d2d20c6e71", @@ -4392,6 +4413,13 @@ "type": "eq", "annotations": true }, + { "id": "annotation-squiggly-without-appearance", + "file": "pdfs/annotation-squiggly-without-appearance.pdf", + "md5": "6546f22a06a5e51d0e835c677cdbc705", + "rounds": 1, + "annotations": true, + "type": "eq" + }, { "id": "annotation-highlight", "file": "pdfs/annotation-highlight.pdf", "md5": "e13e198e3a69c32dc9ebdc704d3105e1", @@ -4399,6 +4427,13 @@ "type": "eq", "annotations": true }, + { "id": "annotation-highlight-without-appearance", + "file": "pdfs/annotation-highlight-without-appearance.pdf", + "md5": "a1f2811324fa1ff0c9f1778697413dad", + "rounds": 1, + "annotations": true, + "type": "eq" + }, { "id": "annotation-freetext", "file": "pdfs/annotation-freetext.pdf", "md5": "6ca19ce632ead3aed08f22e588510e2f",