§
    ¥”jœ0  ã                   ó¶   — d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZ dd	lmZmZmZmZ dd
lmZ ddlmZ ddlmZ ddlmZ d„ Zd„ Zd„ Zd„ ZdS )z
Draw text.é    )ÚBytesIO)ÚElementTree)ÚImageé   )ÚRasterImageÚSVGImage)ÚLOGGER)ÚMatrix)Ú
FROM_UNITSÚTO_UNITSÚffiÚpango)Úget_hb_object_data)Úget_last_word_endé   )Ú	draw_line)Ú	get_colorc                 ó†  — ddl m} |j        d         sJ ‚|j        d         dk    rdS |j        d         }t          |j        d¦  «        }d	|v sd
|v rD|j        d         dv r|j        j        }n( ||j        d         |j        |j        d         ¦  «        }d
|v r.|j        |j        j        z
  |dz  z   }	t          | |||	||¦  «         d	|v rk|j        d         dk    r|j        j	         }
n( ||j        d         |j        |j        d         ¦  «        }
|j        |
z   |dz  z   }	t          | |||	||¦  «         |j
        |j        |j        z   }}|                      |j        d         ¦  «         |j                             |j        ¦  «         |                      ¦   «          t          | |||t!          d||¬¦  «        ¦  «        }|                      ¦   «          t%          | |j        |||¦  «         d|v r4|j        j        }|j        |j        j        z
  }	t          | |||	||¦  «         |j                             ¦   «          dS )z!Draw a textbox to a pydyf stream.r   )Ú
percentageÚ	font_sizeÚ
visibilityÚvisibleNÚtext_decoration_lineÚtext_decoration_colorÚ	underlineÚoverlineÚtext_decoration_thickness)Úautoz	from-fontÚtext_underline_offsetr   Úcoloréÿÿÿÿ)ÚdÚeÚfzline-through)Úlayout.percentr   Ústyler   Úpango_layoutÚunderline_thicknessÚ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_ellipsisr   Útext_decoration_valuesr   Ú	thicknessÚoffset_yÚunderline_offsetÚxÚyÚemojiss                 úc/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/draw/text.pyÚ	draw_textrE      sÉ  € à+Ð+Ð+Ð+Ð+Ð+ð Œ=˜Ô%Ð%Ð%Ð%ð „}�\Ô" iÒ/Ð/Øˆð %œ]Ð+AÔBÐÝ% g¤mÐ5LÑMÔMÐØÐ,Ð,Ð,°
Ð>TÐ0TÐ0TØŒ=Ð4Ô5Ð9NÐNÐNØÔ,Ô@ˆIˆIà"˜
Ø”Ð9Ô:¸G¼MØ”˜kÔ*ñ,ô ,ˆIð Ð+Ð+Ð+àÔ˜wÔ3Ô:Ñ:¸YÈ¹]ÑJð 	åØ�G˜X x°Ø!ñ	#ô 	#ð 	#ð Ð,Ð,Ð,ØŒ=Ð0Ô1°VÒ;Ð;Ø!(Ô!5Ô!HÐHÐÐà)˜zØ”Ð5Ô6¸¼Ø”˜kÔ*ñ ,ô  ,Ðð Ô#Ð&6Ñ6¸ÀQ¹ÑFˆÝØ�G˜X x°Ø!ñ	#ô 	#ð 	#ð
 Ô˜wÔ1°GÔ4DÑD€q€AØ
