_tmp_blankscan.py 772 B

12345678910111213141516171819202122232425
  1. # -*- coding: utf-8 -*-
  2. """扫描 PDF 中内容过少(大片空白)的页面。"""
  3. import io
  4. import os
  5. import sys
  6. import fitz
  7. sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
  8. PDF = os.path.join(os.path.dirname(os.path.abspath(__file__)),
  9. "_tmp_inspect", "current.pdf")
  10. d = fitz.open(PDF)
  11. bad = []
  12. for i, pg in enumerate(d, 1):
  13. txt = pg.get_text().strip()
  14. # 页码本身算 2~4 个字符,先去掉
  15. nchar = len(txt.replace("\n", ""))
  16. nimg = len(pg.get_images(full=True))
  17. if nimg == 0 and nchar < 90:
  18. bad.append((i, nchar, txt.replace("\n", " / ")[:70]))
  19. print(f"共 {d.page_count} 页;内容过少的页 {len(bad)} 页")
  20. for i, n, t in bad:
  21. print(f" p{i:>3} {n:>3} 字 「{t}」")
  22. d.close()