
    Bh,                         S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	  SSK
Jr  SSKJrJrJrJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  S rS rS rS rg)z
Draw text.    )BytesIO)ElementTree)Image   )RasterImageSVGImage)Matrix)
FROM_UNITSTO_UNITSffipango)get_hb_object_data)get_last_word_end   )	draw_line)	get_color)stackedc                    UR                   S   (       d   eUR                   S   S:w  a  gUR                   S   n[        UR                   S5      nSU;   d  SU;   a  UR                   S	   S
;   a  UR                  R                  nOeUR                   S	   R                  S:X  a/  UR                   S	   R
                  S-  nUR                   S   U-  nOUR                   S	   R
                  nSU;   a7  UR                  UR                  R                  -
  WS-  -   n	[        XX)UU5        SU;   a  UR                   S   S:X  a  UR                  R                  * n
OeUR                   S   R                  S:X  a/  UR                   S   R
                  S-  nUR                   S   U-  n
OUR                   S   R
                  n
UR                  U
-   WS-  -   n	[        XX)UU5        UR                  UR                  UR                  -   pU R                  UR                   S   5        UR                  R                  UR                   5        U R                  5         [        XX4[!        SXS95      nU R#                  5         [%        XR                   S   XU5        SU;   aF  UR                  R&                  nUR                  UR                  R(                  -
  n	[        XX)Xv5        UR                  R+                  5         g)z!Draw a textbox to a pydyf stream.	font_size
visibilityvisibleNtext_decoration_linetext_decoration_color	underlineoverlinetext_decoration_thickness)autoz	from-font%d   r   text_underline_offsetr   color)defzline-through)styler   pango_layoutunderline_thicknessunitvaluebaselineascentdraw_text_decorationunderline_position
position_x
position_y	set_color
reactivate
begin_textdraw_first_liner	   end_textdraw_emojisstrikethrough_thicknessstrikethrough_position
deactivate)streamtextboxoffset_xtext_overflowblock_ellipsistext_decoration_valuesr   	thicknessratiooffset_yunderline_offsetxyemojiss                 F/var/www/html/env/lib/python3.13/site-packages/weasyprint/draw/text.py	draw_textrH      s    ==%%% }}\"i/ %]]+AB%gmm5LM,,
>T0T==459NN,,@@I]]67<<CMM"=>DDsJEk2U:I&ABHHI++w33:::Y]J 	X!	# ,,==01V;!(!5!5!H!HH]]2388C?MM"9:@@3FE&}}[9EA&}}-DEKK##&66QFX!	#
 w11G4D4DDq