×Ò�W”] 7Ô+Ñ,Ô,Ð,ØÔ×#Ò# G¤MÑ2Ô2Ð2Ø
×ÒÑÔÐÝØ�˜¨½ÀÀqÈAÐ8NÑ8NÔ8NñPô P€Fà
‡O‚OÑÔÐõ �˜œ q¨!¨VÑ4Ô4Ð4ð Ð/Ð/Ð/ØÔ(Ô@ˆ	ØÔ# gÔ&:Ô&QÑQˆÝØ�G˜X x°Ð<Qñ	Sô 	Sð 	SàÔ×#Ò#Ñ%Ô%Ð%Ð%Ð%ó    c           	      óú   — |d         }|D ]o\  }}}}	}
}|                       ¦   «         5  |                      ||	||
|z  z   ||z   ¬¦  «         |                     | |||¦  «         ddd¦  «         n# 1 swxY w Y   ŒpdS )zDraw list of emojis.r   )Úar"   r#   r$   N)ÚstackedÚ	transformÚdraw)r8   r&   rA   rB   rC   r   ÚimageÚfontrH   r"   r#   r$   s               rD   r4   r4   N   sÚ   € à�kÔ"€IØ#)ð <ð <Ñˆˆt�Q˜˜1˜aØ�^Š^ÑÔð 	<ð 	<Ø×Ò˜q A¨¨Q°©]Ñ):¸aÀ!¹eÐÑDÔDÐDØ�JŠJ�v˜y¨)°UÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<øð<ð <s   ¨;A/Á/A3	Á6A3	c           	      óp  ‡-‡.— |j                              ¦   «         sg S |j        d         dk     rg S t          j        |j        j        d¦  «         |dk    s|dk    �r.|j        j        €J ‚|j        j        }t          j        |j        j        t          |t          z  ¦  «        ¦  «         |dk    r*t          j        |j        j        t          j        ¦  «         n°|dk    rd}n|d	         d
k    sJ ‚|d         }|j        j         }|                     |j        d         ¦  «        rHt          |dt          |j        d         ¦  «         …         |j        d         ¦  «        }|r
|d|…         }|j                             ||z   ¦  «         |j                             ¦   «         \  }	}
|dk    r�|
r�t          |j        j         dt          |¦  «         …         |j        d         ¦  «        }|€nO|j        j         d|…         }|j                             ||z   ¦  «         |j                             ¦   «         \  }	}
|
°�|j        j                              ¦   «         } | j        |j        Ž  d}d}d	}g }|	j        d	         }|t,          j        k    �r|j        }|j        }|j        }|j        }|j        }|j        j        Š.|j        Š-ˆ-ˆ.fd„t?          |¦  «        D ¦   «         }|j        j         j!        dz  r$| "                    d	‰.|j        j#        z   ¦  «         n"| $                    ‰.|j        j#        z   ¦  «         |j        j         j%        }||k    r{|}|  &                    |¦  «        \  }}t          j'        ¦   «         dk     r|j        d         }|r|  (                    |¦  «         d}|  )                    |j*        |j+        rdn|¦  «         |dz  }t?          |¦  «        D �]‘}||         }|j,        }|j-        j.        }|t          j/        k    r|d| |z  › d�z  }Œ<|t          j0        z  r�|t          j0        z
  }tc          j2        dtg          |¦  «        › d|d›d�¦  «         | 4                    |¦  «        }tk          |dz  tl          z  |z  ¦  «        |j7        |<   d	|j7        vr|j7        |         |j7        d	<   ||j8        vrCts          tu          |||dz   …         ¦  «        Ž }||          ;                    ¦   «         |j8        |<   |j-        j<        |z  Š.|j-        j=        dz  }|r”|d         dk    r|dd…         }n|dz  }|  (                    |¦  «         |  >                    | ¦  «         d}‰.r‰. › }||j+        rd|d›d�nd|d›d�z  }|  (                    |¦  «         |  >                    d	¦  «         d}n‰.r
