o
    j                     @   sH   d Z ddlmZ ddlmZ ddlmZ ddlmZ G dd deZ	d	S )
zTable Cell object.    )Pt   )Element)Layout)docxc                       sp   e Zd ZdZddef fddZdd Zedd	 Zed
d Z	 fddZ
 fddZdd Zdd Z  ZS )CellzCell object.Nrawc                    sX   |pi }t    | | |dd | _|dd| _|dd| _|dd| _d S )Nbg_colorborder_color)r   r   r   r   border_widthmerged_cells)   r   )super__init__Zrestoregetr	   r
   r   r   )selfr   	__class__ T/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pdf2docx/table/Cell.pyr      s   

zCell.__init__c                 C   sF   t |dsdS |j}|du rdS t|trddd |D S t|S )z9Get text from a block, always returning a str (for join).textz<NEST TABLE>N 
c                 s   s    | ]}t |V  qd S N)str).0xr   r   r   	<genexpr>   s    z#Cell._block_text.<locals>.<genexpr>)hasattrr   
isinstancelistjoinr   )r   blocktr   r   r   _block_text   s   

zCell._block_textc                    s"    sdS d  fdd jD S )zText contained in this cell.Nr   c                    s   g | ]}  |qS r   )r$   )r   r"   r   r   r   
<listcomp>)   s    zCell.text.<locals>.<listcomp>)r!   blocksr%   r   r%   r   r   !   s   z	Cell.textc           
      C   sV   | j \}}}}| j\}}}}||d  ||d  ||d  ||d  f}	t |	j S )z Inner bbox with border excluded.g       @)bboxr   r   Zupdate_bbox)
r   x0y0x1y1Zw_topZw_rightZw_bottomZw_leftr(   r   r   r   working_bbox.   s   ,zCell.working_bboxc                    s6   t | sd S t  }|| j| j| j| jd |S )N)r	   r
   r   r   )boolr   storeupdater	   r
   r   r   )r   resr   r   r   r/   7   s   
z
Cell.storec                    s   t  | | j| dS )zPlot cell and its sub-layout.N)r   plotr'   )r   pager   r   r   r2   C   s   z	Cell.plotc                 C   s,  |  || t| sdS | j\}}|\}}|||}|| dkrv|| d |j | | d t|jk rv||| d || d }z|| W n+ tyu }	 zdd }
td|
| d|
| d|d|d	|d
||	d}	~	ww | j	\}}}}t
|| |_| jr|j  | j| dS dS )zSet cell style and assign contents.

        Args:
            table (Table): ``python-docx`` table instance.
            indexes (tuple): Row and column indexes, ``(i, j)``.
        Nr   c                 S   s   d| j j d| j j dS )Nz	[_tc.top=z _tc.bottom=])Z_tctopbottom)cr   r   r   show_   s   zCell.make_docx.<locals>.showzFailed to merge docx_cell=z _cell=z. i=z j=z n_row=z n_col=)
_set_styler.   r   cell_column_countlen_cellsmerge	Exceptionr(   r   widthr'   Z_elementclear_content	make_docx)r   tableindexesn_rown_colij	docx_cell_celler8   r)   r*   r+   r,   r   r   r   rB   I   s(   
46	
zCell.make_docxc                 C   s  |\}}| ||}| j\}}d}i }	t|| j| jD ]"\}
}}|s#qdt|dd d }d| d| d|	|
< qt||| D ]%}t||| D ]}t	|j
||j | kritj| ||fi |	 qNqE| jdurwt|| j tj|d	d	d
 | jjrt| dS dS )a  Set ``python-docx`` cell style, e.g. border, shading, width, row height,
        based on cell block parsed from PDF.

        Args:
            table (Table): ``python-docx`` table object.
            indexes (tuple): ``(i, j)`` index of current cell in table.
        )r5   endr6   start#r   N      single)szvalcolorr   )rM   rL   )r:   r   zipr   r
   hexzfillupperranger<   r=   r;   r   Zset_cell_borderr	   Zset_cell_shadingZset_cell_marginsr'   Zis_vertical_textZset_vertical_cell_direction)r   rC   rD   rG   rH   rI   rE   rF   keyskwargskwr7   Zhex_cmnr   r   r   r9   t   s,   

zCell._set_styler   )__name__
__module____qualname____doc__dictr   r$   propertyr   r-   r/   r2   rB   r9   __classcell__r   r   r   r   r   	   s    

+r   N)
rc   Zdocx.sharedr   Zcommon.Elementr   Zlayout.Layoutr   commonr   r   r   r   r   r   <module>   s    