import os from modelscope import snapshot_download from docling.datamodel.pipeline_options import PdfPipelineOptions, RapidOcrOptions from docling.document_converter import ( ConversionResult, DocumentConverter, InputFormat, PdfFormatOption, ) def main(): # Source document to convert source = "https://arxiv.org/pdf/2408.09869v4" # Download RappidOCR models from HuggingFace print("Downloading RapidOCR models") download_path = snapshot_download(repo_id="RapidAI/RapidOCR") # Setup RapidOcrOptions for english detection det_model_path = os.path.join( download_path, "onnx", "PP-OCRv5", "det", "ch_PP-OCRv5_server_det.onnx" ) rec_model_path = os.path.join( download_path, "onnx", "PP-OCRv5", "rec", "ch_PP-OCRv5_rec_server_infer.onnx" ) cls_model_path = os.path.join( download_path, "onnx", "PP-OCRv4", "cls", "ch_ppocr_mobile_v2.0_cls_infer.onnx" ) ocr_options = RapidOcrOptions( det_model_path=det_model_path, rec_model_path=rec_model_path, cls_model_path=cls_model_path, ) pipeline_options = PdfPipelineOptions( ocr_options=ocr_options, ) # Convert the document converter = DocumentConverter( format_options={ InputFormat.PDF: PdfFormatOption( pipeline_options=pipeline_options, ), }, ) conversion_result: ConversionResult = converter.convert(source=source) doc = conversion_result.document md = doc.export_to_markdown() print(md) if __name__ == "__main__": main()