@@ -188,6 +188,7 @@ def __init__(self, url, api_key=None, file_path=None, mime_type=None, params=Non
188188 self .params = params or {}
189189
190190 def load (self ) -> list [Document ]:
191+ page_break_marker = '\f '
191192 with open (self .file_path , 'rb' ) as f :
192193 headers = {}
193194 if self .api_key :
@@ -204,6 +205,7 @@ def load(self) -> list[Document]:
204205 },
205206 data = {
206207 'image_export_mode' : 'placeholder' ,
208+ 'md_page_break_placeholder' : page_break_marker ,
207209 ** self .params ,
208210 },
209211 headers = headers ,
@@ -212,9 +214,19 @@ def load(self) -> list[Document]:
212214 if r .ok :
213215 result = r .json ()
214216 document_data = result .get ('document' , {})
215- text = document_data .get ('md_content' , '<No text content found>' )
217+ md_content = document_data .get ('md_content' , '' )
218+ text = md_content or '<No text content found>'
216219
217220 metadata = {'Content-Type' : self .mime_type } if self .mime_type else {}
221+ if page_break_marker in md_content :
222+ documents = [
223+ Document (page_content = page .strip (), metadata = {** metadata , 'page' : page_idx })
224+ for page_idx , page in enumerate (md_content .split (page_break_marker ))
225+ if page .strip ()
226+ ]
227+ if documents :
228+ log .debug ('Docling extracted text: %s' , text )
229+ return documents
218230
219231 log .debug ('Docling extracted text: %s' , text )
220232 return [Document (page_content = text , metadata = metadata )]
0 commit comments