
    wiK                     (    d dl Z G d d          ZdS )    Nc                   T    e Zd Zedefd            Zedej        de	fd            Z
dS )
ToMarkdownreturnc                     ||dS t          t          ||           fd          }g }|sdS |d         d         g}                     |d         d                   }|dd         D ]-\  }}                     |          }	t          |	d         |d                   }
t	          |	d	         |d	         z
            |
d
z  k     }t          |d         |	d                   }t          |d         |	d                   }||k    }|p|}|r+|                    d           |                    |           n`|                    d                    |                     |	d         |d         z
  }||d         dz  k    r|                    d           |g}|	}/|                    d                    |                     d                    |          S )u  
        根据 OCR 结果的坐标信息，将文本还原为近似原始排版的 Markdown。

        Args:
            result (RapidOCROutput): RapidOCR 的输出结果对象。

        Returns:
            str: 模拟原始排版的 Markdown 字符串。
        Nu   没有检测到任何文本。c                                          | d                   d                              | d                   d         fS )Nr   topleft)get_box_properties)itemclss    r/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/rapidocr/utils/to_markdown.py<lambda>zToMarkdown.to.<locals>.<lambda>   s>    &&tAw//6&&tAw//7     )key r      heightcenter_yg      ?r   bottomz   gffffff?
)sortedzipr
   minabsmaxappendjoin)r   boxestxtscombined_dataoutput_linescurrent_line_parts
prev_propsboxtextcurrent_props
min_heightcenters_are_closeoverlap_topoverlap_bottomhas_vertical_overlapis_same_linevertical_gaps   `                r   tozToMarkdown.to   s5    =DL33 t   
 
 
  	2 ,A.q12++M!,<Q,?@@
 'qrr* &	' &	'IC22377M ]84j6JKKJ #j)Jz,BB! !c!!# j/u1EFFK H!5}X7NOON#1K#?  -D0DL ,"))%000"))$//// ##BGG,>$?$?@@@  -U3j6JJ*X"6"<<< ''+++ '+V" 'JJ 	BGG$677888yy&&&r   r$   c                     | dddf         }| dddf         }t          j        |          }t          j        |          }t          j        |          }|||||z
  |||z
  dz  z   dS )u*   从坐标数组中计算框的几何属性Nr   r      )r   r   r	   r   r   )npr   r   )r$   ysxsr   r   r	   s         r   r
   zToMarkdown.get_box_propertiesT   s     AYAYfRjjvbzz slv|q00
 
 	
r   N)__name__
__module____qualname__classmethodstrr.   staticmethodr1   ndarraydictr
    r   r   r   r      so        K' K' K' K' [K'Z 

 
t 
 
 
 \
 
 
r   r   )numpyr1   r   r<   r   r   <module>r>      sM       `
 `
 `
 `
 `
 `
 `
 `
 `
 `
r   