
    i                         S SK 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 SK
Jr  S SKJr  S S	KJr  S S
KJr  \" 5       rS rS rg)    N)deepcopy)Document)shared)WD_ALIGN_PARAGRAPH)
WD_SECTION)qn)WD_TABLE_ALIGNMENT)
HtmlToDocx)
get_loggerc                 \   [        5       nSUR                  S   R                  l        UR                  S   R                  R
                  R                  R                  [        S5      S5        [        R                  " S5      UR                  S   R                  l        Sn[        U5       GH  u  pgUS   (       d  US   R                  5       S	:w  a  M)  US
   nUS:X  ab  US   S:X  aY  UR                  [        R                   5      n	U	R"                  R%                  S5      S   R                  [        S5      S5        SnOgUS:X  aa  US   S:X  aX  UR                  [        R                   5      n	U	R"                  R%                  S5      S   R                  [        S5      S5        SnUS   R                  5       S	:X  a  [&        R(                  R+                  X#5      n
[&        R(                  R+                  U
SR-                  US   U5      5      nUR/                  5       n[0        R2                  Ul        UR7                  S5      nUS:X  a'  UR9                  U[        R:                  " S5      S9  GM  US:X  a'  UR9                  U[        R:                  " S5      S9  GM  GM  US   R                  5       S:X  a  UR=                  US   S   S   5        GM-  US   R                  5       S:X  a,  [?        5       nSUl         URC                  US   S   U5        GMp  US   S:X  a  SUS   ;   a  GM  UR/                  5       nURD                  n[        US   5       Hc  u  nnUS:X  a  [        R:                  " S 5      Ul#        UR7                  US   S!-   5      n[        R                  " S"5      UR                  l        Me     GM     [&        R(                  R+                  US#R-                  U5      5      nURI                  U5        [J        RM                  S$R-                  U5      5        g )%NzTimes New RomanNormalz
w:eastAsiau   宋体g      @   restypefigureimg_idx   layoutsinglez./w:colsr   zw:num1double2z	{}_{}.jpgbbox    )widthtitletexttable	TableGridhtmlequationlatexg      ? 
   z{}_ocr.docxzdocx save to {})'r   stylesfontname_elementrPrrFontssetr   r   Ptsize	enumerateloweradd_sectionr   
CONTINUOUS_sectPrxpathospathjoinformatadd_paragraphr   CENTER	alignmentadd_runadd_pictureInchesadd_headingr
   table_stylehandle_tableparagraph_formatfirst_line_indentsaveloggerinfo)imgr   save_folderimg_namedocflagiregionr   sectionexcel_save_folderimg_pathparagraph_picrunparser	paragraphrB   linetext_run	docx_paths                       n/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddleocr/ppstructure/recovery/recovery_to_doc.pyconvert_info_docxrY       s[   
*C%6CJJx"JJx!!%%,,00L1A8L%+YYs^CJJx"Ds^	e}!5!5!78!C#19)X5ooj&;&;<GOO!!*-a044R[#FDQY6(+x7ooj&;&;<GOO!!*-a044R[#FD&>!X- "[ Cww||!;#5#5fVng#NH  --/M&8&?&?M#''+Cqya0@Aa0@A F^!!#w.OOF5M!,V45F^!!#w.\F!,Fuf 5s;F^z)g.F))+I(99$VE]3469?t9L$6$,,T&\C-?@%+YYr]"	 4I $V [-*>*>x*HIIHHY
KK!((34    c                    [        U 5      nUS:X  a
  SU S   S'   U $ [        U S S9n[        U5      n/ n/ n/ nSn X:  a  GOXS-
  :X  a  XH   S   S   XHS-
     S   S   :  aE  XH   S   S   US	-  :  a4  XH   S   S	   US	-  :  a#  XV-  nXW-  nSXH   S'   UR                  XH   5        OgXH   S   S	   US	-  :  a#  S
XH   S'   UR                  XH   5        XV-  nXW-  nO3XH   S   S   US	-  :  a"  S
XH   S'   UR                  XH   5        XV-  nXW-  n/ n/ nOXH   S   S   US-  :  a4  XH   S   S	   SU-  S-  :  a   S
XH   S'   UR                  XH   5        US-  nOmXH   S   S   US-  :  a1  XH   S   S	   US	-  :  a   S
XH   S'   UR                  XH   5        US-  nO+XV-  nXW-  nSXH   S'   UR                  XH   5        / n/ nUS-  nGM  U(       a  XV-  nU(       a  XW-  nU$ )z
Sort text boxes in order from top to bottom, left to right
args:
    res(list):ppstructure results
return:
    sorted results(list)
r   r   r   r   c                 "    U S   S   U S   S   4$ )Nr   r   r    )xs    rX   <lambda>%sorted_layout_boxes.<locals>.<lambda>d   s    ailAfIaL-IrZ   )keyr      r   r      )lensortedlistappend)	r   w	num_boxessorted_boxes_boxesnew_resres_left	res_rightrL   s	            rX   sorted_layout_boxesro   W   s    CIA~#Ax
##IJL,FGHI	A
>A	&!!$v!e}V'<Q'??If%a(1q50If%a(1q50#$&.	(#vy)9V$Q'!a%/*2FIh'$$VY/'G(GYv&q)AE1*2FIh'OOFI.'G(GHIYvq!AE)fi.?.BQUQY.N"*FIhOOFI&FAYvq!AE)fi.?.BQU.J"*FIhVY'FAG G"*FIhNN69%HIFAU V NrZ   )r5   copyr   docxr   r   docx.enum.textr   docx.enum.sectionr   docx.oxml.nsr   docx.enum.tabler	   "ppstructure.recovery.table_processr
   ppocr.utils.loggingr   rE   rY   ro   r]   rZ   rX   <module>rx      s8    
    - (  . 9 *	45nDrZ   