|d‰. › d�z  }||j+        r|d›n|d›z  }||j7        v r|j7        |         } nRt          j?        ||| j@        | jA        ¦  «         tk          | jA        j.        dz  tl          z  |z  ¦  «        x} |j7        |<   | ‰.z   |dz  tl          z  |z  z
  }!|!r|dt          |!¦  «        › d�z  }|jB        �rt‡          |jD        d|¦  «        }"|"�rt‹          jF        |"¦  «        }#|# G                    d¦  «        d|› �k    r�t‹          jH        d¦  «        }$t“          |#¦  «        D ],}%|$ $                    |%¦  «         |# J                    |%¦  «         Œ-|# $                    |$¦  «         t‹          jK        |#d d!d"|› �i¬#¦  «         d$|#jL        vrd%|jM        › d&|jM        › �|#jL        d$<   t�          |#ddd¦  «        }&dx}'}(| $                    |&||'|(|d	g¦  «         nÌ|jO        rÅt‡          |jP        d'|¦  «        })|)r­t£          jR        t§          |)¦  «        ¦  «        }*|j*        › |› �}+t©          |*|+|)¦  «        }&| dz  }(|*j.        |*jU        z  |(z  }'t          j?        ||| j@        | jA        ¦  «         | jA        jV         },|,tl          z  |z  |z
  },| $                    |&||'|(||,g¦  «         || ‰.z   |!z
  dz  z  }�Œ“|d         dk    r|dd…         }n|dz  }|t,          j        k    �°|  (                    |¦  «         |S )(z;Draw the given ``textbox`` line to the document ``stream``.r   g�íµ ÷Æ°>TÚellipsisÚnoneNr   u   â€¦r   Ústringr   Úhyphenate_characterÚlangÚ c                 ó&   •— g | ]}‰‰|         z   ‘ŒS © rV   )Ú.0ÚiÚclustersÚoffsets     €€rD   ú
