[MS] Add OCR layer service for embedded images and PDF scans#1541
Open
lesyk wants to merge 23 commits intomicrosoft:mainfrom
Open
[MS] Add OCR layer service for embedded images and PDF scans#1541lesyk wants to merge 23 commits intomicrosoft:mainfrom
lesyk wants to merge 23 commits intomicrosoft:mainfrom
Conversation
- Created HTML file with multiple images for testing OCR extraction. - Added several PDF files with different layouts and image placements to validate OCR functionality. - Introduced PPTX files with complex layouts and images at various positions for comprehensive testing. - Included XLSX files with multiple images and complex layouts to ensure accurate OCR extraction. - Implemented a new test suite in `test_ocr.py` to validate OCR functionality across all document types, ensuring context preservation and accuracy.
- Refactor image extraction and processing in PDF, PPTX, and XLSX converters for improved readability and consistency. - Implement detailed validation for OCR text positioning relative to surrounding text in test cases. - Introduce comprehensive tests for expected OCR results across various document types, ensuring no base64 images are present. - Improve error handling and logging for better debugging during OCR extraction.
zashed
approved these changes
Jan 27, 2026
zashed
approved these changes
Jan 27, 2026
…nctionality across DOCX, PDF, PPTX, and XLSX converters
- Introduced multiple test documents for PDF, DOCX, XLSX, and PPTX formats, covering scenarios with images at the start, middle, and end. - Implemented tests for complex layouts, multi-page documents, and documents with multiple images. - Created a new test script `test_ocr.py` to validate OCR functionality, ensuring context preservation and accurate text extraction. - Added expected OCR results for validation against ground truth. - Included tests for scanned documents to verify OCR fallback mechanisms.
…kitdown into u/vilesyk/inline_image
… and OCR format consistency - Deleted `html_image_start.html` and `html_multiple_images.html` as they are no longer needed. - Updated `test_file_uris` in `test_module_misc.py` to simplify assertions by removing unnecessary `url2pathname` usage. - Removed `test_ocr_format_consistency.py` as it is no longer relevant to the current testing framework.
… for multipage PDFs
…converter and test files
…kitdown into u/vilesyk/inline_image
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces the new
markitdown-ocrplugin, which adds LLM Vision-based OCR capabilities to MarkItDown. The plugin enables extraction of text from images embedded in PDF, DOCX, PPTX, and XLSX files using any OpenAI-compatible client, without requiring additional ML libraries or binaries.#1344
Output for testing files:
docx_image_end.docx
docx_image_middle.docx
docx_image_start.docx
docx_multipage.docx
docx_multiple_images.docx
pdf_complex_layout.pdf
pdf_image_end.pdf
pdf_image_middle.pdf
pdf_image_start.pdf
pdf_multiple_images.pdf
pdf_scanned_invoice.pdf
pdf_scanned_meeting_minutes.pdf
pdf_scanned_minimal.pdf
pdf_scanned_report.pdf
pdf_scanned_sales_report.pdf
pptx_complex_layout.pptx
pptx_image_end.pptx
pptx_image_middle.pptx
pptx_image_start.pptx
pptx_multiple_images.pptx
xlsx_complex_layout.xlsx
xlsx_image_end.xlsx
xlsx_image_middle.xlsx
xlsx_image_start.xlsx
xlsx_multiple_images.xlsx