Forráskód Böngészése

fix: add checks for empty overlay PDFs and log warnings for invalid pages

myhloli 5 hónapja
szülő
commit
e422bdc004
1 módosított fájl, 15 hozzáadás és 2 törlés
  1. 15 2
      mineru/utils/draw_bbox.py

+ 15 - 2
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