W]]7+,##GMM2
q8NPF
OO k2A&A //((@@	##g&:&:&Q&QQX	S##%    c           	          U HF  u  pVpxp[        U 5         U R                  XxX)U-  -   X:-   S9  UR                  XUS5        SSS5        MH     g! , (       d  f       MZ  = f)zDraw list of emojis.)ar#   r$   r%   N)r   	transformdraw)r:   r   rD   rE   rF   imagefontrK   r#   r$   r%   s              rG   r6   r6   N   sU    #)Q1V_q]):aeDJJv)T: _ $*_s   ,A
A	c           	         UR                   R                  5       (       d  / $ UR                  S   S:  a  / $ [        R                  " UR
                  R                  S5        US:X  d  US:w  GaX  UR
                  R                  c   eUR
                  R                  n[        R                  " UR
                  R                  [        U[        -  5      5        US:X  a:  [        R                  " UR
                  R                  [        R                  5        OUS:X  a  SnOUS	   S
:X  d   eUS   nUR
                  R                   nUR                  UR                  S   5      (       a?  [        US[        UR                  S   5      *  UR                  S   5      nU(       a  USU nUR
                  R!                  Xv-   5        UR
                  R#                  5       u  pUS:w  a  U
(       a  [        UR
                  R                   S[        W5      *  UR                  S   5      nUc  O[UR
                  R                   SU nUR
                  R!                  Xv-   5        UR
                  R#                  5       u  pU
(       a  M  UR
                  R                   R%                  5       nU R&                  " UR(                  6   SnSnS	n/ nU	R*                  S	   nU[,        R.                  :w  GaY  UR0                  nUR2                  nUR4                  nUR4                  nUR6                  nUR8                  R:                  nUR<                  n[?        U5       Vs/ s H  nUUU   -   PM     nnUR8                  R@                  RB                  S-  (       a*  URE                  S	UUR8                  RF                  -   5        O(URI                  UUR8                  RF                  -   5        UR8                  R@                  RJ                  nUU:w  a  UnU RM                  U5      u  nn[        RN                  " 5       S:  a  UR                  S   nU(       a  U RQ                  U5        SnU RS                  URT                  URV                  (       a  SOU5        US-  n[?        U5       GHs  nUU   nURX                  nURZ                  R\                  nU[        R^                  :X  d  U[        R`                  -  (       a  USU* W-   S3-  nMf  URZ                  Rb                  W-  nURZ                  Rd                  S-  nU(       a  US   S:X  a  USS nOUS-  nU RQ                  U5        U Rg                  U* 5        SnU(       a  U*  nUWRV                  (       a  SUS S3OSUS S3-  nU RQ                  U5        U Rg                  S	5        SnO-U(       a
  USU*  S3-  nUWRV                  (       a  US OUS -  nUURh                  ;  af  [        Rj                  " UUU Rl                  U Rn                  5        [q        U Rn                  R\                  S-  [r        -  U-  5      URh                  U'   [        URh                  U   U-   US-  [r        -  U-  -
  5      n U (       a	  USU  S3-  nUURt                  ;  a7  [w        [y        UUUS-    5      6 n!UU!   R{                  5       URt                  U'   UR|                  (       a  [        UR                  SU5      n"U"(       a  [        R                  " U"5      n#[        R                  " S5      n$[        U#5       H%  n%U$RI                  U%5        U#R                  U%5        M'     U#RI                  U$5        [        R                  " U#SSSU 30S9  [        U#SSU 5      n&URh                  U   S-  UR                  -  U-  =n'n(URI                  U&UU'U(US	/5        GOUR                  (       a  [        UR                  SU5      n)U)(       a  [        R                  " [        U)5      5      n*URT                   U 3n+[        U*U+U)5      n&URh                  U   S-  n(U*R\                  U*R                  -  U(-  n'[        Rj                  " UUU Rl                  U Rn                  5        U Rn                  R                  * n,U,[r        -  U-  U-
  n,URI                  U&UU'U(UU,/5        UURh                  U   U-   U -
  S-  -  nGMv     US   S:X  a  USS nOUS-  nU[,        R.                  :w  a  GMY  U RQ                  U5        U$ s  snf )z;Draw the given ``textbox`` line to the document ``stream``.r   gư>TellipsisnoneNr   u   …r   stringr   hyphenate_characterlang r   i9  <>i  r"   02x04xsvgdefsusehrefz#glyph)attribpng)Qtextstripr&   r   &pango_layout_set_single_paragraph_moder'   layout	max_widthpango_layout_set_widthintr   pango_layout_set_ellipsizePANGO_ELLIPSIZE_ENDendswithr   lenset_textget_first_lineencodeset_text_matrixvaluesrunsr   NULLdatanextglyphs
num_glyphsitemoffsetlog_clustersrangeanalysislevelinsertlengthappendrO   add_fontpango_version	show_textset_font_sizehashbitmapglyphgeometrywidthPANGO_GLYPH_EMPTYPANGO_GLYPH_UNKNOWN_FLAGx_offsety_offsetset_text_risewidthspango_font_get_glyph_extentsink_rectlogical_rectroundr
   cmapslicesorteddecoder[   r   hb_facer   
fromstringElementlistremove
SubElementr   upemr`   hb_fontr   openr   r   heightrE   )-r:   r;   r=   r>   matrixre   rQ   new_textlast_word_end
first_lineindex	utf8_textprevious_pango_fontrS   	x_advancerF   run
glyph_itemglyph_stringru   rv   rx   clustersiutf8_positions
pango_fontrO   r   
glyph_infor   r   risekerning
utf8_slicesvg_datatreer\   childrN   rK   r#   png_datapillow_imageimage_idr%   s-                                                rG   r4   r4   V   s    <<	}}[!D(		001E1E1L1LdS
"n&>##--999((22	$$  ''Y-A)B	DJ&,,$$++U-F-FH ' %a(H444)!, ++00H  /D!EFF 1Hs7==1F#GHHIMM&)!+ !'7H  ))(*=>,,;;=J-$$))/CM>:f%'M $++00-@H  ))(*=> ' 4 4 C C EJ e $$))002I
FMM*FIF
//!
C
/XX
hh!(($$!,,
'',, 9>j8IJ8I1&8A;.8IJ??##))A-!!!Vjoo.D.D%DE!!&:??+A+A"AB__--22
,,",$ooj9OD) ""$u,#MM+6	   (F  A)L#z"AJ$$E''--E000E:::Aufy0133((11I=F&&//$6D":$#CR[FcMF  ($$dU+!'yFdkkAeC[*5+Q?OO  ($$Q'6'!n,FDKKU3Kc{K DKK'22v8K8KM%*''--4zAIM&OE" E"V+edlZ.G).SSUGAgYa.( DII%"F>!AaC+@$AB
#,Z#8#?#?#A		%  xx-dllE5I '11(;D&..v6D!%dE*E* ", KK%**eVveW5E,FH$T4v>E KK.5		AIMMAMM5$1i"CD-dllE5I#(::gh.?#@L"&))UG4H'hIEE*T1A$**\-@-@@1DA66"E6??++-  ,,...AJ2Y>AMM5$1i"CD$++e,v5?4GGIa #f ":CR[FcMFo /t VMc Ks   ec                     [        XR                  UR                  U-   UR                  UR                  -   UR                  U-   XAR                  S   XR5	        g)z?Draw text-decoration of ``textbox`` to a ``pdf.stream.Stream``.text_decoration_styleN)r   r/   r0   r   r&   )r:   r;   r<   rB   r@   r!   s         rG   r-   r-     sO    ""G$6$6$AW]]*G,>,>,I==!895LrI   N)__doc__ior   	xml.etreer   PILr   imagesr   r   r   r	   text.ffir
   r   r   r   
text.fontsr   text.line_breakr   borderr   r!   r   stackr   rH   r6   r4   r-    rI   rG   <module>r      sD      !  *  7 7 + /   9&x;upLrI   