From 76d3c7cfb14aa842ed1db554af7316787fc727b3 Mon Sep 17 00:00:00 2001 From: jh Date: Sat, 11 Mar 2023 19:56:23 +0100 Subject: [PATCH 1/2] fixed small mistake in quickref --- docs/img/04_align.svg | 6 +++--- docs/index.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/img/04_align.svg b/docs/img/04_align.svg index b3661af..96af631 100644 --- a/docs/img/04_align.svg +++ b/docs/img/04_align.svg @@ -1,6 +1,6 @@ + width="250" height="120" viewBox="0 0 250 120"> @@ -10,7 +10,7 @@ Start Middle End -Auto +Auto Middle -Hanging +Hanging \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 0d7edc4..32d5ad8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -604,9 +604,9 @@ d.append(dw.Line(140, 90, 250, 90, stroke='gray')) d.append(dw.Text('Start', 24, 75, 30, text_anchor='start')) d.append(dw.Text('Middle', 24, 75, 60, text_anchor='middle')) d.append(dw.Text('End', 24, 75, 90, text_anchor='end')) -d.append(dw.Text('Auto', 24, 150, 30, dominant_baseline='bottom')) +d.append(dw.Text('Auto', 24, 150, 30, dominant_baseline='auto')) d.append(dw.Text('Middle', 24, 150, 60, dominant_baseline='middle')) -d.append(dw.Text('Hanging', 24, 150, 90, dominant_baseline='top')) +d.append(dw.Text('Hanging', 24, 150, 90, dominant_baseline='hanging')) ``` ![svg](img/04_align.svg) From af855bec5e8c153f520070c1ea4c423ca042020f Mon Sep 17 00:00:00 2001 From: jh Date: Thu, 3 Aug 2023 17:38:15 +0200 Subject: [PATCH 2/2] added new section about advanced text features --- docs/img/04_inlinesize.png | Bin 0 -> 4920 bytes docs/img/04_mutiline_text.svg | 8 --- docs/img/04_shapeinside.png | Bin 0 -> 23474 bytes docs/img/04_shapepadding.png | Bin 0 -> 22333 bytes docs/img/04_shapesubtract.png | Bin 0 -> 39360 bytes docs/img/04_whitespace.png | Bin 0 -> 4804 bytes docs/index.md | 106 ++++++++++++++++++++++++++++++++++ 7 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 docs/img/04_inlinesize.png delete mode 100644 docs/img/04_mutiline_text.svg create mode 100644 docs/img/04_shapeinside.png create mode 100644 docs/img/04_shapepadding.png create mode 100644 docs/img/04_shapesubtract.png create mode 100644 docs/img/04_whitespace.png diff --git a/docs/img/04_inlinesize.png b/docs/img/04_inlinesize.png new file mode 100644 index 0000000000000000000000000000000000000000..6195c610dcb6e9159e40ec3fbd706fe11b21e8f0 GIT binary patch literal 4920 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 literal 0 HcmV?d00001 diff --git a/docs/img/04_mutiline_text.svg b/docs/img/04_mutiline_text.svg deleted file mode 100644 index 5c6125a..0000000 --- a/docs/img/04_mutiline_text.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - -this isamultiline textgiven as alist -this isamultiline textgiven as astring - \ No newline at end of file diff --git a/docs/img/04_shapeinside.png b/docs/img/04_shapeinside.png new file mode 100644 index 0000000000000000000000000000000000000000..48ac536586d3d23bcb8cb4b43ee57cedc39b6434 GIT binary patch literal 23474 zcmd3Og;yKh7cEYKB0)m&Hn>}HYiTG>TOc%ekV0`Q?pA^qr)Z&Q2qi%R6fIsTP~5Fp zi@VFq_j~L84=*cOSu?qJ=FZGL=kBx5K8b#ZH4jxt(uJ43g z+-YN?Bsg;Fi%WGE!9-V%fYfO5&tq59dO28kdeS1gg(Q*FVr4W z;bV$FCs}KWigHFU;;BCl`PWka8?VG$S+r#~)Hi?i}+(^>Oy&9H{Y z{=AI1oX5uGF%5*1ot^zFV_&h;vzORcxitkpcH6#>*#NsW@ks_57Z-`PyV^Hzpt;1Q7kGgDd~;G|0f*_RA-5-^(miIoovn2Y%cpAZ;%hI zyN4fN-oU<8UE`e4C*_R<>U**tgkO7eiHK(mXb)~4>-nGU$apR``|2qSXU_%NCcPPi zBTAfJyo{tG_%YgO;!F-7(U zM7@eNp~E4Rp}Zh5!puU%KK{N>-ub)FuOz-|{A8X4^%2sWpr&i>#wH0RUGq;v$IHc>2Kw z`r0vULUs>(%PA)(CR)CcT~e|TJQvCsAb&eys_#jO)!@)-kv7Q zAo;!)6j&@^$LR4(eFA3+f671a-12)mM3S7GoN4p;5+A)SN!id^QnImR)teB={%%Zc z_W1@15kf-4b&`#}+)#ucEedqt@=IM?XQmcWggus6_2WfC1?K&g7jr2J0OJdI+t#e#~jTWg(xHKR3L&ga_O2?K4gdw`$*hDS3Up8d@X*_df$9y*cUW^wb*pK9g_D5KI=t>4{H?Mw z5cIA_EadTnAc7nMM|M!~zlEmrMpKD7rLRx1hDlAsrS(_JswZwWlm`9p!K(bQKR32L z^@A{&HcS8|=c>~dbSor(xt3yE9k>grOK~ z2(#_)VN!t4(y;cBWBSue=LKzSa}oex>70^i2qzCWVEEWfdj=Utfo)6l495`!D)r0r z-tA~j{-TTZCsNqmHtpaql&)c$zKNxdx-S{9!ysEW5%@MwlDDbwxmuk};dAGf^8D*d z9~d{RcK`bR*J2kLy|ezIE5wOlZyRgSe@DKm2B%|8$@sA?@#eJykO;qNfvv;5&D+?{|<8q`*MG4#XGSL{7dc$XsfJ*lUsM*@3| zLWF*kS2$iA4;o& z8Mn8#hBW8$;`-VB5`FT#gC^@I+_1kt?@4598=r6Vxc?Z<&AjEiIA=GP`lj)zq~y2J z@$nB5A}zMVd8*dz(JbsVy1O{fsdmJ?_vYzCGomP1zB_Fo#bQLgcBaom0qwEJ8-v-* z1V40mv-Q)gC6HdrvU;y@6R{8<7N^=8uSP3rGT9C z2I<;StO|b2A~wG=DMvB9U;W%tVq9=qcd+xxqBO_7-`j3ZpWIrzgZjOrqY3r~8@{rN z>7BC~;`>??#~{9u@;sa<9;f72p2GF#j~_pJj$z6f`|P1AWmQ#6rjUD*xFh-f{@UGg z8?d#gz}XZr!p~{;OrP{Q)eYk#VNev-SuEsZ6w}Q$`>FIe&~Kkl)mRC_Bb4jjEtC}&0{IN)4Wa79BfyO4HUI&?l!CIdu{DOGnV+b zoFKi>=g)#6rfc}E(P~P|Z7wYO&@jYT|gxA4=zc zx>dJtSDGtX_x0U73jVJx4VQuSc>DOO)|!4sSg-Q{yRZ;C6P4h%oyfa*+4ehBb-D-2 zH{onsYIIlOpI2<{KwBAMs>{ZZTmcZj)mBe<2$TNluG-?D$jsSY`)0c-;>x!J?M+}) zv84y9#zRS=qz|&@xc869iO#yYe(B&k>rcpVnkBMMn-tk0t^%yDjWQSiSi>Yy+$i9g z+nzKotb}(VybMv7!7E1s0kF zoP4}an*K$}g1AAGSrzo|tA<@UOC1rTGvoHxFm}h?_fL1lVe#(sa#QBPf${s-Z!cQ! zGxx7KO_x+wQnVd#uqJ5P6URV_v#M?TC6lgTa)NeQJ3@dsO9Mwm|F z2mG?Dq;$lQ-(9>px1gK{!<=C1Fx%x9%a(vkH)Y=eiz7>Jyb2iQ`YN>21>{Nyj1BUH zu`D~otYG@KLrNXs<##ZNU(feQ0#&4p)0Ag;X0MuVz`rcN6!o zHLqLm3-_;WSF-xnuU=b{lQBi>FW*Gek_hb%CplS=Ylgm{IlFApl;eKl4Xhk z%ZOaEGrM7y^`(s7zowa2`2OLo0`bI=VUYv$In~1sdr-Y!o|MJ{OERAS_x)p<(V^J& z=p#V`GPp;`b*o6;7sNi!FrG17?H+n$BA})7^nUJHS@-!lbe0}k^M0LxNw(u1g0X60 zG5VBccljm5j~t@*C*Rl*6%C-P#M$xGsrj};hmi=0M1R<=>AUBUiR0#!(7Dj-A?ejP z&H;#*M0KC605{A}>HxLrYu3MkB>MHk{*mD8i9}S;*9kD#@~7T>IJGSc66hKYpJ%&= z4Q4YU|1qq8C5XbE6v+ODSfW)k7W;uo_-zkp^p9?ipOO3J)C$~ok$ZTd3}&TD8Ua-Y zF*w4-I4z8)-SVGOQI(MM)v);Fy(OEMvmMH58pf{gxa&e~MoUe#EcX^3fA|a% z+@9sZjrR(F4sSIiLuKvdRMcCF%wQcHvB_%o^3#aA9VfkIMa_awMl>T*RGj9Byj1TAm!5=!9CuaMi~LWVgm=9CN?6tvJ`S$VwxoD@N>#oTQn8kS zy;#hAj({Cg(W|O}&m5SR!svrliyC`aAoWx8$*@okxMe z%#s9w7g)fQauqcCNB5kiA^I~8yzlXsk=wbv(|5r=SpvbpB=SGeplT%irs!*r*OTk$ zK0Iy^NXC(%j-G3S%6UlzY@j}^w9|P7sut9rQskP|r%kFvMNUJaHhqt=zRTwU3bB73 zG<)`eJ2tKpQB|cxEloAud))kaA>blW#o8!zm=EDcDOqppwCo9JGyx0s+I+9VH~EIB zPxljn1d>RTW@n!?!{r4)^s#+P;59d-%*}Om{=3aafR7sZP7t&S({AoWkJO8^U%tfK zhxh4$+>7Bk?4WwfI4vKx=@%54S0GWj#NKql-&Hwh7R1Y%H1H8*w;Vh z1NgF5sO;c4#&|9U#|=`q31J4br;n03_PRWMxDRkhzGf33^1EwBS#)kWxpZLgRJ)tfsx z?b6uIrHn8FWavF~<;v`vIxhsa2%e)9M9ND_Y_1bt0?UEGEv|y>DlrmiK@S54GJY(; z;{tI@Nk}YgZO{wV3e-|)g1fq5!ClAA{4slFtN1STd>NQyk{|>A}Gb< zf5`Z>jGF7CP3@pQk_~ARn@+F(k%GmK8I`(!&0XxI`4;{9%!2Saip&*~$f|&OByOWs ztex^z@{}yT`jjqfTuF^(h9ZB=S_@3Fo%4*eBfN?`OLGkME9$Wx>Md$|GWhw|cc8!vA^6&3fUO|OD{yTw% zbn)<jt@Dx|q#9Mfu?-+KZc-Va02`kzbH!6LLr_0IJhJz4tr$>t-^G5%?28DIZn&BUX&4 zfz{ZmUZh6JE6=#ZNe!j%EOd1GS zhAfAAfoaJH7{Ul!j7egz4r&pKX`fu|wD5LJA%W<0L6kU6J9v|tkNdOt?xE+Oo!f^5BwB^D3yW*IfRW`eHoY>&A zxHYB~Oz!U8{#zIuVIJSg>|S`JYxMqHgdL8Cz{a#WAB{q1(_*4r=QisUG^-AP4`mX_f;=z9vT{- zw1c(kJHPExXX*t2JrpB}KnXv--3meDE^g6T`!dt}Pw~j)TI3DnZkgW~H?V_xzu)Xz ziq?OWo*V8Yu>1Ps{;a#OIm~o*0+b)~*>cr)u_9A`rlHp9pNO6RuY`cD?d|%L!27ZP zIE!aSlCZ&cgTgODyOdAcEd0S3^EJ!__l`%SW<{){CemW$=H(JMMj?uqu-8G!g4{t8 zr7Jgd_^f`(MYB&XOpTns`qoUN>}OqP$&XBYKOu|)(jt&a2`E|1mUqvGu3a^mE$hSJ ze#;q7+37LUCv{|)k(_jzQ>yf@P96SinEn z_T%R&-hX8~R<2{IM}*g(t|b%bbvmgl(~`MXpJiK)knh1u%1_fwsA`1!a}ie- z#_PQg2sO{WZ=vOnK`+48fq)s>ZOtp3ZGMgK!TYZ#sx0U7JeCs6wyx2&KlkMLh?@8f zQkoSD1l|Ly7Rtvx%4q-Nj#}X3>&KVJ2sD1{mh3{{k`lqT!0p@ql89WS`k#Dp@S2sQ zGd1dqM-b<-14P^C(-m;?d9#tSQ7Y<})I`gyRfI)KO23_l$m3AedE2+kG=R&h>w601 zapQo&P?N8*;vo88%3swQKF_|?h=8TkPe3{)^6cX#nUxvo*rxq;(rL&@+16616*lPo zG+9v1pM^kJ$l#8Tg|6~HE94(<+~Cb*$5~Lq*TV10 z;mS7YEkVTe+NUVi!88M>6i?U!|Dl}KpYrSx=5U37ciOt&D0u6Xc=e|~>r_+i(mEde zNuwU9;F+)SNJiu_5Ii3Z)J5w<$Q`au{`KMwW1~pxSK;)}?i50fu^pKAk%dDly+da9%z zpUqbIIK0mcP5)9l6YZ({8B|>j*8(Q_H}!0t=@}belOCjIcf6s~kL)B3gMC5dJEB+;$$U)a2o?@Xib|Kp_M z5|-_kdT|`e>{SHEy>ahYi3|?qs|wR%`C74VO%*567EAQ>&yX|}jpopWI5f(WF{fh$ zyUX7H7q{p@UbRn#zO&XBM103C%1@l+NRtNEhj4XB!@d*-DyuL>3GUpMC~ug)vlgh8 zPAhi_X~E84LB0ixTn> z#d9jhRE%I`88nKJnG=+e$ShOM>-0iQ3`i(HOvcT5&*fxH`X-5DK>MBa7cA%7|G%zX z4S3QGx*6O0MV)v-6!M~2pzO{(!=-^SEp{4ogG+emLk^W(wdG^O`RKsoXA_-H_ zRzDA9?UVvm_a7RI+1Rn+8?wOq?(k5D>Y+0o4_dCBMn7~MXLTaKOOsgI+kaZ!z)Wv1 zz@^Ds9kjGX)q$S+s_ae=QNmvZ63G_v~7Ro8lR*3X{KP z$Wpre26knq2$y5iCHh$WB?Q37HSNKLQ(9oj&a0QUr$KTnp?68?37fDW3QAH-Y3kSmi5DYwby(mewdB zw@~mRJ`rN;liFgz^zEU+hueJk&4aQx6ROzw_U$6oPEdm>#CY5iTqFflU)6*J%A{kY z2bCLO=R4xFx+is2a>K)r(}@U=t=I)J2aEHLsA-o26^`LqsK)^VB-iZkRaZaV()kkp zncER8?fGoA!U&e#vAt+j`qpxd`vM)squzJa4_zb|75(VbN*P*d+m@b zK-56X81?D(-#&(bnsR)YK*^0h%3kH^h82*67A2QYI;SU?LU}*c+#z$CJ;5jCFOAzIcjPATR^3bZLl!U z_+|eU9kAt?9cd%pH4})bd8fPfo7nOX8|<*4P`MyC&B&NFmRAut{h$fcUFd$+#XPo` z`QlNCXYx|mgpbkFU=zVj$(#+J9*$z za8t{*g+o5=g(`{fw&@}k3l6#3(StFO5(0!li~~#b6&C};SPHIcZ4Fv*zfoMj(AOf@gq#!XZMA>9ZrUf|TqEyRNzqsS9}!rGz(B{! z5aOc5VrpQbm&uBRlYk_anCTYaNUywB_xKLg=L{LkUM(ut}Z-EXI6MV{R5@SXW#}+ zQktCW&dS~~G99SfBtD-zym`)(SLt7t`9>LXD;n9&G;687qkU|Ej)SJa6utC%6YoF6 z1IUmdkc53!z>|G?9^vLg<;xE!qxpB4&P%jNmtEFnR!F>LzA}0!T*W#gqPo*YLwZIy zhh}V1q*ooe+Um{om=+sN?okx{9{xkoLrSL#_${E}H~L<`PwkidOC(Xty_! z%ys&s2Fp1RS0!+h@W`N`S75VtP|#u|c>`_sD9s|7OYP^1hwwfHd$(qda;gt9bZ`EH zLysqe525I05&@!L1~fuE5-v~BgZt<$ud3-Y#vc=#>w5XOC4899f}RFVRc1s@<6mSq_@9WuDivUD<17CvH@fmDma75m=jO& zof1yhBLiJV{F_<|>$`bAP!4wG7>bITpmfgjt!|wwEQijYz})pC%W*6&m(pyUd;iVV z@4sl@NCWA<0Z0e{W+0IK19=x4Vy}B@CU?i(gQSl#D+xuc%M zLd3A;7(P`J1TAI9av%&a9AS~GJ;g3NwGoz`7F!Tmt88}pvv7o;219@N2E~0hmYU*u z!6V#j!7?dVwpBkuF!h6#o6m2qFrAZY07E;Nd|Leb6*wKv##E6s`MSe;Os(c#R*Kw) z2AO~G82K-&$do~M$iF~aNAYrv;W?GOI5ro>QjUWgA5&)0xB*km_!HrDp$is%;ak>1 zJ$ly8>|@ATq<^Xaaq4>cf#~-lLK4fcjBT)Fqy)pTw%dba zL6SI+dknAjED$tm4yJ&=ABmjvADQ1rJtJaC>ALz1zY!`xnt|NEWbeQ$PE83Oc3H1p zcO6ki3pxw(?35#1@aipd#|68friLxn1=#3hthWJaWrdBi$eez2=I2n6oPV@*18RW)8%Milf zDW=u9Te336&`tC<34#+fHJ;Q`%84gShch(AY+-V%0C*(j!IFtJr zS+5r?5i+3pbLr)W02xMyBQ3p&1(U0!>E?oz(4?WoDs+?$yQ9rX`qN<&zwz6^BKS_I zwi)5071l5OriQ9GOz=L3>6<$8(BRi*D(NKCv|*)Kh8`*N9e=X6i6z^l2?rAR0vzDD zI5z-tPnokd{{;xv@@O;T)$05}Wloc1jH15}ntt}v$H^)!%!+-P4Rl0wHhT4_>He%E zEA=pPT0Li@Uxuo}P9bCh@wWF{_b@8Mvh?TXaTU%$0-I7$`IwH}ZiRd5%o|;AC^lz1 z2lN>|ZVnjvMfiFmR%J~ENeOeA%RWiY`2s^&c4 z-zj*I4Z2kGm4hA6U^;X5YNo4GIp+^o$wFL;8kI_{^-uRfV#NN3H?-S3K?F3S3%J`a zu4OU9(tyhcO_NH!%op*~`(k;M6b__kbKE}%*3tgGy=EW77aHRWJa_H6DkF{V!)1nd z(Hlq4c4X!8a;gxNsz-O9P)Z0{O|Vz@-l{o{lABjxSe7WKeNx!k+G+r~_Ro9!?Rgf( z8U2|e%sd{F!KScx{1*;5btWc$)4g!8i^D=GG`qi-fu zIRDsFS1nK0l)QU}kPv{FnuGt-O1)ue#zW?p;M#eAcL^DM@e`||3NY)*n;BP|v#4D9 zs+#zpyhi@H71BK0G z8*uvq-5`$%BP3PU9sn-&jJ!N0Ku4P1i>B__ghk%B8x?y?8)|2Tf4m@f*I5kMM=E2$ zQ;nm98QWdo^HJ`Yk!H5Ca(3_+-zO3t%mD+kn;l|3Q$Oja+Gyy2!aUl{WGFfPu}~b_i9HFrRMg9oer~UB=jUqqn)sK zjxLr?iM~Qmp-|NAx8&Ip=~%b_?^`8iGJHIsup(pI?TpXbnAhxg0j}xq^1z-;&1DjZ z(<#VR6oL7nOmg1cftW8xMDt&mYE>zqiuIOo&%Ju0;e8s@o~A^x&kjCuk%fN?C;aO_ z8(B%Rn&w0r@C8wMrO@4_?J;Y_fuRTLyU+=o3};N66#lfB|6m6kxHW)qH$6c6H{1y0 zoj3jcQqX|4uj%}HktYjXu5%!<>9iVZ1LFWANWT5*)x!?ZD}h**r3Ug?pzfOn|Lsyc z#!vmd=ePI&#f(XlhbfBCUnLxF1NWmwB6Xi0j>l$pxL@2CldMPPSISy!^VZU`#RqxC ztg~zkJ;~dbTW*i2&iHDmE5J8&sk+R29-K(Mi!3nY7B(_tjkTNLPghFqH&Uv0ikS2A z3bhJQb4Z$IYur_z;^teQ>~->I-p-Gm^ZhCp)%jkq=$hwewT&vwt^ZGNARPY8iQ|5# zeH^-2C3?!zo#VeX9EBMD{Tr3Of9+E2dGjWU{Ex8p(4Ws#RMcV#{rIi7UqT<2)}tOr-l8(~n5;yzTI1JD@%&#)_6)rv z7vNc56k3`9RjY6WQ~0Y%wHFP4{C*TnNbt1cHnqPo^Yv~g6j{xQHkzxP4qt#+L<)8O z(PxRtb#W0$m;!LTGGI-}U2;JgjigWS*RY8Int(EOoKW6-j`&6qy=;)R2==- z?-spuWiPNXtvzzBrqyuH^~;SlG;+iY=rMo4HBR>z4{I^4Uv4{U*4fF0|6KtAfr|<|N-JzRN9C4D9_<@ltLoos$x9$%&t|e>wmAKv1+CyKU_*{!o zbU^A09Y}8Sr^Vck!s3JSYgS%RH`n2AqC#_}+ z64MfdVA1IKRS=iOi}Uq_ny2_45yp-1Z^Z}2h(*BMnf!*xhJ{2CVcBVMpep!7XSe6l zLniemg>)rKljXa3(#k#c(50w^*k&&Vd$aAis&XiAE-SCX;pzw_XZ?lm%=7qD4ejJZhL8!7Ick>N zCm=Q}S-)Z`(vX{%;Imh1lvSI*BWfwW0)^XfQwoC3z>6JOMc!7qf7SK4N;p!*Rlzov zLjvU0yelTu-1Pb|wg*a$VC!){%pDI@oB8k!a*c$b~7Gr{W|6fk~c6fK6z&#g@gS0@}#AI#A-1 zE}qB=z+ijO=8Hdr)p%eP)zv}(OnXz8q-uK|;b$s$7E42C=M=i#&Z<=-4h_l5?Cca; zaz*N0TQ3`lKA)o?%cp(Z>=pTKBxdhg({?EUa7hF;19KD@Oy)T(ZMI|3jU(-(9xSu|9(DFscvi+MULpA7)#ct53{Rje%4a2@?O2){&CEWoab- z2^7XQb$>``5WhslL_YhOLSWip>_Gta*!K0Wf2-@E?D`UM4c|p2m&#L@tlw(2T=^o| z&pm9H%%=ZBt=6U!;eG0v7k{@wM~_N!I`(cr&FEqCT%Ua8AAa~)j>IK${f`FJ);z+F0 zDf;xSc8}~hF-#(zE@Z5ZhW}yAvelSKQ1nDCtJm2L!L?JO{sdv}1j6qt+$7QNMJpf3 z8+QKVZhE=@xv90SZRS@*Is8r09~4%T2dU(VDn^W{SgSfFZw{lQ3Z%HSEZEQ1|odL`Or5VLzkA7wdfE zp1e!XhK5SU7cH+%8gCw3tAsr$ObQ9~eIiNi!z#GH&YLNA^Z@y@LEPZ0AO53a#2aEm zErD|z()0R773AkCgc6*jKQF?xsT0jLzR+%%)hxgH+A(3WYJQVOK%+A<(<-R4{cy}O zp~B5uuKYpyNg&5xGGO)bvV)eO7DOHk0H-SR^UXRt8N3Z-BpFP5B(3WlM({O>Sw7R z-Ps(-ypf@%fk?cE<>lq-oH({d+8tH@?ieTUra?=BG4Fo8@0Nm^oDF|J%sieKtx&VzXc75Y(xiXdU39b% zq-ix+>0Jn7`Sz+J5uwPz^{h$wZ1SF3@6RP7UTmu8+stDm(K+dX^&>)Tif@7SLiVR* z{k=1^HUg_X5m4_XiPUY2?P*FZs!EIu_65bA3US3_7!HyUt?NfS5#+QAl=JlQ23y}= zJmPm^2au@#*3bRo%rs^32pF~d4st7&j(G%3{>u*u{OL58wDIV|xapc|$2+jF(kd++ zD-;wK#VXU-cil&91dJ6wHzI zhJ;L=ARPCETdV7XoB+j@Fj|I>-r_KBvcyp5&NkEM9|Pe~pqm!&746#%DgmAA z{`Or^^<#m`ZPylhD19tRUC!L*BLSX8r*A-NTi>1M%(2}uM#S{ZRpH~X!y+NKca<@O zR3>;0pxGU7fV4}u*~5B^qvP8JMWx<933bu%8|L@z_IYy_!jYcnEI%uzCa;Kal+o(2 z$R?U@ghCKO%#Ce|iA(0|V8~M92fKjzv|bHmu)&D+ z?vV47I>vOk))Pbh$K;cpS4h?bnTk)C2>q%=>55OA^XIvY+ZkUB`H-)7#nk1+=YjOg z1k(AFH*^l^dr2awq+a_M>l}MNxE+02BgYTxNbZp=uaN*Or^vXi$GAPEJMk~oeD*d8 zUPGFAEDI#}gnmwh&^2iEq}C?n+mpxI&?VK9M3PUYSwES0oeEM{^VI0TxM-+p>gIn| zb^moC60pCO=w{h|L3tydp!-7kL*Goe{9AeBsZUv0P{qD$X+-g~^;Vcpu$$o)qw=Ux9CKJYiOs=ke?tCJj11LHga>TOgr|?uN~yK#gKQ_^vaKh)v*-r+$*cF4-*6rXt~a%I*ar+G&3o5?HnjNF zQDl4x5voaU0D3i-or*^@u?wmTWI zOalG0u?Dx*?+)c!e+m4!ixlD)q~%JAiKw6a?`hC2KcovVlBiHwQ-$gsaBA~9zrkho zTwv88l{Z2-D8R&;l|-LgCoWK>oy7%#6tmnqn->PXU?dC)&) z$_sv|)A}d1yS!;0bN^K29H_YsW49S(A=L>$F9n)9ZmCmSKFaCt6}ZET<5G{Ns}vK?XF{E)nWLCJcsDA=@fzoQ|S9tWc%C?98GYPLkXesgY_nq`sn;WUng6 ze(?eMP08HmYUZF+Y+p&H+BQX|$8Ap>GqgTRNb#FMoy=pr@9(ueb-AJ8^amz{U>#bsMp(~YGs`IHe)uyO#rn}y?May{`v zWvZlCAvp*yU!P>GjsaU`RDrEt`!qW{n=xAbWP)qu%kywEd;_cwvm9RnOQ0!didZNs z!PWy5m+TkKy^|50vUeA&n>bZ#?u~?DY9|i*ctGGN{ z$s1H1#o+VxS}c4;u$Y>sV?kkL*%m9v-Fw#S*}626IK+w1O)))lah}&1=waJGGnQ8K zq0!NJ9FSDGAYoeLvnM%l*~rhm8@W#xl^tByh)~SI2)=$oF>u`cubm7ux{H^|i6Q|y zH`K6yW;d0IUDNUc%&3CTcsVCE?nXlWIX!wVhMMX&c7oPTVq&^o|8RHSs8jIoz9%QcRzj^meo%|8 zu3N=Ek|H%Cx+og-!}S(mCrEn!D`E*aQzZ=aaq$%BXx~L#sWV+lb%9lgaq_K{%PWtX z0yHf=<_KssO!0kQKwP5Nm|~(o2_^o_x>be9(Uuy6C4XcM;G^KU-sM}iNhjT*gKmR@ zfEmu}Yi@+m=Epbpa2&irOz*SR!9t@W3p^fZt@Tx}y&9XLq$6q>^BHs9~auKV2c|x~} zVoo`_yb0xqGAri+uT?=Gd}`nu`~bL2LoAxWrdFUiU(2$7$$;Eb5oR=UFU^-VkoWxk zCV)eTXMm%BNTlHmlirZwPp3Arlt(mLo32mMcZ`5WhKph@o|oKDKrcjo)+|`6*MQfo zA>?U6lRqLPh5SOuL6ZvWe~EfwX*~ZTg;skCwKgd%-C| z@}DLIpSY2@V)PPMnq-=ahTN1@FFcRfL@-jt@;+wJ&XB?Xct5H;=zIT!L7@qDmG?&x zw<(DI7Ih_QC~276oI7;B3ec{!;70U2 zAh(K&W>C;8A$&pRTY_o*JG5FUHw@I|O?MGLg)`K(7f+7zF->gDnq9~Yzb8BM7h2f~ zASUancM)y+PImr~6{}R>!fM9JMw4@dP7VX_PqA70!7&W`4Gi~|_98I)lG6Rs!D{Ya zr)DQmDBbHpCFjp6k2yu$tF9xLut?QAg1-ziL9uh2c?3-#Evt|Aac-^b!emC|QGO(w zK1jKtOA@A7Duyt)S%SxTTolynZg2Qllt3ntB|1cT)6Xf zdml!&es`3hiP3b{oPEx3RDkI|J0dW_%Z{F_sB&%S@UnLQ{6B54Wb1xgGKS^wmC6K) zS*pRt0`eH70Jg?T`o{++NUy6%2|2Z52>e)p(I2MN`Zg5i&x;wih2KnUqJt3YYQQ%Q zA{KM6Q1GJr-cICX!w;-seT~@5Q_~?{Qa$XFh$5nr`3hO6IXKu;Phl>T3ba zC)cg)T7!N=!Q@Fi2n66uLz8J5kLe_>`ZytN99@Ih!e$pGP}T4g{fV-ml_>Q63#=Ij zg*sq_2B!odb{I|JmRfGtFNg%Su>=mR?kb)|?kxWC1H~@qF1b+*Hwl0N9YUwEQ; ze{lh~vbThu}`( z%_T5N390|Ar-lv%a`X1kGKJbpWSfI0+hvoMbSF?GbQ<8@v`=lql19_u(1Ke6R{oLJ zv($;aG!muXK`X-tj61AsGQcsq`QlR{C$su>G;Zv^+WW2U2PzK6BomfXsJCm-;@3ml zOYg8nBzPz+J)MaWRL83JWDmP&Y;jXIhVz4cW-+vnQ_t+tk~-jz_@%Tn=dY#QMCMD0 zF$scEgPNp`EKG#++_De%S?B$bGVXeE_R^Fvc3UhnK%!3Z3`{|lgv*&K0nqDLlq-M9 z3)19%I1)@C@C3x!tDrY=Z=t-&hz7+qzm70M20y(K+$toS zRIw(}dPzRZt?w@+sp0R{aY6^S<^^2Z$@OnjgV)rSm-04?7oTbug0drUun1%{Krwi% zNIj+J|7sQeE$1T#eH5W!gCC1M6|m#v|I^EP|FiXnZ9GKOD4NzPHLFJLQEC+xszz%> z1hw~wO>2kNDs5?NkJe}rv565Qs>FyY8hf=>v1t{xpYwg5|Ka&1za*cW&w1sX-1oWe z>wQ%f?{%~NQe32mwm`i?Hl7HPb?*Eh@1>l*-mQGe+O9X&44I>i zG+JN5|AM75kMCP4vfkJXWz$)XJrSXcP4k#WOI~QP6lX>-hl6n7e-y6g6v7ty_DvG{M@u`&Kt4fC9mtk_W(edxUwrw0AxrK^cXlM%GsqFK-B z)6N*V!>T=qjg}m_vqu_kGa^;9@-ar2|7^!74@Rr1MqB^zAE)sl9L03>3Xl3E8HKd- zP6|4_tCZbaAI?KbJ6zGUwsG_RLf-qljBjapicYA_90WA3-RmCe#ERZ@|FE>ct1rp( z^Dk}c>(NGIZ4*!VZ%-ba-WzQwoD?w^AUo1%?U>m&P(rOsPzJiapB`MIIfrnm4Oe{Y zsv6knW&jEc;(hcb8V&uKjFgnPY@o>S#Pr;^eBQyywpsHH6HRgA!2)fe%`;2^jp2@( zbcf3OBEU!sk?~t3RLESdc@Wn%)YqpcOcxtm6O$4RR4mz>^A0Uy%+ZAn>8HTTO*d>} z9wl^sqk&0Gw?|ci*h26Du$1oPWl~?C=>Ou^G5KK!Tc;C6+2Ux7A5sc*_W9#Sp!xsL zPn*?8+1(QiSS~Xup3V!m5Cg2*)GHI!3vmQyAUYxL6YjtH_fvr3-ixV(H+p{70(|EA z5r6stc7POdXB*fKaMGH0-tmbDmRhXIDI1v+o^kMz^4Y)zHF435~91DH{c^{fY$R6|h9D7#o zBk3-s<-(S1pq5Q9)JpMc$Mx$>}-Mt9g@3d7}#%r{*|QLzmimGAc2!SW3?R(Z*(@g&(ZAXVkjxhORnc&=l4^8{NSK$4G#=N zlEEzT6E?7T2dYbU+Zl zLF7H7rQ&W<&aDdO=6W0sr~Rp={7p!6;>#$2qEq^Ia4H?KU{_l2;-G|gti`U${-$~n zAr*9Z2CHv?|7(Fttm%}r**SGhE9_@qcmnaheKDEBGjuNdv9$C*<^M4Nbvp@o799^! z?;G9j1=B0W5k1(7KD=0Oq+&M}DaYn|NE+a<26%PcsbN!O>E!;eT0fbQ018;d(I59# zkMr81LKEto#=86Km=Y1k_W~l2GNZx4Y4$Q)!O^S2ST#*8vsJA#;GFN#V(U$rR{8yJ z6BE_j$7hs|ZRxqWVXu}u=2Jp6oPZAEhQ9E~q?h?0kF1;gW&FrJ`!9=+1^>8_9C%*# zKo%IDKmtYmU0kWoHvULFrT07IWE@;47W=nab+aKQU81q^Y`y54iq8X?*!eu2+$Q*H za&{MBB@ZRGOOfY2t;l!%G7_3|mll_woy4ugL2_o8#=dbULfG2CjAawXj>?sOzejyP z=ly6w&eon0pp%2nn=dnXG+5a!ybUD$zF#uLt@FG$fxQ-LYkfN7ftaM%aqoVZ;8u)( zxo=S8XJm6Vq0{UBj8n)TCSd^4=cMWK&zBIvI^2RX7R5sv85jKUpGS3@H!aeiC&t*W78cl6NX1U3>lB#0TMKlfWzL!-ZDnL!&EwS#qP)hh~HO$ z6xF}_Ji^laC+c|T{1tpJ25BV*4biR-!6bsTTmx41nQ#^S zLpM&`i~9W0&qG(>_XK<5?|Xoosluq8OHABbKOK&shV+=t?VUA0{e>eaPbb5iRoHcv zkGLguh?~`-FxY?nN^N4^W~i-z$vmcTjfb63Hz*a(Uh^n2^3)_>0#n)aIDCHN4f>}{ zPo}mk)w7{l3fRi_U}w7pGH|n@ofXe6`ZKZ5lW;w2^0Vb+*$>>8kJo=3Cd+V{wV!dR z4%^h;!4A2zo2;y~lLsT4?x{6ipQX7521ePjdv@`iBO-4pQ*;1&{Bc2It0VdJ3y&aO ztP@%Q6ZXL3?ZO=VS3~^mdwh|9+W_!D8}LH#qP)E$ya5yh02x~^DxvHjlax2OD`QnX zDnB^l4ZC$&8E+NFr}sBpM@JE$m@pTGF6H`tziWv4X*d3A9lPz?6uj$LC~sWuRA!fZi40*=lH^xn8E ztfhI4@wXa+(3Z|;V5HOvRKF7LCOn-E!tVZx^dz$x*%F<@dSphZ6ObCv^{)S@P}fu?`o@)gdWsQ~f!>U;!%Xagr~rzl$7RFd zhFT`fh+4_QSKFI^`A~24(E+gI4Qi?8#n>KTH&yIuBOV=u!J)f9Yd~vjYf_(lY&CS` z=lvJ(uu}TOK4Zbwr?SGW+nvuEd7%BuJosjQ54TOvLS+#_)v=c@531g6M%ts4e#=Xg z(&i3~Om)2TsyTG;Odda(rTO|BvQN)54E2$7Zys*VYOu)LvD#Q0VA_>t$;%7^i3D+Z z%47^^pr;7cIwf&n_Oy9I9J2C&);yo~h zt*kA;mejCL(P9TY3lt{owl~wFIrOkJ5s)$8FXW`2gS}xPkvY-DUN!v~yEn6}n@M}; zsJv9f%A-473Zjr^YnW{?V-X+07MtKG&h+x(SeSTwWA3Sby7Ib%7Epy*JCeoK?D;cGFIaf`Y zqoUnAo~eI3-sqxt;|kpTp2I0HB+?&^?#Xa}W)$a9Ys33E`BHRn)Avi`PIAgQ`r{4yoUw%`co#|Kr}5ql1Lcd^U1umdhOE37hsP zHImHeoGx=0Ab$Zw&3-~35V3=@LkTDpCH9FS=`xDVg9|b9k7=NxT)Fx4#RP>^oeUtn z$;r#0dS7jOwqbLXfxVRrk+^+K0hxU?%FUP*G4V+3V;(tUZ9*|FvSJbbfj8q_;8&u* zpU>bA7R%PenHLuVwH4<+V>4vf@)5PuP}T+&gh~0IGM2UCeX6@&0UW&L*ao_39~LI2*pvJ%=*($*>;g`-Z2Q9_`94j+C; zUR7YKJ$E5~Na^5gYr6p4W`l8ny!Eqhkq^qG;(V~MU-fz`ZoItsDtC}mQucXT_AD_+o(-NDlaSJMCf~&zO5VIPsqD;lq4&B zU^VgDY&0CXnIb!w=pLYwA2ncg%+^UPhFjE(?^EsEhRzu?1G~L%Po*irp37v(w^z~_ z5-rVVGGGB%GU>oit`YK(68jfAiDPC1KT>OWpeAa((VTU>%Z^Tl_aE7P7)Wl!aX5cp zUw)z%^cO$uOs+&5bK>0*@$qIPZyJ-k{5k7o}j(-;ac>5@TLHs?5nh}&DJ99lv zFPwhq_z?us$PN1|-}L0xPNKUYbkmn!aH08NEg!`E0w%}-3DpX6OD79B;NUmS$HvET zbcDg)EU#1EhqZ!590CU7)O;IN$OT&0Ellf<`hZn9BU=8`_Z`a*9T5(X2Ygs6Y_zqt ztsF)_>ds`N_9F@c9&ad`rfRRVeM&=D%a7eRLlo!Dy;o7 zTPSZ+y}wwA@~U#GE8`456KtWceyATLIK^~(_CS@FfG3?uL78G6rRIeUkG+)_m3lCaYzTU)UHG-n z6x&f#tpLborF)zu@XhA;5~2J>>-?E}OI4ELT%(E`V_4!m^=jomC%r-J#@hRANR*k^^)^CpEb?mtQNu|I6+puoyXjrG&*1CnQf1$7F6d=C9cjsY163z+wk&>TbDL z1lHfw4PI{2@_eZN3{8Uw3=GsUFc>@q9mREjXB;?`k+Gfv06$N6clTuA*SdSt^~+<% z-RE3T8?XoMZ|S}hU7nKa`TSJ%syVjhT>7b9&WmCkYV38CKe-z>iy+Mmqmw~2Li|xH z1r!9RNqZmrCGg_7vi?Z)35TbD*Mlic5X zg{Xi`H~)Uk%b{$lLw9dEYzE~X6gXC@Gnk@%fjhPH8|Rp0WoN7*Se(Vx)yeQ$fM_kr zJX}p8qF7o z9gJQmIyn&~TGLmXE$!Y#0V})+kwMZ#F+}Ry z)B#};5*?F0|APBqC-*`NeCqMrAM&cDL+pn43y-IzGXH2Ur{z$!y{2@Ww;UsuTcqEy zI@g^>f{OXyY#9htANn6WYDvCX4fbo~Cf@MLJr-cHJ_3yBaKS72fMJ2M!A?iGp0WO{Q9BYyMN6zfxOjxPKv#>MzfYp8)C(`j9miuf} zj{}x{K#}}5sQJIanm07T70F1iaOen`q?Vodk%d!+ABeFKMSZZ1e{}Wdpg^YJ9Ar`0 zrg8q3LQN}DE?Z45|G_!4W+Nrk0#-Z{v8#rGS$bWdZf2?T!_9Nnk5dHFS(>nlR_e z_F2i5JRatR(lxe&4=A8{z2Gy~8q9$92XX!U{m(mpcq5DpIoD@3!x4a#d7bD;Qd4#B zp&}RDQc|)2E=N~2d27%^>MX~U!zaEo~DQ$I`|oGQqZNLz)RI_??-J2+E@Izz1`qm9->h9~6oQvd93kyC5^X+ZI}j^iHq(IIjeQCBYp1gx_3c@&FyPLr*(^oKvX!hIkYg zlIjg`*?)1CbIJ-;C`s9g0PVhzZ3)K0GXTBOwAWOsI`P>KJ#B4`%~;VtDTxsXYVNOJe|R8f4>pYlw> z`u0^*a$q4P)Zpk~`+V3`I(Te$_EBxf=5!3{gva#`hiQ5c8&uMHIj%R0y^~nB|Be9OK0e)@=zd9_h1%~LS}XMi zUp4iUm_*w$EcVenpofeM`(w6BW6a~RjRM2FFNd7vp7M8|5L>L-N`{VA^ePU6LE{#1 zc$lwQ*@CBYsP0 za3MWKnnXfag+z}EuPZP=y@nVEO=bno(5^OvLDsXBsSX;zp&9x9xQ$uU_n?+ple?sQ z_jrYF5QxdF9CVi3=5)HVIxtZlYXCN2BU#N<)YaAb5MS~H7f{G9a@i_+Ae~ulOj6m+ zaBkOmT6#HU)uG=<4L+@~f9eHN^Yd;465cLd{##n8FwEbl^4S!&`=nOcEd9 z_U`s#AE>p#24ZZSTuA+L!dHT+J|vzt!}O-i|1J1``RLE{h7C6rt6XbCAa5IVUkAt? IxoaQ$Kh_=C{{R30 literal 0 HcmV?d00001 diff --git a/docs/img/04_shapepadding.png b/docs/img/04_shapepadding.png new file mode 100644 index 0000000000000000000000000000000000000000..9fd49845ab1bc3ae7fcabb323706668d3a357078 GIT binary patch literal 22333 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 Cy|*a< literal 0 HcmV?d00001 diff --git a/docs/img/04_shapesubtract.png b/docs/img/04_shapesubtract.png new file mode 100644 index 0000000000000000000000000000000000000000..6d5b96330c881e8d3f1740fc31a79cc3d9dfbd6a GIT binary patch literal 39360 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 L_EvGjXKwg^GBX;& literal 0 HcmV?d00001 diff --git a/docs/img/04_whitespace.png b/docs/img/04_whitespace.png new file mode 100644 index 0000000000000000000000000000000000000000..16785c1c609785d0497c21580bcca00736b30127 GIT binary patch literal 4804 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 H*S-G$X0=HG literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index 32d5ad8..c20fe50 100644 --- a/docs/index.md +++ b/docs/index.md @@ -775,6 +775,112 @@ d.append(dw.Text('Some text in Georgia.', 30, 10, 115, font_family='Georgia')) ![png](img/04_fonts2.png) +### Advanced Text Features + +The text properties which are described in this section are currently (drawsvg 2.2.0) +not provieded by the internal rendering. The solution for now is to export an svg file +which is then rendered by inkscape. + +#### White Space +White space is preserved with the `white__space='pre'` property. (See [W3C](https://www.w3.org/TR/css-text-3/#white-space-property) for all options.) + +```python +d = dw.Drawing(300,100,id_prefix='whitespace') +d.append(dw.Text('white space not preserved',14,30,30)) +d.append(dw.Text('white space preserved',14,30,60,white_space='pre')) +d.save_svg('white-space.svg') +from os import system +system('inkscape -o 04_whitespace.png white-space.svg') +``` + +![png](img/04_whitespace.png) + + +#### Wrapping Text: 'inline-size' + +See [W3C](https://www.w3.org/TR/SVG/text.html#InlineSize) for details. + +```python +d = dw.Drawing(300,100,id_prefix='inlinesize') +t = 'This text wraps at 200 pixels.' +x,y = 50,30 +d.append(dw.Text(t,20,x,y,style='font-style: sans-serif; inline-size: 200px;')) +d.append(dw.Line(x,0,x,100,stroke='gray')) +d.append(dw.Line(x+200,0,x+200,100,stroke='gray')) +d.save_svg('inline-size.svg') +from os import system +system('inkscape -o 04_inlinesize.png inline-size.svg') +``` + +![png](img/04_inlinesize.png) + + +#### Text Inside a Shape + +See [W3C](https://www.w3.org/TR/SVG/text.html#TextShapeInside) for details. + +```python +d = dw.Drawing(300,300,id_prefix='shapeinside') +t = 'Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.' +x,y = 50,30 +d.append(dw.Circle(150,150,120,stroke='gray',fill='none',id='wrap')) +d.append(dw.Text(t,20,0,0,style="""font-style: sans-serif; + text-align: center; + shape-inside: url(#wrap);""")) +d.save_svg('shape-inside.svg') +from os import system +system('inkscape -o 04_shapeinside.png shape-inside.svg') +``` + +![png](img/04_shapeinside.png) + + +#### The 'shape-subtract' property + +The result is here not completely according to [W3C](https://www.w3.org/TR/SVG2/text.html#TextShapeSubtract) +because the justification does not work, but the `shape-subtract` works. + +```python +d = dw.Drawing(450,300,id_prefix='shapesubtract') +d.append(dw.Rectangle(25,25,225,175,fill='white',stroke='black',id='rect1')) +d.append(dw.Rectangle(200,125,225,150,fill='white',stroke='black',id='rect2',style="shape-margin:25px;")) +t = 'Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.' +d.append(dw.Text(t,12,0,0,style="""shape-inside:url(#rect1); + shape-subtract:url(#rect2); + shape-padding:25px; + font-family:DejaVu Sans; + text-align:justified; + line-height:110%""")) +d.append(dw.Text(t,12,0,0,style="""shape-inside:url(#rect2); + shape-padding:25px; + font-family:DejaVu Sans; + text-align:justified; + line-height:110%""")) +d.save_svg('shape-subtract.svg') +from os import system +system('inkscape -o 04_shapesubtract.png shape-subtract.svg') +d +``` + +![png](img/04_shapesubtract.png) + +#### The 'shape-padding' property + +Again the justification is not correct in the inkscape output but the padding works as expected. + +```python +d = dw.Drawing(300,300,id_prefix='shapepadding') +d.append(dw.Circle(150,150,125,fill='none',stroke='black',id='circle')) +t = 'This is a sample of wrapped text in SVG 2! There should be 25 pixel padding around the text. The text is justified on both sides. It looks good!' +d.append(dw.Text(t,18,0,0,style='shape-inside: url(#circle); shape-padding: 25px; font-family: DejaVu Sans; text-align: justified; line-height: 110%;')) +d.save_svg('shape-padding.svg') +from os import system +system('inkscape -o 04_shapepadding.png shape-padding.svg') +d +``` + +![png](img/04_shapepadding.png) + ## Gradient, Clip, Mask