
    mh**                         d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ d	d
lmZ  G d dej                        Zy)zPDF stream.    )contextmanagerN   )LOGGER)Matrix)ffi)get_pango_font_key   )Fontc                       e Zd ZdZ fdZd Zed        Z fdZ fdZ	d fd	Z
 fdZ fd	Zdd
Z fdZ fdZd fd	ZddZd Zd Zd Zd Zd Zd Zed        Ze fd       Ze fd       Zed        Zed        Z xZS )Streamz&PDF stream object with extra features.c                    t        |   |i | || _        || _        || _        || _        || _        d x| _        | _        d x| _	        | _
        d x| _        | _        d x| _        | _        t               g| _        t#        j$                  d      | _        t#        j$                  d      | _        t#        j$                  d      | _        y )Nzunsigned int *zPangoRectangle *)super__init__page_rectangle_fonts
_resources_images_tags_current_color_current_color_stroke_current_alpha_current_alpha_stroke_current_font_current_font_size	_old_font_old_font_sizer   
_ctm_stackr   newlengthink_rectlogical_rect)	selffontsr   	resourcesimagestagsargskwargs	__class__s	           g/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/weasyprint/pdf/stream.pyr   zStream.__init__   s    $)&),#
;??d8;??d87;;T4/33,!8* gg./ 23GG$67    c                     d|vr| j                   |d<   d|vr| j                  |d<   d|vr| j                  |d<   d|vr| j                  |d<   d|vr| j                  |d<   d|vr| j
                  |d<   t        di |S )Nr#   r   r$   r%   r&   compress )r   r   r   r   r   r-   r   )r"   r(   s     r*   clonezStream.clone"   s    & "kkF7O6)'+':':F#$f$"&//F;6!#||F8!ZZF6NV#!%F:r+   c                      | j                   d   S N)r   r"   s    r*   ctmz
Stream.ctm1   s    r""r+   c                 l    t         |           | j                  j                  | j                         y N)r   
push_stater   appendr4   r"   r)   s    r*   r7   zStream.push_state5   s$    txx(r+   c                 *   | j                   r-| j                   d   dk(  r| j                   j                          nt        |           d x| _        | _        d x| _        | _        d | _        | j                  j                          | j                  sJ y )Nr2      q)
streampopr   	pop_stater   r   r   r   r   r   r9   s    r*   r>   zStream.pop_state9   sv    ;;4;;r?d2KKOOG;??d8;??d8!r+   c                     t         |   ||||||       t        ||||||      | j                  z  | j                  d<   y r1   )r   
set_matrixr   r4   r   )r"   abcdefr)   s          r*   	transformzStream.transformD   s@    1aAq!,$Q1aA6Ar+   c                     | j                   r>| j                   d   dk(  r,| j                  | _        | j                   j                          y t        |           y )Nr2   s   ET)r<   r   r   r=   r   
begin_textr9   s    r*   rI   zStream.begin_textH   s>    ;;4;;r?e3!%DKKOOG r+   c                 T    | j                   d c| _        | _         t        |           y r6   )r   r   r   end_textr9   s    r*   rK   zStream.end_textO   s%    -1-?-?**r+   c                 8   |^ }}| j                  ||       |r4|j                  g|| j                  k(  ry |j                  g|| _        n3|j                  g|| j                  k(  ry |j                  g|| _        |j                  dv r. | j                  g |j                  d      j                  |  y |j                  dv rG| j                  d|       |j                  d      j                  \  }}}| j                  d ||||       y |j                  dv rG| j                  d|       |j                  d      j                  \  }}}| j                  d ||||       y t        j                  d|j                          | j                  g ||  y )	N)srgbhslhwbrM   )zxyz-d65oklaboklchzlab-d65lab)zxyz-d50rR   lchzlab-d50z,Unsupported color space %s, use sRGB instead)	set_alphaspacer   r   set_color_rgbtocoordinatesset_color_spaceset_color_specialr   warning)r"   colorstrokechannelsalpha	lightnessrA   rB   s           r*   	set_colorzStream.set_colorS   sv    5uf%'h'4+E+EE.3kk-EH-E*'h'4+>+>>',{{&>X&>#;;00DE 0 < <EfE[[99  F3#hhuo99OIq!""4AqA[[55  F3#hhuo99OIq!""4AqANNI5;;WD11&1r+   c                 \    ||f| j                   k(  ry ||f| _         t        | 	  ||       y r6   )r   r   set_font_size)r"   fontsizer)   s      r*   rc   zStream.set_font_sizep   s3    $<4---"D\dD)r+   c                 ~    dt        | j                  d          }|| j                  d   |<   t        |   |       y )Ns	ExtGState)lenr   r   	set_state)r"   statekeyr)   s      r*   rj   zStream.set_statev   s>    #dook2345,1$S)#r+   c                    || }|rbd| }|| j                   k7  rN|| _         || j                  d   vr't        j                  d|i      | j                  d   |<   t        |   |       |rdd| }|| j                  k7  rO|| _        || j                  d   vr't        j                  d|i      | j                  d   |<   t        |   |       y y y )NArh   CArA   ca)r   r   pydyf
Dictionaryr   rj   r   )r"   r_   r]   fillrl   r)   s        r*   rT   zStream.set_alpha{   s    <:DeW+Cd000-0*dook::8=8H8H$PU8WDOOK05!#&eW+Cd)))&)#dook::8=8H8H$PU8WDOOK05!#&	 * r+   c           	          | j                  ||||      }t        j                  dt        j                  dd|j                          |d      ddd      }| j	                  |       |S )N
/ExtGStatez/Mask/)TypeSGr	   false)rw   SMaskrp   AIS)	add_grouprq   rr   
capitalizerj   )r"   xywidthheightmodealpha_streamalpha_states           r*   set_alpha_statezStream.set_alpha_state   su    ~~aE6:&& %%*+,!' 
 	(
 	 	{#r+   c                 X    | j                  t        j                  dd| d             y )Nru   rv   )rw   BM)rj   rq   rr   )r"   r   s     r*   set_blend_modezStream.set_blend_mode   s,    u'' dV*)
  	r+   c                     t        |      \  }}}|| j                  vrt        |||      | j                  |<   | j                  |   |fS r6   )r   r   r
   )r"   
