OCRPipe.py 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. from loguru import logger
  2. from magic_pdf.libs.MakeContentConfig import DropMode, MakeMode
  3. from magic_pdf.model.doc_analyze_by_custom_model import doc_analyze
  4. from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter
  5. from magic_pdf.pipe.AbsPipe import AbsPipe
  6. from magic_pdf.user_api import parse_ocr_pdf
  7. class OCRPipe(AbsPipe):
  8. def __init__(self, pdf_bytes: bytes, model_list: list, image_writer: AbsReaderWriter, is_debug: bool = False):
  9. super().__init__(pdf_bytes, model_list, image_writer, is_debug)
  10. def pipe_classify(self):
  11. pass
  12. def pipe_analyze(self):
  13. self.model_list = doc_analyze(self.pdf_bytes, ocr=True)
  14. def pipe_parse(self):
  15. self.pdf_mid_data = parse_ocr_pdf(self.pdf_bytes, self.model_list, self.image_writer, is_debug=self.is_debug)
  16. def pipe_mk_uni_format(self, img_parent_path: str, drop_mode=DropMode.WHOLE_PDF):
  17. result = super().pipe_mk_uni_format(img_parent_path, drop_mode)
  18. logger.info("ocr_pipe mk content list finished")
  19. return result
  20. def pipe_mk_markdown(self, img_parent_path: str, drop_mode=DropMode.WHOLE_PDF, md_make_mode=MakeMode.MM_MD):
  21. result = super().pipe_mk_markdown(img_parent_path, drop_mode, md_make_mode)
  22. logger.info(f"ocr_pipe mk {md_make_mode} finished")
  23. return result