ocr_demo.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import json
  2. import os
  3. from loguru import logger
  4. from pathlib import Path
  5. from magic_pdf.dict2md.ocr_mkcontent import mk_mm_markdown2, mk_nlp_markdown, mk_mm_markdown
  6. from magic_pdf.libs.commons import join_path
  7. from magic_pdf.pdf_parse_by_ocr import parse_pdf_by_ocr
  8. def save_markdown(markdown_text, input_filepath):
  9. # 获取输入文件的目录
  10. directory = os.path.dirname(input_filepath)
  11. # 获取输入文件的文件名(不带扩展名)
  12. base_name = os.path.basename(input_filepath)
  13. file_name_without_ext = os.path.splitext(base_name)[0]
  14. # 定义输出文件的路径
  15. output_filepath = os.path.join(directory, f"{file_name_without_ext}.md")
  16. # 将Markdown文本写入.md文件
  17. with open(output_filepath, 'w', encoding='utf-8') as file:
  18. file.write(markdown_text)
  19. def read_json_file(file_path):
  20. with open(file_path, 'r') as f:
  21. data = json.load(f)
  22. return data
  23. if __name__ == '__main__':
  24. ocr_pdf_path = r"D:\project\20231108code-clean\ocr\new\双栏\s0043-1354(02)00581-x.pdf"
  25. ocr_json_file_path = r"D:\project\20231108code-clean\ocr\new\双栏\s0043-1354(02)00581-x.json"
  26. # ocr_pdf_path = r"D:\project\20231108code-clean\ocr\new\双栏\j.1540-627x.2006.00176.x.pdf"
  27. # ocr_json_file_path = r"D:\project\20231108code-clean\ocr\new\双栏\j.1540-627x.2006.00176.x.json"
  28. ocr_pdf_path = r"/home/cxu/workspace/Magic-PDF/ocr_demo/j.1540-627x.2006.00176.x.pdf"
  29. ocr_json_file_path = r"/home/cxu/workspace/Magic-PDF/ocr_demo/j.1540-627x.2006.00176.x.json"
  30. try:
  31. ocr_pdf_model_info = read_json_file(ocr_json_file_path)
  32. pth = Path(ocr_json_file_path)
  33. book_name = pth.name
  34. save_tmp_path = os.path.join(os.path.dirname(__file__), "../..", "tmp", "unittest")
  35. save_path = join_path(save_tmp_path, "md")
  36. save_path_with_bookname = os.path.join(save_path, book_name)
  37. text_content_save_path = f"{save_path_with_bookname}/book.md"
  38. pdf_info_dict = parse_pdf_by_ocr(
  39. ocr_pdf_path,
  40. None,
  41. ocr_pdf_model_info,
  42. save_path,
  43. book_name,
  44. debug_mode=True)
  45. parent_dir = os.path.dirname(text_content_save_path)
  46. if not os.path.exists(parent_dir):
  47. os.makedirs(parent_dir)
  48. # markdown_content = mk_nlp_markdown(pdf_info_dict)
  49. markdown_content = mk_mm_markdown2(pdf_info_dict)
  50. with open(text_content_save_path, "w", encoding="utf-8") as f:
  51. f.write(markdown_content)
  52. # logger.info(markdown_content)
  53. # save_markdown(markdown_text, ocr_json_file_path)
  54. except Exception as e:
  55. logger.exception(e)