
    9i><                         S SK r S SKrS SKJr  SSKJrJrJrJr   " S S\\\\5      r	 " S S\\5      r
 " S	 S
\\5      rg)    N)Path   )BaseCVResult
LatexMixinMarkdownMixin	WordMixinc                   f   ^  \ rS rSrS	U 4S jjrU 4S jrS
S\4S jjrS\4S jrS\	4S jr
SrU =r$ )MarkdownResult   returnc                 P   > [         TU ]  U5        [        R                  " U 5        g)z@Initializes a new instance of the class with the specified data.N)super__init__r   selfdata	__class__s     t/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/paddlex/inference/pipelines/pp_doctranslation/result.pyr   MarkdownResult.__init__   s    t$    c                 $  > [         TU ]  5       nU R                  SS 5      =nb+  [        U5      nUR                  UR
                  pTU SU U 3nU R                  SS 5      =nb+  [        U5      nUR                  UR
                  pTU SU U 3nU$ N
page_index_languager   _get_input_fngetr   stemsuffixr   fnpage_idxfpr   r    r   r   s          r   r   MarkdownResult._get_input_fn       W"$t44HAbB77BII&68*VH-BT22H?bB77BII&68*VH-B	r   c                     U $ N )r   prettyshow_formula_numbers      r   _to_markdownMarkdownResult._to_markdown(       r   c                    ^^^^	 SSK Jm  U R                  SS5      n S
S jm	S mU4S jmUUUU	4S jnSS	KJn  U" 5       nU" XRU5        U$ )Nr   BeautifulSoupmarkdown_texts c                     SSK Jn  SSKJn  SSKJnJn  U R                  (       a  U R                  S   OU R                  5       n	SU	R                  l
        U	R                  R                  R                  R                  U" S5      S5        U" U5      U	R                  l        Xl        U(       a  U" U6 U	R                  R"                  l        US:X  a  UR&                  U l        g US	:X  a  UR*                  U l        g UR,                  U l        g )
Nr   WD_PARAGRAPH_ALIGNMENT)qn)PtRGBColorzTimes New Romanz
w:eastAsiau   宋体centerright)docx.enum.textr6   docx.oxml.nsr7   docx.sharedr8   r9   runsadd_runfontname_elementrPrrFontssetsizeboldcolorrgbCENTER	alignmentRIGHTLEFT)
	paragraphrH   align	font_sizerI   r6   r7   r8   r9   runs
             r   set_paragraph_style4MarkdownResult._to_word.<locals>.set_paragraph_style1   s     >'0 (1~~)..#9;L;L;NC-CHHMLL##''<(8(CyMCHHMH%-u%5" &<&C&C	#'!&<&B&B	#&<&A&A	#r   c                 f   SSK Jn  SSKJn  [        R
                  R                  U5      (       a@   U" US-  S-  5      nU R                  5       nUR                  XS9  UR                  U l
        g U R                  S	U S35        g ! [         a  nU R                  SU S35         S nAg S nAff = f)
Nr   r5   )Inchesd   g      @)widthz[fail load image: ]z[image not exist: )r<   r6   r>   rV   ospathexistsr@   add_picturerK   rL   	Exception)rO   srcwidth_percentr6   rV   width_in_inchesrR   es           r   	add_image*MarkdownResult._to_word.<locals>.add_imageG   s    =*ww~~c""C&,]S-@3-F&GO#++-COOCO?*@*G*GI' !!$6se1"=> ! C%%(:3%q&ABBCs   >B 
B0B++B0c                   > T" US5      nUR                  S5      nU(       d  gUR                  S5      nU(       d  g[        S U 5       5      nU R                  [	        U5      US9nSUl        [        U5       Hw  u  pxUR                  SS	/5      n	[        U5       HP  n
U
[	        U	5      :  a(  X   R                  S
S9nXR                  Xz5      l
        M:  SUR                  Xz5      l
        MR     My     g)z$
Parsing HTML table and add to Word
html.parsertableNtrc              3   Z   #    U  H!  n[        UR                  S S/5      5      v   M#     g7f)tdthN)lenfind_all).0rows     r   	<genexpr>=MarkdownResult._to_word.<locals>.add_table.<locals>.<genexpr>d   s%     Kds3s||T4L9::ds   )+)rowscolsz
Table Gridrj   rk   Tstripr3   )findrm   max	add_tablerl   style	enumeraterangeget_textcelltext)document
table_htmlsoup	table_tagrr   max_colsrg   iro   cellsjr~   r1   s               r   rx   *MarkdownResult._to_word.<locals>.add_tableV   s     !];D		'*I%%d+D KdKKH&&CIH&EE&EK#D/dD\2xA3u:~$x00t0<04

