
    kh                     N    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e      Z	y	)
zTable Cell object.    )Pt   )Element)Layout)docxc                   j     e Zd ZdZd
def fdZed        Zed        Z fdZ	 fdZ
d Zd	 Z xZS )CellzCell object.rawc                    |xs i }t         |           | j                  |       |j                  dd       | _        |j                  dd      | _        |j                  dd      | _        |j                  dd      | _        y )Nbg_colorborder_color)r   r   r   r   border_widthmerged_cells)   r   )super__init__restoregetr   r   r   r   )selfr
   	__class__s     O/var/www/teggl/fontify/venv/lib/python3.12/site-packages/pdf2docx/table/Cell.pyr   zCell.__init__   sp    iRS  GGJ5GGNI>GGNI>GGNE:    c                     | sydj                  | j                  D cg c]  }|j                  r|j                  nd c}      S c c}w )zText contained in this cell.N
z<NEST TABLE>)joinblocksis_text_blocktext)r   blocks     r   r   z	Cell.text   sJ     Dyy.2kk;%* ).(;(;%**O ; < 	< ;s   !Ac                     | j                   \  }}}}| j                  \  }}}}||dz  z   ||dz  z   ||dz  z
  ||dz  z
  f}	t               j                  |	      j                   S )z Inner bbox with border excluded.g       @)bboxr   r   update_bbox)
r   x0y0x1y1w_topw_rightw_bottomw_leftr!   s
             r   working_bboxzCell.working_bbox    sp     BB+/+<+<(w&6#:r%)|R^R_My$$T*///r   c                     t        |       sy t        | 	         }|j                  | j                  | j
                  | j                  | j                  d       |S )N)r   r   r   r   )boolr   storeupdater   r   r   r   )r   resr   s     r   r.   z
Cell.store)   sQ    Dz$gmo

 -- -- --	
 	 
r   c                 Z    t         |   |       | j                  j                  |       y)zPlot cell and its sub-layout.N)r   plotr   )r   pager   s     r   r2   z	Cell.plot5   s!    Tr   c                    | j                  ||       t        |       sy| j                  \  }}|\  }}|j                  ||      }||z  dk7  r/|j                  ||z   dz
  ||z   dz
        }|j	                  |       | j
                  \  }	}
}}t        ||	z
        |_        | j                  r6|j                  j                          | j                  j                  |       yy)zSet cell style and assign contents.

        Args:
            table (Table): ``python-docx`` table instance.
            indexes (tuple): Row and column indexes, ``(i, j)``.
        Nr   )
_set_styler-   r   cellmerger!   r   widthr   _elementclear_content	make_docx)r   tableindexesn_rown_colij	docx_cell_cellr#   r$   r%   r&   s                r   r;   zCell.make_docx;   s     	w' DzF ((u1JJq!$	;>JJqwqy!E'!)4EOOE" BBRU)	 ;;,,.KK!!), r   c                    |\  }}|j                  ||      }| j                  \  }}d}i }	t        || j                  | j                        D ]C  \  }
}}|s
dt        |      dd j                  d       }d|z  d|j                         d|	|
<   E t        |||z         D ]<  }t        |||z         D ](  }t        j                  |j                  ||      fi |	 * > | j                   t        j                  || j                         t        j                  |d	d	
       | j                  j                  rt        j                   |       yy)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.
        )topendbottomstart#r   N      single)szvalcolorr   )rH   rF   )r6   r   zipr   r   hexzfillupperranger   set_cell_borderr   set_cell_shadingset_cell_marginsr   is_vertical_textset_vertical_cell_direction)r   r<   r=   r@   rA   rB   r>   r?   keyskwargskwchex_cmns                   r   r5   zCell._set_stylea   sS    1JJq!$	((u 14!2!2D4E4EF 	GAq!hAqr
((+,-Ec(U[[]F1I	 q!E'" 	AA1ag& A$$UZZ1%5@@A	A ==$!!)T]]; 	iqa8 ;;'',,Y7 (r   )N)__name__
__module____qualname____doc__dictr   propertyr   r+   r.   r2   r;   r5   __classcell__)r   s   @r   r	   r	   	   sO    	;4 	; < < 0 0	#-L08r   r	   N)
re   docx.sharedr   common.Elementr   layout.Layoutr   commonr   r	    r   r   <module>rn      s"      $ " H86 H8r   