pango_fontrl   description	font_sizes        r*   add_fontzStream.add_font   sJ    &8&D#[)dkk!#JYGDKK{{3**r+   c                 &   t        j                  t        j                         t        j                         t        j                         t        j                         | j                  d   d d      }t        j                  ddt        j                  ||||z   ||z   f      |t        j                  ddddd	      d
      }| j	                  ||      }dt        | j                  d          |_        || j                  d   |j                  <   |S )N
ColorSpacerh   XObjectPatternShadingr   r
   z/XObjectz/Formz/Groupz/Transparencytruez
/DeviceRGB)rw   rx   ICS)rw   SubtypeBBox	ResourcesGroupr$   extrar   r   )rq   rr   r   Arrayr/   ri   id)r"   r   r   r   r   r$   r   groups           r*   r}   zStream.add_group   s    $$))+'')'')'')//,7&
 	   KKAq5y!f* =>"%% $"	' "
  

Ye
<s4??95678/4	"588,r+   c                     d|j                    t        |       }d | j                  d   |<   || j                  v r#| j                  |   d   j	                  |       |S |||hd d| j                  |<   |S )Nir   
dpi_ratios)imageinterpolater   x_object)r   intr   r   add)r"   r   r   ratio
image_names        r*   	add_imagezStream.add_image   s    
3{#3"45
15	":.%LL$\266u= & '	$
Z  r+   c                 8   t        j                  t        j                         t        j                         t        j                         t        j                         | j                  d   d d      }t        j                  ddt        j                  ||||z   ||z   g      ||ddt        j                  |j                        |d	      }	| j                  ||	      }
dt        | j                  d          |
_        |
| j                  d   |
j                  <   |
S )	Nr   r   z/Patternr	   )	rw   PatternTyper   XStepYStep
TilingType	PaintTyper   r   r   pr   )rq   rr   r   r   valuesr/   ri   r   )r"   r   r   r   r   repeat_widthrepeat_heightmatrixr$   r   patterns              r*   add_patternzStream.add_pattern   s    $$))+'')'')'')//,7&
 	   KKAq5y!f* =>!"kk&--0"
"
 
 **y*>T__Y789:
18	"7::.r+   c                 :   t        j                  |d| t        j                  |      t        j                  |      |d      }|rt        j                  d      |d<   dt        | j                  d          |_        || j                  d   |j
                  <   |S )Nz/Device)ShadingTyper   DomainCoordsFunction)   truer   Extendrg   r   )rq   rr   r   ri   r   r   )r"   shading_typecolor_spacedomaincoordsextendfunctionshadings           r*   add_shadingzStream.add_shading   s    ""'#K=1kk&)kk&) $
   %,> ?GHT__Y789:
18	"7::.r+   c              #      K   | j                          	 d | j                          y# | j                          w xY ww)zDSave and restore stream context when used with the ``with`` keyword.N)r7   r>   r3   s    r*   stackedzStream.stacked   s.      		NNDNNs   >) >;>c              #   f  K   | j                   `d }t        | j                         }|| j                   vsJ ||d| j                   |<   t        j                  d|i      }t        |   ||       	 d  | j                   t        |           y y # | j                   t        |           w w xY ww)N)tagmcidMCID)r   ri   rq   rr   r   begin_marked_contentend_marked_content)r"   boxr   property_listr   r)   s        r*   markedzStream.marked  s     ::! Mtzz?Ddjj(((&)48DJJsO!,,fd^<MG(m<	-zz%*, &tzz%*, &s   A-B11B 5B1B..B1c              #      K   | j                   t        | 	  d       	 d  | j                   t        |           y y # | j                   t        |           w w xY ww)NArtifact)r   r   r   r   r9   s    r*   artifactzStream.artifact  sZ     ::!G(4	-zz%*, &tzz%*, &s   A A  A  AA c                     t        j                  dt        j                  |       t        j                  |      t        j                  |      |d      S )Nr   )FunctionTyper   C0C1Nrq   rr   r   )r   c0c1ns       r*   create_interpolation_functionz$Stream.create_interpolation_function  sB    kk&)++b/++b/!
  	r+   c           	          t        j                  dt        j                  |       t        j                  |      t        j                  |      t        j                  |      d      S )N   )r   r   EncodeBounds	Functionsr   )r   encodeboundssub_functionss       r*   create_stitching_functionz Stream.create_stitching_function(  sM    kk&)kk&)kk&)]3!
  	r+   )r	   r   r   r	   r   r   )F)FN)
luminosity) __name__
__module____qualname____doc__r   r/   propertyr4   r7   r>   rG   rI   rK   ra   rc   rj   rT   r   r   r   r}   r   r   r   r   r   r   r   staticmethodr   r   __classcell__)r)   s   @r*   r   r      s    08$  # #)	B!2:*
'(+4 2   - - - -    r+   r   )r   
contextlibr   rq   loggerr   r   r   text.ffir   
text.fontsr   r#   r
   r   r.   r+   r*   <module>r      s/     %     + bU\\ br+   