1(-02

1(- ) *r   c                 2  > UR                  5       R                  S5      nU GHp  nUR                  5       nU(       d  M  SnUR                  S5      (       a  U R                  USS  5      nT" USSS9  MS  UR                  S5      (       a  U R                  US	S  5      nT" USS
S9  M  UR                  S5      (       a  U R                  USS  5      nT" USSS9  M  UR                  S5      (       a  U R                  USS  5      nT" USSS9  M  UR                  S5      (       a  U R                  USS  5      nT" USSS9  GM$  UR                  S5      (       Ga  SU;   Ga  T" US5      nUR	                  S5      nU(       d  GMf  UR
                  (       at  UR
                  n	U	R                  S5      n
U	R                  SS5      R                  SS5      nU(       a  [        U5      OSnU R                  5       nT" Xb SU
 3U5        GM  UR                  (       a  T" U [        U5      5        GM  UR                  SS9nU(       a  U R                  U5      nT" USS US!9  GMD  GMG  S"U;   a  T" X5        GMX  U R                  U5      nT" US
S#9  GMs     g )$N
)r   r      #####    T
   )rH   rQ   ####       ###       ## r      #       <divtext-align: centerrf   divr_   rX   z100%%r3   rW   /rt   r:   )rH   rP   rI   <table)rQ   )ru   split
startswithadd_paragraphrv   imgr   replacefloatrg   strr|   )r   md_textoutput_pathlineslinetitle_colorpr   r   r   r_   
width_attrr`   r~   r1   rc   rx   rS   s                 r   process_md_page0MarkdownResult._to_word.<locals>.process_md_pageq   sQ    MMO))$/Ezz|)??8,, ..tABx8A'C__W-- ..tABx8A'C__V,, ..tABx8A'C__U++ ..tABx8A'C__T** ..tABx8A'C __V,,1E1M(}=D))E*C ww!gg!ggen%(WWWf%=%E%Ec2%N
=Gj(9S$224!!}AcU%;]K!(CH5"||$|7 ( 6 6t <A/ !HK   %h- !..t4A'R8i r   )Document)Fleftr   N)bs4r1   r   docxr   )
r   	save_pathr   r   r   r   r1   rc   rx   rS   s
         @@@@r   _to_wordMarkdownResult._to_word,   sT    %((+R0 FJ	B,	?	368	9 8	9t 	":95r   c                   ^^^^	^
 SSK Jm  S[        S[        4S jmSS jmS[        4UU4S jjm
S[        S[        4U4S jjm	S	[        S[        4UUUU	U
4S
 jjn/ SQnU R                  SS5      nUR	                  5        H  nUR                  U" XQ5      5        M     UR                  S5        SR                  U5      $ )Nr   r0   sr   c                 ,  ^ U (       d  g/ mU4S jn[         R                  " S[         R                  5      nUR                  X5      nUR	                  SS5      R	                  SS5      R	                  SS	5      R	                  S
S5      R	                  SS5      R	                  SS5      R	                  SS5      R	                  SS5      R	                  SS5      R	                  SS5      n[        T5       H  u  pEUR	                  SU S3U5      nM     U$ )z<
Escape LaTeX special characters while preserving formulas.
r3   c                 h   > TR                  U R                  S5      5        S[        T5      S-
   S3$ )Nr   	@@FORMULA   @@)appendgrouprl   )mplaceholderss    r   replLMarkdownResult._to_latex.<locals>.escape_latex_outside_formula.<locals>.repl   s3    ##AGGAJ/"3|#4Q#6"7r::r   z-(\$\$.*?\$\$|\$.*?\$|\\\[.*?\\\]|\\\(.*?\\\))\z\textbackslash{}&z\&r   z\%$z\$#z\#r   z\_{z\{}z\}~z\textasciitilde{}^z\textasciicircum{}r   r   )recompileDOTALLsubr   rz   )r   r   formula_pattmpr   fr   s         @r   escape_latex_outside_formula>MarkdownResult._to_latex.<locals>.escape_latex_outside_formula   s     L;
 **@"))K //$*C D"56e$e$e$e$e$e$e$2334  ",/kkIaS"3Q7 0Jr   c                 J   [         R                  " SU 5      nU(       a3  [        UR                  S5      5      n[	        S[        US-  S5      5      $ [         R                  " SU 5      nU(       a3  [        UR                  S5      5      n[	        S[        US-  S5      5      $ U$ )z"
Parse the image width attribute.
zwidth\s*=\s*["\']?(\d+)%?["\']?r   g{Gz?g      Y@g      ?zwidth\s*:\s*(\d+)%)r   searchintr   rw   min)r   default_ratior   valm2s        r   get_image_width_from_md_line>MarkdownResult._to_latex.<locals>.get_image_width_from_md_line   s     		<dCA!''!*o4S5[#!6770$7B"((1+&4S5[#!677  r   c           
      L  > SU ;   aw  T" U S5      n/ nUR                  S5       HV  n/ nUR                  SS/5       H)  nUR                  SS9nUR                  T" U5      5        M+     UR                  U5        MX     O_U R                  5        VVs/ s HB  nUR	                  5       (       d  M  UR                  S5       Vs/ s H  nT" U5      PM     snPMD     nnnU(       d  g	[        S
 U 5       5      nU V	s/ s H  oS	/U[        U	5      -
  -  -   PM     n
n	SR                  [        U5       Vs/ s H  nSPM     sn5      nSnUSU S3-  n[        U
5       H)  u  pUSR                  U5      S-   -  nUS:X  d  M$  US-  nM+     US-  nU$ s  snf s  snnf s  sn	f s  snf )z
Process table content.
r   rf   rh   rj   rk   Trt   	r3   c              3   8   #    U  H  n[        U5      v   M     g 7fr(   )rl   )rn   rs     r   rp   GMarkdownResult._to_latex.<locals>.process_table_html.<locals>.<genexpr>  s     1DqCFFDs    z>{\raggedright\arraybackslash}Xz1\begin{center}
\renewcommand{\arraystretch}{1.5}
z\begin{tabularx}{\textwidth}{z}
\toprule
z & z \\
r   z	\midrule
z)\bottomrule
\end{tabularx}
\end{center}

)rm   r|   r   
splitlinesru   r   rw   rl   joinr{   rz   )contentr   rr   rh   ro   rj   r~   c	col_countr   	norm_rowsr   
col_formatlatexr   r1   r   s                  r   process_table_html4MarkdownResult._to_latex.<locals>.process_table_html   s    7"$Wm<---BC kk4,7!{{{6

#?#EF 8 KK$ .  '1133yy{ OciioNo1!4oN3   1D11IBFG$QbTYQ%788$IG>CI>NO>N4>NOJ ME;J<WWE#I.C9446]*E / GGEL+ O HOs*   F/FFF<F4F!Fc                    > [         R                  " SU 5      n/ nU H6  nUR                  5       nU(       d  M  UR                  ST" U5      -   5        M8     SR	                  U5      S-   $ )z/
Process text paragraphs, preserving formulas.
z\n\s*\nz\par z

)r   r   ru   r   r   )r   
paragraphsprocessed_parasr   r   s       r   process_paragraph3MarkdownResult._to_latex.<locals>.process_paragraph  sd     *a0J OGGI&&x2Nq2Q'QR	  
 ;;/&88r   r   c                   > U R                  5       n U (       d  gU R                  S5      (       a  ST	" U SS R                  5       5       S3$ U R                  S5      (       a  ST	" U S	S R                  5       5       S3$ U R                  S
5      (       a  ST	" U SS R                  5       5       S3$ U R                  S5      (       a  ST	" U SS R                  5       5       S3$ U R                  S5      (       a  ST	" U SS R                  5       5       S3$ SU ;   a  SU ;   a  T" U S5      nUR                  S5      nU(       a  UR                  (       a?  UR                  nUR	                  S5      nU SU 3nT
" [        U5      5      nSUS SU S3$ UR                  (       a  T" [        U5      5      $ UR                  SS9nU(       a  ST	" U5       S3$ S U ;   a  T" U 5      $ T" U 5      $ )!z
Process a single line.
r3   r   z\paragraph*{r   Nz}

r   z\subsubsection*{r   r   z\subsection*{r   r   z
\section*{r   r   r   r   r   rf   r   r_   r   z4\begin{figure}[h]
\centering
\includegraphics[width=z.2fz\linewidth]{z}
\end{figure}

Trt   z\begin{center}z\end{center}

r   )ru   r   rv   r   r   r   rg   r|   )r   r   r   r   r   r_   width_ratior~   r1   r   r   r   r   s           r   process_md_line1MarkdownResult._to_latex.<locals>.process_md_line  s    ::<Dx(('(DT!"X^^EU(V'WW]^^w''+,HabIY,Z+[[abbv&&()Ed12hnnFV)W(XX^__u%%%&B48>>CS&T%UU[\\t$$%&B48>>CS&T%UU[\\~"6$">$T=9ii&ww!gg!ggen!*1SE2&B3s8&L77B36G~VYUZ [23
 yy1#c(;;<<d<3D!23OPT3U2VVijj4)$//$T**r   )z\documentclass[12pt]{article}z\usepackage{xeCJK}z\usepackage{fontspec}z\usepackage{graphicx}z\usepackage{amsmath}z\usepackage{geometry}z\usepackage{fancyhdr}z\usepackage{indentfirst}z\usepackage{caption}z\usepackage{tabularx, booktabs}z\usepackage{amssymb}z\usepackage{amsfonts}z\geometry{a4paper, margin=1in}z$\setCJKmainfont{Droid Sans Fallback}z\setmainfont{DejaVu Serif}z\setsansfont{Lato}z\setmonofont{Latin Modern Mono}z\pagestyle{fancy}z\setlength{\parindent}{2em}z\begin{document}
r2   r3   z\end{document}r   )g?)r   r1   r   r   r   r   r   )r   r   r   latex_linesr   r   r1   r   r   r   r   s         @@@@@r   	_to_latexMarkdownResult._to_latex   s    %#	C #	C #	L	!$	3 $	 $	L	9 	9 	9)	+# )	+S )	+ )	+V
. ((+R0&&(Dt?@ ) 	,-yy%%r   r)   r   N)TF)__name__
__module____qualname____firstlineno__r   r   dictr,   r   r   r   __static_attributes____classcell__r   s   @r   r
   r
      s<    %

d DT DNr&c r& r&r   r
   c                   F   ^  \ rS rSrSU 4S jjrU 4S jrS\4S jrSrU =r	$ )DocumentResultih  r   c                 P   > [         TU ]  U5        [        R                  " U 5        g)zB
Initializes a new instance of the class with the specified data.
N)r   r   r   r   s     r   r   DocumentResult.__init__i  s      	4 r   c                 $  > [         TU ]  5       nU R                  SS 5      =nb+  [        U5      nUR                  UR
                  pTU SU U 3nU R                  SS 5      =nb+  [        U5      nUR                  UR
                  pTU SU U 3nU$ r   r   r!   s          r   r   DocumentResult._get_input_fnp  r&   r   c                     U $ r(   r)   r   s    r   r   DocumentResult._to_word|  r.   r   r)   r   )
r   r   r   r   r   r   r   r   r   r   r  s   @r   r  r  h  s    !
$  r   r  c                   F   ^  \ rS rSrSU 4S jjrU 4S jrS\4S jrSrU =r	$ )LatexResulti  r   c                 P   > [         TU ]  U5        [        R                  " U 5        g r(   )r   r   r   r   s     r   r   LatexResult.__init__  s    D!r   c                 $  > [         TU ]  5       nU R                  SS 5      =nb+  [        U5      nUR                  UR
                  pTU SU U 3nU R                  SS 5      =nb+  [        U5      nUR                  UR
                  pTU SU U 3nU$ r   r   r!   s          r   r   LatexResult._get_input_fn  r&   r   c                     U $ r(   r)   r	  s    r   r   LatexResult._to_latex  r.   r   r)   r   )
r   r   r   r   r   r   r   r   r   r   r  s   @r   r  r    s    "
4  r   r  )rZ   r   pathlibr   common.resultr   r   r   r   r
   r  r  r)   r   r   <module>r     sG    
 	  O OO&\=)Z O&d
\9 0,
 r   