From 91cecee823e744d97cc7d4b927779167fb04ca7f Mon Sep 17 00:00:00 2001 From: tomoya ishida Date: Fri, 17 Jul 2020 23:25:36 +0900 Subject: [PATCH] Fix context2d lineWidth scaling (#2702) * scale lineWidth using transform.scaleX * update spec/reference pdf * update pageoverlaps spec writeArray * update autoPaging10Pages reference Co-authored-by: Lukas Hollaender --- spec/context2d.pageoverlap.spec.js | 15 ++++++++++++--- spec/reference/autoPaging10Pages.pdf | Bin 5774 -> 5802 bytes .../bar_graph_with_text_and_lines.pdf | Bin 36549 -> 39041 bytes spec/reference/csscolornames.pdf | Bin 3254 -> 3284 bytes spec/reference/curves.pdf | Bin 3395 -> 3435 bytes spec/reference/fillRect_strokeRect.pdf | Bin 3292 -> 3322 bytes spec/reference/fillStyle_strokeStyle.pdf | Bin 3625 -> 3685 bytes spec/reference/fonts.pdf | Bin 3657 -> 3757 bytes spec/reference/moveTo_lineTo_stroke_fill.pdf | Bin 3129 -> 3149 bytes spec/reference/paths.pdf | Bin 3191 -> 3211 bytes spec/reference/piechart.pdf | Bin 4057 -> 4107 bytes spec/reference/sierpinski.pdf | Bin 65106 -> 72396 bytes spec/reference/smiley.pdf | Bin 3629 -> 3639 bytes spec/reference/textBaseline.pdf | Bin 3918 -> 4039 bytes spec/reference/w3s_arc.pdf | Bin 3168 -> 3178 bytes spec/reference/w3s_bezierCurveTo.pdf | Bin 3046 -> 3056 bytes spec/reference/w3s_clip.pdf | Bin 3293 -> 3323 bytes spec/reference/w3s_closePath_v1.pdf | Bin 3165 -> 3175 bytes spec/reference/w3s_closePath_v2.pdf | Bin 3314 -> 3334 bytes spec/reference/w3s_fillStyle.pdf | Bin 3234 -> 3244 bytes spec/reference/w3s_fillText.pdf | Bin 3053 -> 3063 bytes spec/reference/w3s_font.pdf | Bin 3053 -> 3063 bytes spec/reference/w3s_lineCap_butt.pdf | Bin 3094 -> 3106 bytes spec/reference/w3s_lineCap_round.pdf | Bin 3094 -> 3106 bytes spec/reference/w3s_lineCap_square.pdf | Bin 3094 -> 3106 bytes spec/reference/w3s_lineJoin_bevel.pdf | Bin 3122 -> 3134 bytes spec/reference/w3s_lineJoin_miter.pdf | Bin 3046 -> 3058 bytes spec/reference/w3s_lineJoin_round.pdf | Bin 3122 -> 3134 bytes spec/reference/w3s_lineTo.pdf | Bin 3022 -> 3032 bytes spec/reference/w3s_quadraticCurveTo.pdf | Bin 3045 -> 3055 bytes spec/reference/w3s_rotate.pdf | Bin 3099 -> 3109 bytes spec/reference/w3s_scale.pdf | Bin 3465 -> 3516 bytes spec/reference/w3s_setTransform.pdf | Bin 3317 -> 3351 bytes spec/reference/w3s_strokeStyle.pdf | Bin 3234 -> 3244 bytes spec/reference/w3s_strokeText.pdf | Bin 3058 -> 3068 bytes spec/reference/w3s_textAlign.pdf | Bin 3361 -> 3421 bytes spec/reference/w3s_textBaseline.pdf | Bin 3304 -> 3364 bytes spec/reference/w3s_transform.pdf | Bin 3320 -> 3354 bytes spec/reference/w3s_translate.pdf | Bin 3187 -> 3207 bytes spec/reference/warnsign.pdf | Bin 3355 -> 3415 bytes src/modules/context2d.js | 14 ++++++++++++-- 41 files changed, 24 insertions(+), 5 deletions(-) diff --git a/spec/context2d.pageoverlap.spec.js b/spec/context2d.pageoverlap.spec.js index a54cb2dcb..f626ecd18 100644 --- a/spec/context2d.pageoverlap.spec.js +++ b/spec/context2d.pageoverlap.spec.js @@ -53,6 +53,7 @@ describe("Module: Context2D autoPaging", () => { "170. 821.89 l", "20. 821.89 l", "S", + "1. w", "0. 0. 0. rg", "1. 0. 0. RG", "0 J", @@ -66,6 +67,7 @@ describe("Module: Context2D autoPaging", () => { "170. 1663.78 l", "20. 1663.78 l", "S", + "1. w", "0. 0. 0. rg", "1. 0. 0. RG", "0 J", @@ -79,6 +81,7 @@ describe("Module: Context2D autoPaging", () => { "170. 2505.67 l", "20. 2505.67 l", "S", + "1. w", "0. 0. 0. rg", "1. 0. 0. RG", "0 J", @@ -92,6 +95,7 @@ describe("Module: Context2D autoPaging", () => { "170. 3347.56 l", "20. 3347.56 l", "S", + "1. w", "0. G", "0. 0. 0. rg", "0. G", @@ -106,6 +110,7 @@ describe("Module: Context2D autoPaging", () => { "330. 821.89 l", "180. 821.89 l", "S", + "1. w", "0. 0. 0. rg", "0. G", "0 J", @@ -119,6 +124,7 @@ describe("Module: Context2D autoPaging", () => { "330. 1663.78 l", "180. 1663.78 l", "S", + "1. w", "0. 0. 0. rg", "0. G", "0 J", @@ -132,6 +138,7 @@ describe("Module: Context2D autoPaging", () => { "330. 2505.67 l", "180. 2505.67 l", "S", + "1. w", "0. 0. 0. rg", "0. G", "0 J", @@ -144,7 +151,8 @@ describe("Module: Context2D autoPaging", () => { "180. 3347.56 l", "330. 3347.56 l", "180. 3347.56 l", - "S" + "S", + "1. w" ]); }); @@ -160,7 +168,6 @@ describe("Module: Context2D autoPaging", () => { var writeArray = []; doc.__private__.setCustomOutputDestination(writeArray); - ctx.fillText("test", 0, 1000); expect(writeArray).toEqual([ @@ -171,7 +178,9 @@ describe("Module: Context2D autoPaging", () => { "0 J", "1. w", "0 j", - "BT\n/F1 10 Tf\n11.5 TL\n0. 0. 0. rg\n0. 683.78 Td\n(test) Tj\nET" + "1. w", + "BT\n/F1 10 Tf\n11.5 TL\n0. 0. 0. rg\n0. 683.78 Td\n(test) Tj\nET", + "1. w" ]); }); }); diff --git a/spec/reference/autoPaging10Pages.pdf b/spec/reference/autoPaging10Pages.pdf index 8e63ccfff5281ba6efe05d8553e8205cb57b9dd7..283580760865e370d992db1ed6be4fc9e6cd7c3f 100644 GIT binary patch delta 524 zcmeCvU8TE$pN-LS;zZ%e@0e63yR$X28R=OVE0j+bWEP%$i>;Z-$N(X!Jh_iE9HxMu zqYuWM!!d0#ADiT4Z_ZgTA)xln-#M)~Ma?Y~3_w63j|)s2n3$LuZgvxPWUMzcK$9}G zFgHXKGBPqTMi(+RH9;3Lvou2&vM@427qT=(Hme@w9%BOwb2MefMnH9&CuOyVs3~YJSG;v h@CPXe*;rDPn3Ot-?HZZkB5(5hvTAHH^85&D38wF`qxDXlm6;n2xD)pE?6_T>l_vu? zQSwA&CkZ6dYtK(4bdeos7<{e=;6rjV`tkwUXx)=r1t9AWIhrZjY|U@pcMUCO0A<>w_8he zyH&)4ZY4SDRwv>2HT|YWN5o~1mbmOu5&!Wh#M>SXakfm+Uno=Sh}c}NB{r9dN z$|^vSEdajFs(~x45pYGc!i9*g%blD8jd2Cg_c=B62M!1Ql-EJ~1qIqC6hJ={)XBEu&9FhuvS0puXRWb%z;aXJNrB&X7@gmf2-$h!>CyPZ%wR70`yQqF&*#G!toME(l#*d%mY>fy{3 zl`UR-dmu3thLgj8>VlAr^+4-r1a6IFFji_}lpru3+&H+3u~0X&V>Fx`yHd0!JzfpB z$FCNxnV77GW0OA@t+{ci8g3oJaZ-DaU@rspdj04<@Ym7rFy}};dJLOSeLjWt5PR@A z4I{^|Vc4kV#~B)anfa+`&C@5maNxxEm>RhF{2h#iPSG<g zzJ-ET%Vjn*;pU)=tRL! delta 1947 zcmZWqZ%kWN98GKIMqw@8fX687N}+EcqkDaS=xZso!eC>_=zWbh~eYeRk=e%>z zx%cnkanq$uizi&Yms8N_Z&Esk3H5J(6(EjbWPcyT7+!;@B#a35}2 z52wo?a9R+v9mkut7(p+*9vfCSS7No(k$2r+Y{Sc&1bn&a9`*Y+x8;rJ`@f+Jylr=) zu)vEZQkgA5yg~45gAcTMEQ2^^uc9NL+P(Ol)XnZzqg5Zi-B*nF3pr#8TQKYj<492r zrb!LEBKW0<$BwOj%4fFnxM^^=gU2HdU0)!4nes5YoIEB-Y4fZQEG^dgB*701&bfH( zC#89A5d7KTo!fYfk<#=fg4?$1e4OBW1}`b$v5%DIxlZs$gLjnj7$K$UcL_SnbUsS( z9a5Pseyo=j;q&@S$Ou9F%K6b#dy>2&A69F}sWz~KXSAOxSgo&;)iOI-t!o#nedT4f zxR2F7s%ACW&-Q$sXMMYCS?y{atGVl0?bSW3<_wrM5%YV^y*y!hb|NN4%`=D_opE{` z^rPX!g5<^>$%Ff(^!HJN71=}cf|J97Qb~5~S!Ji?2!_bsh^yOC(&$ACssH_Tp$-3S z!f%HvbKEnkw&$nSs;pm#KZs+{Lrfkhx>ieiU^=I=&3N0RdOlsKWr}xqx(=rvY{ER!>+nu<_s)TT*wIZjLm4_>c z;TZ_Y0(w|4w?>fa?xzp7!R|@VwAn251EihitgzPIo_@STu@LLEblZUzjl7j^I=Eja z(Jq5DA8OV;(xcRKE&Wi>0bQv-YLGp>25IOsNZ=`h>^)`>;kZG9{V_dWcfuf51ICbV z&>+<(4N~(oCH-Wlv}#|Y)S=?k!6I~?a;KB0dbN2HnJbEmNLMu2Zx=yGn2l^CN##Y#8Mrj%uDcd^W~macqh5$HqDIj_cW_2{(S5_<`uN z7@FiTGPy$e+SGlD&rj=EKKl>7es}HkB^1mC zr}TE@kRW9>LsBJX$#5fc9|F_9B8uj@6iI0`O|Qs`N~G$%hoTDRW))RcvHTkBN;oXq K{r>jD9sdDeFRf_+ diff --git a/spec/reference/csscolornames.pdf b/spec/reference/csscolornames.pdf index 3e0fb1f31092e9ecceeff2a5ecf055c726461e80..205221342923c17c537c065160fbe4322536e777 100644 GIT binary patch delta 412 zcmdlcc|~%<1V+n=6IECY^%Tk{Zm|{v(Od?43I=+nK&()d&IOkF?I4PfQ2;W7+@TUG zld~8Vz}h!=GOBTkm>Vk?fPg|C7nn9MGP0a}n9HKx*Z@t!z|0hA2Z~w)a|;Y1OG67Z zRfYx_8VwE2F;p2Fm?LSd2U%ojVr+>d1{N|kN4L_@+yLDZh87skH?%ZGH_OPt(g@9X jBST9Qu#f^$h?p9qJJ!g|XtE^F6i#y^3ocbvSARDEHP=>d delta 388 zcmca2xlMAy1V*!o6ICWBFp5k(r^aKTr(mFG3d9OU>67CbRVM2(%5Z}P6%6$hg4}^( zE}K^{s&a~$7%LcnfI=P@m^LsnGMoI6%c34AgeqZRW&|`51mJ27%uO+bEG#V0R2dpz zXf!l5!BAynZjPi8XupAhp^1Sdk{DRX)CAp1Lo;)9PZ(NYIN#9H2;D3rpqJ2$H!?Ic g0ShT0d}(BAfbLi$Q_IQbJX1K$EG@WHRbBnv0Bg8VPyhe` diff --git a/spec/reference/curves.pdf b/spec/reference/curves.pdf index 85632b317a1a67b6b433205919862c1f4634eafa..812a3e09fbc8d49b29e89f95cfaaefcee20e99b2 100644 GIT binary patch delta 415 zcmX>s^;&Ae1V)pI6O~!a^c2b`ZZ-$glQ%NzK^S6;=pvPjmS}43Aw(26n=`R+ikcaj zC>Vf%LLL{GHZU?VnH<1vQEy?0CShP-g>2F7T{8yOpzf`t^2Ld47j-LXdI#*@$SOyw}P L+gRXtYk^ diff --git a/spec/reference/fillRect_strokeRect.pdf b/spec/reference/fillRect_strokeRect.pdf index 91d0855384a28191a70dda7a3eb635f64caccbae..66f25d67a947941e1e2d79e2cac46f53def1a9a1 100644 GIT binary patch delta 403 zcmca3`Ac%b1V-bD6UA5z^%Tk{E{l@}(Od?4mSzeFq9~mUBs^J^F^&@~59Spy#({Nh zKF`R?DQaqHs9*pB3VB>$+Q7)zX!1)gi+VE)GzkMUOJj5)3nL66OH-g5P)sy5z|d%D zWQd{4*u)e`V?D?SLlbjzBr&j%nIXEBhUO;do-nk)aK53XCAwKghQ4;E5D b3K3ItbjKQ*nN7CmnaW{i#-*z2>hA^s3e8jM delta 373 zcmew*c}H@>1V)326U8R3i4`=^voupc5Jl;eRT$$Y_b|q8e#gkdDQaS2s9*pB3VB>$ z+Q7)jaxy!&MZK{FnuLLwnK8PMxg~~>r4i6R6cY^%Ff)NU<4LYKoT=GL3gZ?nepUUo~azh LW?ZVOuKsQS>C{bT diff --git a/spec/reference/fillStyle_strokeStyle.pdf b/spec/reference/fillStyle_strokeStyle.pdf index d3050dacb563437c2bd5fd3bb561a73cf49c13d3..9d84410ce8bd4aeb540b078d70851d3a5e2aa0f8 100644 GIT binary patch delta 485 zcmZ1}^HgTS1V+n=6O~vD^%Tk{Zi*8H(Od?43P2i27Nv861SU%}B4i+vFqsy{M4@t! zBA_r31-U~syhYLgk%Y;FF`*j;liAM{2X@A08D=(45pxp-0}xQi;{wwLMrM|i&3Me~ zEsYJ)WDE^V&CrDmEii=168%P7y;B1p^RJ$m0Uj21aJalZ$xF>n+R;(PRuPEzQt`3=NGi zgp5or(N!5^YBV*(P-SLffzVhFc8#IAg#khgB4lZZZl#fd35G8WF`RE?4D=<~2!vlv njE&KSOpQ%JLW;;iVquQ%SR+fb$tQTHa2l9da;d7i`nv%D9G6)# diff --git a/spec/reference/fonts.pdf b/spec/reference/fonts.pdf index ddb4baeb5c97bc29bf3ee528af4bad2ad1f06c95..c8b05f28825c182931f4395dec3d6613217d5c4c 100644 GIT binary patch delta 487 zcmX>pvsQLOKco4?3F0h)Pn4nu}WN41z3u6rD t8<`kmm}P2aif+7_nK@8M5jjYV4Ghs8YiuxiHSbhTBLhP&RaIAiHvkk#XmtPp delta 398 zcmZ20ds1dXKcm^i3E~siSWWz3Gue#MadIQ0^W<}k9+MTA9D!JJato90 zLWZUoLPnN`=&DRGHJX}Ys4}xKfNQLWIL6Sz&Mc#tBn(WA4A6zlOfiJaEsW7sSz>53G%!I|WoT$_gru<^ru~TBg1V)pI6U8R3ah~|od9x!UE2oH|g@OSHDCBX0X#*oehz*0E~*#!J?Bz z7{ggW(wnmwSvf^b3=9+uKtLgn3rrgr85vG);j*YVHAj;$Ftsp37cw`*5V9~aMOS5s zq0!LL09}=#k+BJq#(I!z42{jqki@`3rUvL%8k!lSd&1Bh!}*357U*Uf85mlk8E<50 gWC#{gKnf8PGjzuqnVL?%#XXh7)RaqA)z#k(0GPQ_6#xJL delta 378 zcmeB{{4Oz}N6f&I%g&CgxTGjGF_+6g&q$%1%Rs?>;_@sG13d*GDoUTM%ox78o{@!9 z)Y!s6!2kpl^0>gXfsvu*ShVuJ2i VBU9ta@3^OO7@Kmbs=E5S0RWpcPICYN diff --git a/spec/reference/piechart.pdf b/spec/reference/piechart.pdf index b3d4163d2b055d38a6aabc9215d3ab93d3c39866..b4c8e5ce80e7e7c457abe3eb0881b61e9b464205 100644 GIT binary patch delta 418 zcmca9->ooV5|g3f#3@QFhI$I+6St;=>B-WJdSJ$855}{Md>|<V*@0O^&r<68JQU&iGhWTEzzwsGBrZ?gpnDB^Nq|cFwC+vG(|Js*uc;n eETn)GBF1Lujx{zhnQX&9mBZAKOI6j?-wgnROjqLo delta 372 zcmeBHxG6tj5|e@1#3@P>cc)EOW7ORo!FYyoay*N}h3=DW`~u znSucbDCBX0X#-;ev&j;C7WD?kXcC4dMi%HorluG|W|oHNsw^-yTAHG(GBU6*K+;$b za*dIZp%Ic8SjgA}-AW@9b97G_nPE8J$lMsiEDJMJbmJ|}%)vqmNFicui0)WpW6Q~T P{8Kp$47pTQUH#nvaX3$I diff --git a/spec/reference/sierpinski.pdf b/spec/reference/sierpinski.pdf index 367f5b93fcb193d4dce98557f3b3cf62520dcc3b..ae2e6d1fe0ebd536b1fad19802663464a7ca79e0 100644 GIT binary patch delta 10326 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 diff --git a/spec/reference/smiley.pdf b/spec/reference/smiley.pdf index 887ad27ef3e88dc1641cdca7a471940f5473ef37..bf22bdcd3265ff52085a045767a1cc9595b01121 100644 GIT binary patch delta 356 zcmZ20vt4Gw1V+<|6UCYJ6v{U)t7c*`1Tr=&Ftc%r7+EM7fPg|C7nn9MGBcTM#bZ%# zVTvYUXkci7E@WteA!KB3jIPQAQ=_RdhAJ~NBP5OWAlDe0Tbdw=frTuM(XBKxFvakM xA%^pfj1AGvGBPnSM>F2Y)Wi}jq<|D67MAFaHL^6HJb`yAhlMehs;aBM8vysYNFe|K delta 347 zcmdlkvsPxp1V)pI6U8^Ktz_D)&CJRvVrZdY00IhmTwvP3$jo@M3y(#;xha~2AxITi z4P33Ep)rOKP(QjV6HJY!Mi{EhOpTB<)`M&^G`BE85(5ia8lhWhWMG2f2}2C$8yOp* qn`LBTY>sBUk*TpISV#dWL@X@O9cyH1HhC8BR1R}vE>%@me>VV$CPr=m diff --git a/spec/reference/textBaseline.pdf b/spec/reference/textBaseline.pdf index 0d04c108ee4fd0680b78afffe07e94f72502af82..541adca3f60b24447a8798419d71158c262cf2ea 100644 GIT binary patch delta 541 zcmX>ncU*o#KeM5M>BNb$EQWdt<&&6XxP!SsEHE)Sk4bjob9qjue@<>fznrD95tp4ES8+*EYGN*zfu4~7J|cyc16?8NW# zlNA^(CMPl4OuoPz2oapD$Rq*eJcLM;!ZDZa5 diff --git a/spec/reference/w3s_arc.pdf b/spec/reference/w3s_arc.pdf index 41c92a8db859172c0b926670911454a0b90790fc..6de2d67c544287780a2ebb548893fc52c9a66e37 100644 GIT binary patch delta 355 zcmaDL@k(OC1V+n=6UCYJ6v`(qTgPGuq&EjMvT=%-nJXB8fI=P@m^Lsnw3wXBWl?Wr zf+k^LYGR2lWM+;bWMOE8uF4WaqoIL0x++5>14AT@^&r<68XFrUiGhVo%+RegG_^$c ygrPZx^9?ObG0d{GFheum$iTt^ETn)GA|}S@jx{nhoP3yjDu*7!Z){+M zCSzb?WR5OmYKkFbW@&(~$^uiPr75~9Lj!Y5gvNTXYYdGH4H04xA!8GCD-BJ|(S2cP whT(ieb7Ks%EX+*Mjkh#20|_Z22Z^yEx?_!uEhl?&PvJB*FyK;Eb@g`x0F3lW#Q*>R delta 347 zcmew${!DyAKcm^i31Smhn{0f-$|+)Os$c*D3VB>$+Q7)bbn;(L^LisoBQzNU6GL-! zAyX3!Au|gDbX69Z8ZAxGRT&zXSt2yngI!~2WMGI8g9sTLqg!ccVutPuLsJar8=4zo rm}OyVf^NK}sToK}5jjYVfgG^qh)^=Nm>kSKh10~+fJ;@?)!z*O;;Bdb diff --git a/spec/reference/w3s_clip.pdf b/spec/reference/w3s_clip.pdf index 23da9b5066abf41522c68f307fe7d38064c853da..b9f678de4f1468f4c7fbc734422dd7f020f0f84e 100644 GIT binary patch delta 394 zcmcaB`CD?r1V-bD6UA5z^%Tk{E=%MD(Oe*6G85SVG8rvOAn=@8)(##pf8%@-J1 zIYmtkjT8((Kp~F{OdA*(8%=)2Wl?Wti6&uSW@&;hWMPCMWNB)SrpnL&L!+UQA%-er z6Eh@@^&r<6nwVQ4iGhX84AHGLG&e!_grNn7^9?O6(akb4G&V#t-pI(<7%ZfK6e6bP X=#DiqGn?$dGnK>4oJ&>J)!z*OBH&Uf delta 370 zcmew@c~^461V)326U8R3Ntn1Mjz63$kIPU`!2pbk(kJ&a#%_Mk$igXVVqv6U00Ihm zTwvP3$jEXs2e(DNu_c;>fti^Jx{$dghLEL^Ihra%0}PFZh87sAj1A3@G}eP$V`ySx zfg}bNGPOXr($L%x-4liu7|u7eG($Jb$k4zL&3Gdt17om|0#b;WnxH$@$jo?h9M4n^ MV{A&(188yFc{OwQu6s5df1 zlQ1wfF+&$JGsh6JFt9{dWr?BD(7+5`m7$@f1(L>kkZTN$jSY~*z(OWw=vEqX}0h8Ct6W?5PoqZw~xU||XtQa}n36C-rT8krhSKEOSd!_bmTRn^ts4FIXXNss^l delta 350 zcmaDZaaUr(8b;HJYo#a4F-lH+Rw_Q`6(kC zr-+fUf&mC9Mab=Bn-?AOwolbj4^~P%`DJV85&|}G&C~8P-Sdt zj-;_3l{^%Tk{J2Fa5e7h3N-aM6&jZ?(fSit}U6!N&hw1JV4>E!iX z7WI|}Xc7iyhNkF3<|Y_I7UmXcstgSE7~M)k zGc$Bg7@A`^-_X(!-7F&mQzJCvjSNjqz(NX0A!1^Q?pPyJi^;4!Q#mXwxKveL{oMdz CIZ7}9 delta 350 zcmZ1@xkz%t8b+guYt<*$F-lJSv~u$TMpjM{BVz>v5KzeD0@DUYMkbSYa#_?{7@$cQ zm>HO&3z-{Z2w9j}ps6x6z|d%DXoR84$kZH3V?D?D3`~sBj5jhgF#!uHAccsD1-fH_Zk^1}GnK>Kf=gA^)!z*O?^#HP diff --git a/spec/reference/w3s_fillText.pdf b/spec/reference/w3s_fillText.pdf index e8fe562b45c4a1797dc07489844af0d8fa2e8706..6f22adb921db8d869f31d048b18c47a6be045f85 100644 GIT binary patch delta 357 zcmaDW{#|@RKco4?31TdUdJ5$em)d~ojStv3MNEwp3_w63j|)s27#WyN{>5otZ){+R zCSzb?Y=SOiYK9?XW@(PD$^uiPr75~9LjwylgvNTXYYdGHEf8W5A!Ac?D-BI7(0yTO whT(ieb7Ks%EX)njjkh#61_>!52Z^yEx?_z@3?>I~PvJB*Fy~TLb@g`x0L`3A4FCWD delta 347 zcmew^{#JZKKcm^i31SmhTW@^L$|+)Eq+kF73VB>$+Q7)bbTSKp(%#*4b6=( p%(5^uL^s~j%orr3h#Vxw2I!78GPax?#XW`7#L}EgRn^ts4FK^=M@;|# diff --git a/spec/reference/w3s_font.pdf b/spec/reference/w3s_font.pdf index 6c616c0ff0b6b739002d54ee8b5b1b90b5a5e177..10280a0e2b9009ac95b43ca408ef16191ff33a6d 100644 GIT binary patch delta 357 zcmaDW{#|@RKco4?31TdUdJ5$em)d~ojStv3MNEwp3_w63j|)s27#WyN{>5otZ){+R zCSzb?Y=SOiYK9?XW@(PD$^uiPr75~9LjwylgvNTXYYdGHEf8W5A!Ac?D-BI7(0yTO whT(ieb7Ks%EX)njjkh#61_>!52Z^yEx?_z@3?>I~PvJB*Fy~TLb@g`x0L`3A4FCWD delta 347 zcmew^{#JZKKcm^i31SmhTW@^L$|+)Eq+kF73VB>$+Q7)bbTSKp(%#*4b6=( p%(5^uL^s~j%orr3h#Vxw2I!78GPax?#XW`7#L}EgRn^ts4FK^=M@;|# diff --git a/spec/reference/w3s_lineCap_butt.pdf b/spec/reference/w3s_lineCap_butt.pdf index 0f563a8b29fe8f56a5f4d8afc14a645ecb62ddd9..f113e1add3f8d00e3ff6afdad48ee430e9e28184 100644 GIT binary patch delta 361 zcmbOxu}EUVY9>qLiEC9@4Gr`Z$|qj1f-p97GO}@sTAC^tfPg|C7nn9MGBh-rtiokp zZ)$`lV_;%#jxJ5Ke8kv}wO|Ige!eMH_rK;-c?*;%m CEJ(@# delta 349 zcmZ1^F->B^Y9mPkYGJHk00IhmTwvP3$k4!GvH_QQy@>&ujDd-n zDY}rUC5Di>kp;Rc3rvlc7U-%B4GqnaG}eQhV`yYzi6jOVGPXds($Lfp-4}*t7|u5| sH^VT?(!dDKcq0P?6R?mXQji#%pgY#c#MoqV8}}3rV+$@-RabvE01baevj6}9 diff --git a/spec/reference/w3s_lineCap_round.pdf b/spec/reference/w3s_lineCap_round.pdf index efc37724def6a701a05166c2e697164c4cbe93f7..9c87299c92dee47334de18e12e6bbe7df7a07ab7 100644 GIT binary patch delta 361 zcmbOxu}EUVY9>qLiEC9@4Gr`Z$|qj1f-p97GO}@sTAC^tfPg|C7nn9MGBh-rtiokp zZ)$`lV_;%#jxJ5Ke8kv}wO|Ige!eMH_rK;-c?*;%m CEJ(@# delta 349 zcmZ1^F->B^Y9mPkYGJHk00IhmTwvP3$k4!GvH_QQy@>&ujDd-n zDY}rUC5Di>kp;Rc3rvlc7U-%B4GqnaG}eQhV`yYzi6jOVGPXds($Lfp-4}*t7|u5| sH^VT?(!dDKcq0P?6R?mXQji#%pgY#c#MoqV8}}3rV+$@-RabvE01baevj6}9 diff --git a/spec/reference/w3s_lineCap_square.pdf b/spec/reference/w3s_lineCap_square.pdf index 40567c22c015491196a9c9fd66f60fd9506beb76..ebe8269c896a3a4c8a0c163485040a070c05c945 100644 GIT binary patch delta 361 zcmbOxu}EUVY9>qLiEC9@4Gr`Z$|qj1f-p97GO}@sTAC^tfPg|C7nn9MGBh-rtiokp zZ)$`lV_;%#jxJ5Ke8kv}wO|Ige!eMH_rK;-c?*;%m CEJ(@# delta 349 zcmZ1^F->B^Y9mPkYGJHk00IhmTwvP3$k4!GvH_QQy@>&ujDd-n zDY}rUC5Di>kp;Rc3rvlc7U-%B4GqnaG}eQhV`yYzi6jOVGPXds($Lfp-4}*t7|u5| sH^VT?(!dDKcq0P?6R?mXQji#%pgY#c#MoqV8}}3rV+$@-RabvE01baevj6}9 diff --git a/spec/reference/w3s_lineJoin_bevel.pdf b/spec/reference/w3s_lineJoin_bevel.pdf index efc5dd63f8bd7bec0d1222b796b96bb2c79503b6..3cfb9e7d570695b1f942f2614adeda8f0de59390 100644 GIT binary patch delta 361 zcmdlau}@;c8YUxyiR)BY4Gr`Z$|qh7g)la&GO}@s8W}4XfPg|C7nn9MGBh!m?7(GS zZ()EYV_<4viY{bkj3H!hW`VBC5<{b*ff2eYLqk(@B#reT=NKAUSR#pmg-ndltu!<> zMfZiF8HV!>EetTsvNSP5Gv3I+!~`s)h!iBo7U+&OGBG!qJdJw_hq(ops;aBM8vyDP BNreCa delta 349 zcmdldu}NaW8YTmaiR)A*-U!)j#K_7iYG|ln00IhmTwvP3$k51QvJaPey_p4?jDd-z zF}jeM5r&YtsTsN|3k;2h28QUW3=K_8ku=tWoMUKYZjK}d7BVqJx6;tm1l<>gW*E*l tG`GYs%hK2Y&3GdNV2^1{Q`0jrCyX7#bNGBg7y=#wO@i8k(4+ zd&AHS!}*5h#u#Qi4A6JtYk#~K-1T1@uhp3G@#V8o@W>gw+X03XOo A?f?J) delta 349 zcmew){!DyAKa-i^#EJ3~w`pyB#>y#bY^q=Y0t$ItVA{aQz|?3Gms!1$r4gEpfr+6x zx{#>}hLD+s0lF#+OpTT%=&B42%q$Ta>%p!uG%_$mh(UymjnS<%G%-W>g`p{i^9{|7 tFwC+rH9 zMfZiF8HV!>EetTsvNSP5Gv3I+!~`s)h!iBo7U+&OGBG!qJdJw_hq(ops;aBM8vyDP BNreCa delta 349 zcmdldu}NaW8YTmaiR)A*-U!)j#K_7iYG|ln00IhmTwvP3$k51QvJaPey_p4?jDd-z zF}jeM5r&YtsTsN|3k;2h28QUW3=K_8ku=tWoMUKYZjK}d7BVqJx6;tm1l<>gW*E*l tG`GYs%hK2Y&3GdNVc5O_TOyJAcjq&{D7l&{EzA96B)wBd`E963akRMNXQ?U!I?z z^X@Rc;`#^S9$MvUmUo zRw8d36he?HZW|Lx6@vFw$+Q7)bX!27|i+VE)GzkM^OJj5) zQzHx^GgC8kRpyu)Ee+9C85)?FB5AA#xyI1Y+#E>^EM#nmZl$4#3A!f?O);ErXl99F nmW8nay789AMqnWYq!2MOM|Z4|vDsv6?x`GRW?ZVOuKsQSu(3xB diff --git a/spec/reference/w3s_quadraticCurveTo.pdf b/spec/reference/w3s_quadraticCurveTo.pdf index 533bf60ee775c1450ad20abda990a7ed7cb0a31b..95326b6ea9da12a7b035672bef6693f859b2c0c5 100644 GIT binary patch delta 356 zcmaDV{$6}SKco4?31TdUdJ5$emzsd-jW^ghMNCW-3_w63j|)s27#WyN{={isZ){+Q zCSzb?WQHzeYKkFbW?_l0$^uiPr3tz!Lj!XQgvNTXYYdGH4G>}wA!8GCD-BJ|(S2cP vhT(ieb7Ks%EX<72jkh#21qmr42Z^x(x?_!uEhl?$Pvx+*+gRLeoj7 delta 346 zcmaDa{#1NIKcm^i31Smh8*hBf$|+)OqF?|53VB>$+Q7)bbn+ig^LisoLo^u!6GJm} zAyX3!Av1GJbX69Z8ZC{{RT&zXSs*mlgI!~21aujg1$UpJu`#-ph9+j{zA!Y!aK53r q5r$b7rpD;TTbi1JgcOm3#K;oeu|~!glY_XYa#&b$sj9mAy8!^3R7c$a diff --git a/spec/reference/w3s_rotate.pdf b/spec/reference/w3s_rotate.pdf index c0517fda92e6a732b133a454efdbae4ac5e66949..be1e59136ae8f20ba30ff073553dd8c67b8a2420 100644 GIT binary patch delta 356 zcmbO&u~cHh1V*EY6UA5z^%Tk{F3SYdoB0^oI7KWi6bwK>A&(188yFcHPS)VEs5do5 zlQ1x`FhCbFGsF-wH!((6Wr3m5(7*s)m7$@r5t7DwkZTN$%uJBPz(OWKw}M>?cd?Vs;>TS0DDqL AmjD0& delta 346 zcmZ1~FLP4Cfn~ rn`4+|X<&|Kype%{C0IxSDMXA-(H(1KVm!Hndn$*CF_)^UtG^on+^t2; diff --git a/spec/reference/w3s_scale.pdf b/spec/reference/w3s_scale.pdf index 7dfa41de11dbf0ecfd60e9156e44f76b564a87fe..c08baba0026fdef6c0ae9223b487d4b0eed51012 100644 GIT binary patch delta 433 zcmeB_-XlGsU&hqffXmK~tGJ{nH8GdVK+i~_oXbGLoy$;9p?u=9XbvF7WdvgXkK+W1 zahU*#$uW$H5S|5yw}&wite(rz48)aTN@M{k-CV=O$|+`UV5(pM0t$ItVA{aQ)W~S^ zbZ+x{Gb1z^0}BgtG$BI+LkuB9Qv-BWMwl8+3^7!h8e1Z1tOq&A(9GNrNenDxVSr(! zr7?yt3^1H;WN3+QmXWcM37YXnCPrppAw{GhF*iqdtdWJO+2pr8Q#i~FxKveL{oMdP CL0j1X delta 384 zcmdlZ-6=hxU);pplFQDHtGJ{nH8GdVK+i~_oXbGLed6lq$pVZqlgk(rCO-gTZ>EIJ z8<A&(188yK0G8%{pOZC-C^h$drTVQhvjWNC&jWN2V%iKfcX2t%Wx zu_=Zs6AKF@jrAbs7@8RwAc=v6%uO+@w6MVNg#m{1jSNlD%`!4FH%2qw$k^NzETo7O bB<6zhK3j#4UJ4NR2iF_AZe@zImgh{zzj(YEM#VaZl$5Q zIl3UC7SU@MrMX!Aw{GhF*87StdW_e;p9l3DIAujT&k+B{%!#I C=32P` delta 407 zcmbO(^;L4h1SMlbE;~D};*z4 S@|JtKv3E&~O3E<-&9ATrQXC`zBWJ%Izr0JA4+ zGbV9EI6bP#_tHxnzTsDYV+0SGAMae-+ABV!}u$*SDu^=8IsG6rTA7U)72h8RMY zriN&$3=J?e8X6g5s4_M&K+;$ba*m;ixe<~WSjfx(-AY4qV{~5_T3|Te(9#m!EF(iB mQ#9j^jEu~|LW)R1Vrq`=SR*r2^U2jbQ#i~Fxl~nM{oMdjbW>aa diff --git a/spec/reference/w3s_strokeStyle.pdf b/spec/reference/w3s_strokeStyle.pdf index bedfee227b8e4eb20b5260ccce22549f9f3d9f90..d12b2bed7f56c3a8be224032c8a5f0024ce5ca3f 100644 GIT binary patch delta 360 zcmZ1^xkhrr8b;%ZYt>l{^%Tk{J2Fa5e7h3N-aM6&jZ?(fSit}U6!N&hw1JV4>E!iX z7WI|}Xc7iyhNkF3<|Y_I7UmXcstgSE7~M)k zGc$Bg7@A`^-_X(!-7F&mQzJCvjSNjqz(NX0A!1^Q?pPyJi^;4!Q#mXwxKveL{oMdz CIZ7}9 delta 350 zcmZ1@xkz%t8b+guYt<*$F-lJSv~u$TMpjM{BVz>v5KzeD0@DUYMkbSYa#_?{7@$cQ zm>HO&3z-{Z2w9j}ps6x6z|d%DXoR84$kZH3V?D?D3`~sBj5jhgF#!uHAccsD1-fH_Zk^1}GnK>Kf=gA^)!z*O?^#HP diff --git a/spec/reference/w3s_strokeText.pdf b/spec/reference/w3s_strokeText.pdf index 3bb348e5baed6a2794dbdc06b1d3679b323a88c0..8a8d134559946cdafec3e907d798f9bd6267f33a 100644 GIT binary patch delta 355 zcmew){zrU5KcmIO31TdUdJ5$empX#!jZfJ)MNG{V3_w63j|)s27#WyP{?BPqZ)k!h zVPIlxi7sSnh9P8bV1%y90#l=<8M-P%14~0BjrAbc7#bNFBZ+~9j7`z4G&He5_k^Jt uhVu>0O)$)|FgHUt-qPFxETn)GBF0AOjx{ndm>kMImBY}8OI6j?-wgm;iAlf! delta 345 zcmew({z-g7Kco4?31SmhJ8b;G$|+)Eu3!KH3VB>$+Q7)bY%(X8MZJLunuLLgktMp2 zsVRn#nWYiBDho`FmZs>c3=J#{ku=tWTw`ctXpAHV7BV(Lx6;tW9NiO!W*E*lG&jaD n%fieI-FQng3$Ty^QivEEqC3{e*m80__f!r8BQ8}{SARDEelbSw diff --git a/spec/reference/w3s_textAlign.pdf b/spec/reference/w3s_textAlign.pdf index 66dc7442083432caa9ddc4dea58a2a5e9ba1f8e2..b0413156db6a8b6c78e2f92cbceb325151b168eb 100644 GIT binary patch delta 469 zcmZ1|bysRaKa+{^#EHtu8no$!)L}v1PMl}|Y8Jk6zSUE+_3=I?vKtLgn3rrgrnHWvh z97qT=$7cw+3HAPcpXo#WF(AW?|m5GT7lE!+FYYa`z&5*>vLgt1T zR$7>#d&1BX!}&%Amgr^~85vok8E<54YzP)oKnf8vb9BcVnVU^+;hD-|X3C|i>gw+X E0Q3-GT>t<8 delta 379 zcmcaBwNPq8Ka;Wf#EHricgjwD;5hMt)MQsi)rk)jCQo5h0P$`xYJw7?>Lyp$l17ZRLE zd^2Q@G z&=SM>Mh3>{W*Hfp8=)C*WMpmv5>iAC5;H?|#~PU%O!nrP!f9b(!KJF|>hA^sjf!Q$ delta 380 zcmZ1?^+IyO1V+P&6O|_JkePVTaN<45$wrJomc--&MmZ3*fl&!WePNW}EWyOWDQaSA ztY82F3VB>$+Q7)zaIzt{dA+Hr0h)|~nYk&tkc9z;kfpH&nkqvB42_0{mKdsxjm!}m z>%p!uG%>YAh(Ux*EzzwsG&e%`g`ow8^9?P{(akb4G&Djp-pI(%1SF)093-Zu=#Diq UGnw4ZGlkRK#DYsz)z#k(06sHQd;kCd diff --git a/spec/reference/w3s_transform.pdf b/spec/reference/w3s_transform.pdf index 4f60970cc5d8778ee49148f9ec65225505f442c5..603edc24cee92b275990ca94f3350d232fdeb1ee 100644 GIT binary patch delta 442 zcmew%IZJB71a&hDE;~D};*z4 S@|JtKv3E&~O3E<-&9ATrQXC`t#h%O`G15Ge<- zfI=`)L!jcxQjAIBAO%3ZAPFE7ti#9@DA&%I$^w$x{F;%CQ`E#*!2kpl^0>gXfswJ9 z!DKdWvwAb2AgYvsInV$!Aq!IsAxjGjG*yO%7#a I)z#k(00sVAcK`qY delta 408 zcmbOw^+R&P1SMk=E;~D};*z4 S@|JtKv3E&~O3E<-&9ATrQXC`zBWJ%Izr0JA4+ zGbV9EI6^vO#YQ#bQ5v2uzUSSlERfI=P@m^LsnHZq&6!EIJ=YG#HeWngA$h%RJd zgdt>UYJ#T9&;UcDp^+hmDq|C4gvNTXa|}()O%Y-cAu~gCD-F$!(Y;}4f#G~ZOG|XK qj0}w|(2O@SGByASDItf6sX4l1jm*ppCfD&y;V?7dQdM>JcLM-q#Z)2y diff --git a/spec/reference/w3s_translate.pdf b/spec/reference/w3s_translate.pdf index 552b1ebb62a00c08d6f78a629f8e79505087053f..e8b19c6843cb3c2bf7fd3201384a1abd4af30902 100644 GIT binary patch delta 369 zcmew?(Jnb*0;AEyiQ>$93gr`*C2|@9X)X{knT;`#1;p5##>mDgVriye00IhmTwvP3 z$jESV1D8d;sWF;_fvLF#x{$d6hLDAcA-XC{42_0{2I#5`jf@SDG}eP$V`ywTS0L~{%tpET3 delta 350 zcmZpd{46nH0;9piiQ*I2#!nVwOxRq_$jT{VZl+)W0t$ItVA{aQ&~ow=E{l3&V>Af^ zQ&S6cAu|gMAqyizbXArZ8VwCB&{Y{485$sItOvQq(AdNXNenDxVvcU5p_u`?Ck)Lo uoNs7hhGCYar74>6Mh2GVU?Byh5HT@9cdU`A(d1X$Q#p(cxl~nM{oMeifk;XK diff --git a/spec/reference/warnsign.pdf b/spec/reference/warnsign.pdf index 0fdd858c218ebdbe389fe1f4d12546eb9cd329f4..e1581114d61a232b7b40b24ebeabacbaf8bf9ab3 100644 GIT binary patch delta 479 zcmZXQI}XAy42A_#hX%yP04!OMm@3G{u z8;K~O5hX?W1HV?zUZFDZ#{x3YxYCOF5$GE26S%k*5s9cg2~q*^zaP;$ZkCKHPTgB- Lm1E=aY(4(~vRh+k delta 425 zcmcaEHCt*zKa;W9#EAxzwHRFmgSia#6b$stEr5ifu|iS$WKBj7X`mPc6{T|-8t5sM za~UdRaT(|tDYygW-2{TcY!DxWftuKu>^FNev2co-nwTgUfPg|C7nn9MGB%r>!fjD+ zV2CDRU~XiFE@WYfA!KP`iKfcX5JRJ(kqL$>W00rdPN@g63{4FUki@`3W+v!X8k(D< zd&1BX!}&%A#^`1l8JZcR8E<4{W(pQkKnf8v19Zn4nORQW#WRJ|+|rUuRn^ts4FH!4 BRto?C diff --git a/src/modules/context2d.js b/src/modules/context2d.js index cac36e263..aed662a55 100644 --- a/src/modules/context2d.js +++ b/src/modules/context2d.js @@ -1605,7 +1605,8 @@ var fillStyle = this.fillStyle; var strokeStyle = this.strokeStyle; var lineCap = this.lineCap; - var lineWidth = this.lineWidth; + var oldLineWidth = this.lineWidth; + var lineWidth = oldLineWidth * this.ctx.transform.scaleX; var lineJoin = this.lineJoin; var origPath = JSON.parse(JSON.stringify(this.path)); @@ -1665,9 +1666,12 @@ if (isClip === false || k === 0) { drawPaths.call(this, rule, isClip); } + this.lineWidth = oldLineWidth; } } else { + this.lineWidth = lineWidth; drawPaths.call(this, rule, isClip); + this.lineWidth = oldLineWidth; } this.path = origPath; }; @@ -1995,7 +1999,7 @@ sortPages(pages); - var clipPath, oldSize; + var clipPath, oldSize, oldLineWidth; if (this.autoPaging === true) { var min = pages[0]; var max = pages[pages.length - 1]; @@ -2023,6 +2027,8 @@ if (options.scale >= 0.01) { oldSize = this.pdf.internal.getFontSize(); this.pdf.setFontSize(oldSize * options.scale); + oldLineWidth = this.lineWidth; + this.lineWidth = oldLineWidth * options.scale; } this.pdf.text(options.text, tmpRect.x, tmpRect.y, { angle: options.angle, @@ -2033,12 +2039,15 @@ if (options.scale >= 0.01) { this.pdf.setFontSize(oldSize); + this.lineWidth = oldLineWidth; } } } else { if (options.scale >= 0.01) { oldSize = this.pdf.internal.getFontSize(); this.pdf.setFontSize(oldSize * options.scale); + oldLineWidth = this.lineWidth; + this.lineWidth = oldLineWidth * options.scale; } this.pdf.text(options.text, pt.x + this.posX, pt.y + this.posY, { angle: options.angle, @@ -2049,6 +2058,7 @@ if (options.scale >= 0.01) { this.pdf.setFontSize(oldSize); + this.lineWidth = oldLineWidth; } } };