<listcomp>z#draw_first_line.<locals>.<listcomp>›   s"   ø€ ÐPÐPÐP°1˜& 8¨A¤;Ñ.ÐPÐPÐPrF   r   iÒ9  ú<ú>zA.notdef glyph rendered for Unicode string unsupported by fonts: "z" (U+Ú04Xú)iè  r!   Ú02xÚ04xÚsvgÚidÚglyphÚdefsÚuseÚhrefz#glyph)ÚattribÚviewBoxz0 0 ú Úpng)WÚ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ÚitemrZ   Úlog_clustersÚrangeÚanalysisÚlevelÚinsertÚlengthÚappendrM   Úadd_fontÚpango_versionÚ	show_textÚset_font_sizeÚhashÚbitmaprd   ÚgeometryÚwidthÚPANGO_GLYPH_EMPTYÚPANGO_GLYPH_UNKNOWN_FLAGr	   ÚwarningÚchrÚget_unused_glyph_idÚroundr   ÚwidthsÚ
to_unicodeÚsliceÚsortedÚdecodeÚx_offsetÚy_offsetÚset_text_riseÚpango_font_get_glyph_extentsÚink_rectÚlogical_rectrb   r   Úhb_facer   Ú
fromstringÚgetÚElementÚlistÚremoveÚ
SubElementrh   Úupemr   rk   Úhb_fontr   Úopenr   r   ÚheightrB   )/r8   r9   r;   r<   Úmatrixrp   rO   Únew_textÚlast_word_endÚ
first_lineÚindexÚ	utf8_textÚprevious_pango_fontrQ   Ú	x_advancerC   ÚrunÚ
glyph_itemÚglyph_stringÚglyphs_infoÚnumber_of_glyphsÚutf8_positionsÚ
pango_fontrM   r   rX   Ú
glyph_infoÚglyph_idr‘   Ú	codepointÚ
utf8_sliceÚriseÚlogical_widthÚkerningÚsvg_dataÚtreere   ÚchildrL   rH   r"   Úpng_dataÚpillow_imageÚimage_idr$   rY   rZ   s/                                                @@rD   r2   r2   W   s-
  øø€ ð Œ<×ÒÑÔð Øˆ	à„}�[Ô! DÒ(Ð(Øˆ	å	Ô0°Ô1EÔ1LÈdÑSÔSÐSà˜
Ò"Ð" n¸Ò&>Ñ&>ØÔ#Ô-Ð9Ð9Ð9ØÔ(Ô2ˆ	ÝÔ$ØÔ Ô'­¨Y½Ñ-AÑ)BÔ)Bñ	Dô 	Dð 	Dà˜JÒ&Ð&ÝÔ,ØÔ$Ô+­UÔ-FñHô Hð Hð Hð  Ò'Ð'Ø ��à% aÔ(¨HÒ4Ð4Ð4Ð4Ø)¨!Ô,�ð Ô+Ô0ˆHØ× Ò  ¤Ð/DÔ!EÑFÔFð 8Ý 1ØÐH�s 7¤=Ð1FÔ#GÑHÔHÐHÐHÔIØ”M &Ô)ñ!+ô !+�ð !ð 8Ø'¨¨¨Ô7�HàÔ ×)Ò)¨(°XÑ*=Ñ>Ô>Ð>àÔ,×;Ò;Ñ=Ô=Ñ€J�à˜ÒÐØð 	FÝ-ØÔ$Ô)¨/­C°©M¬M¨>¨/Ô:Ø”˜fÔ%ñ'ô 'ˆMð Ð$ØØÔ+Ô0°°-°Ô@ˆHØÔ ×)Ò)¨(°XÑ*=Ñ>Ô>Ð>Ø 'Ô 4× CÒ CÑ EÔ EÑˆJ˜ð ð 	Fð Ô$Ô)×0Ò0Ñ2Ô2€IØ€FÔ˜FœMÐ*Ð*ØÐØ€FØ€IØ€FØ
Œ/˜!Ô
€CØ
•”Š/‰/à”Xˆ
ØŒhˆØ!Ô(ˆØ"Ô)ˆØ'Ô2ÐØ”Ô'ˆØÔ,ˆð QÐPÐPÐPÐP½Ð>NÑ8OÔ8OÐPÑPÔPˆØŒ?Ô#Ô)¨AÑ-ð 	CØ×!Ò! ! V¨j¬oÔ.DÑ%DÑEÔEÐEÐEà×!Ò! &¨:¬?Ô+AÑ"AÑBÔBÐBà”_Ô-Ô2ˆ
ØÐ,Ò,Ð,à",ÐØ$Ÿošo¨jÑ9Ô9‰OˆD�)õ Ô"Ñ$Ô$ uÒ,Ð,Ø#œM¨+Ô6�	ð ð )Ø× Ò  Ñ(Ô(Ð(ØˆFØ× Ò  ¤°´Ð,K¨A¨AÀ)ÑLÔLÐLØ�#‰ˆÝÐ'Ñ(Ô(ð d	Cñ d	CˆAØ$ QœˆJØ!Ô'ˆHØÔ'Ô-ˆEð �5Ô2Ò2Ð2ØÐ3˜u˜f yÑ0Ð3Ð3Ð3Ñ3�Øð �%Ô8Ñ8ð ;Ø$¥uÔ'EÑE�	Ý”ð>Ý˜I™œð>ð >Ø-6Ð=ð>ð >ð >ñ?ô ?ð ?ð  ×3Ò3°IÑ>Ô>�Ý(-¨e°d©l½ZÑ.GÈ)Ñ.SÑ(TÔ(T�”˜HÑ%Ø˜DœKÐ'Ð'ð &*¤[°Ô%:�D”K ‘Nð ˜tœÐ.Ð.Ý"¥F¨>¸!¸A¸a¹C¸%Ô+@Ñ$AÔ$AÐB�
Ø,5°jÔ,A×,HÒ,HÑ,JÔ,J�” Ñ)ð  Ô(Ô1°IÑ=ˆFØÔ&Ô/°$Ñ6ˆDØð RØ˜"”: Ò$Ð$Ø# C R Cœ[�F�Fà˜c‘M�FØ× Ò  Ñ(Ô(Ð(Ø×$Ò$ d UÑ+Ô+Ð+Ø�Øð *Ø!' ˜\�FØ°´ÐUÐ-˜hÐ-Ð-Ð-Ð-Ð-ÐBUÀhÐBUÐBUÐBUÐBUÑU�Ø× Ò  Ñ(Ô(Ð(Ø×$Ò$ QÑ'Ô'Ð'Ø��àð -Ø˜n 6 '˜n˜n˜nÑ,�FØ¨t¬{ÐQ˜XÐ+Ð+Ð+À8Ð@QÐ@QÑQ�ð ˜4œ;Ð&Ð&Ø $¤¨HÔ 5��åÔ2Ø ¨&¬/¸6Ô;NñPô Pð På8=ØÔ'Ô-°Ñ4µzÑAÀIÑMñ9Oô 9Oð O� ¤¨HÑ 5ð $ fÑ,¨u°t©|½jÑ/HÈ9Ñ/TÑTˆGØð .ØÐ-�c '™lœlÐ-Ð-Ð-Ñ-�ð Œxñ  EÝ-¨d¬l¸EÀ8ÑLÔL�Øñ Eõ 'Ô1°(Ñ;Ô;�DØ—x’x ‘~”~Ð);°Ð);Ð);Ò;Ð;Ý*Ô2°6Ñ:Ô:˜Ý%)¨$¡Z¤Zð /ð /˜EØ ŸKšK¨Ñ.Ô.Ð.Ø ŸKšK¨Ñ.Ô.Ð.Ð.ØŸš DÑ)Ô)Ð)Ý#Ô.Ø  %°Ð9LÀ(Ð9LÐ9LÐ0MðOñ Oô Oð Oà ¨¬Ð3Ð3Ø1O¸¼	Ð1OÐ1OÀDÄIÐ1OÐ1O˜œ IÑ.Ý$ T¨4°°tÑ<Ô<�EØ�I�A˜Ø—M’M 5¨$°°1°iÀÐ"CÑDÔDÐDøØ”ð EÝ-¨d¬l¸EÀ8ÑLÔL�Øð EÝ#(¤:­g°hÑ.?Ô.?Ñ#@Ô#@�LØ"&¤)Ð7¨XÐ7Ð7�HÝ'¨°hÀÑIÔI�EØ%¨Ñ,�AØ$Ô*¨\Ô-@Ñ@À1ÑD�AÝÔ6Ø" H¨f¬oØÔ+ñ-ô -ð -ð  Ô,Ô.Ð.�AØ�J™¨Ñ2°YÑ>�AØ—M’M 5¨$°°1°iÀÐ"CÑDÔDÐDà˜-¨&Ñ0°7Ñ:¸dÑBÑBˆI‰Ið �"Œ:˜ÒÐØ˜C˜R˜C”[ˆFˆFà�c‰MˆFðW •”Š/‰/ð\ ×Ò�VÑÔÐà€MrF   c                 óŽ   — t          | |j        |j        |z   |j        |j        z   |j        |z   ||j        d         ||¦	  «	         dS )z?Draw text-decoration of ``textbox`` to a ``pdf.stream.Stream``.Útext_decoration_styleN)r   r-   r.   r‘   r&   )r8   r9   r:   r?   r>   r    s         rD   r+   r+   #  s]   € åØ�Ô" GÔ$6¸Ñ$AØÔ˜Wœ]Ñ*¨GÔ,>ÀÑ,IØ�7”=Ð!8Ô9¸5À(ñLô Lð Lð Lð LrF   N)Ú__doc__Úior   Ú	xml.etreer   ÚPILr   Úimagesr   r   Úloggerr	   r®   r
   Útext.ffir   r   r   r   Ú
text.fontsr   Útext.line_breakr   Úborderr   r    r   rE   r4   r2   r+   rV   rF   rD   ú<module>rÖ      s9  ðØ Ð à Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !à Ð Ð Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø +Ð +Ð +Ð +Ð +Ð +Ø /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð9&ð 9&ð 9&ðx<ð <ð <ðIð Ið IðXLð Lð Lð Lð LrF   