diff --git a/mineru/utils/draw_bbox.py b/mineru/utils/draw_bbox.py index 8d626499..be704989 100644 --- a/mineru/utils/draw_bbox.py +++ b/mineru/utils/draw_bbox.py @@ -1,6 +1,7 @@ import json from io import BytesIO +from loguru import logger from pypdf import PdfReader, PdfWriter from reportlab.pdfgen import canvas @@ -182,7 +183,13 @@ def draw_layout_bbox(pdf_info, pdf_bytes, out_path, filename): packet.seek(0) overlay_pdf = PdfReader(packet) - page.merge_page(overlay_pdf.pages[0]) + # 添加检查确保overlay_pdf.pages不为空 + if len(overlay_pdf.pages) > 0: + page.merge_page(overlay_pdf.pages[0]) + else: + # 记录日志并继续处理下一个页面 + logger.warning(f"layout.pdf: 第{i + 1}页未能生成有效的overlay PDF") + output_pdf.add_page(page) # 保存结果 @@ -290,7 +297,13 @@ def draw_span_bbox(pdf_info, pdf_bytes, out_path, filename): packet.seek(0) overlay_pdf = PdfReader(packet) - page.merge_page(overlay_pdf.pages[0]) + # 添加检查确保overlay_pdf.pages不为空 + if len(overlay_pdf.pages) > 0: + page.merge_page(overlay_pdf.pages[0]) + else: + # 记录日志并继续处理下一个页面 + logger.warning(f"span.pdf: 第{i + 1}页未能生成有效的overlay PDF") + output_pdf.add_page(page) # Save the PDF