document-ocr / ocr_studio /export_docx.py
alirezaaminzadeh's picture
Expand document OCR with PDF support, bilingual UI, and extra exports
98e1d9f verified
Raw
History Blame Contribute Delete
816 Bytes
from __future__ import annotations
from pathlib import Path
from ocr_studio.language import contains_arabic_script
def write_docx_file(text: str, destination: Path, language: str) -> Path:
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml import OxmlElement
document = Document()
rtl = language in {"fa", "fa+en"} or contains_arabic_script(text)
lines = (text or "").splitlines() or [""]
for block in lines:
paragraph = document.add_paragraph(block)
if not rtl:
continue
paragraph.alignment = WD_ALIGN_PARAGRAPH.RIGHT
p_pr = paragraph._p.get_or_add_pPr()
bidi = OxmlElement("w:bidi")
p_pr.append(bidi)
document.save(str(destination))
return destination