You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算PDF中图片的实际DPI?解决OCR后页面尺寸异常问题

解决多页PDF OCR时的页面尺寸异常问题

核心结论:可以通过PDF页面尺寸和提取的图片像素计算正确DPI

PDF的默认单位是点(Point),行业标准为1英寸=72点,这是计算的核心依据。你可以按以下步骤推导正确的DPI:

步骤1:将PDF页面尺寸从点转换为英寸

用PDF页面的宽/高点数除以72,得到实际物理尺寸:

  • 宽度:612.24 ÷ 72 = 8.503英寸(对应标准8.5英寸)
  • 高度:790.8 ÷ 72 = 10.983英寸(对应标准11英寸)

步骤2:用图片像素数除以物理尺寸得到DPI

用提取出的图片宽/高像素数,分别除以对应的物理尺寸:

  • 宽度DPI:2552 ÷ 8.5 ≈ 300DPI
  • 高度DPI:3295 ÷ 11 ≈ 299.5DPI(接近300DPI,和原PDF一致)

自动化处理建议

在你的OCR流程中加入自动计算逻辑,无需手动预设参数:

  1. 用pypdf获取每页的页面尺寸(单位为点)
  2. 计算物理尺寸:物理宽度 = 页面宽点数 / 72,物理高度 = 页面高点数 /72
  3. 获取提取图片的像素尺寸(比如用PIL的Image.size)
  4. 计算目标DPI:目标DPI = 图片像素宽 / 物理宽度(宽高计算结果通常一致,取任意值即可)
  5. 调整图片DPI后再喂给Tesseract:
    用ImageMagick的命令:
    convert input.png -density [计算出的DPI] -units PixelsPerInch output.png
    
    或用Python PIL库处理:
    from PIL import Image
    
    img = Image.open("input.png")
    # 代入计算得到的dpi值
    target_dpi = (2552 / 8.5, 3295 / 11)
    img.save("output.png", dpi=target_dpi)
    
  6. 用调整后的图片生成OCR PDF,即可保持原页面尺寸。

内容的提问来源于stack exchange,提问作者user2509710

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:01:21