【问题标题】:PDF FILE ORIENTATION detectionPDF 文件方向检测
【发布时间】:2016-06-13 17:59:49
【问题描述】:

我需要帮助来使用 Python 检测 PDF 文件(纵向或横向)的方向。有人有想法吗?

我一直在尝试不同的库,但还没有成功。

【问题讨论】:

  • 我只检测第一页没问题!

标签: python html pdf web-applications


【解决方案1】:

每个页面可以有不同的方向,但您可以使用PyPDF 来检测第一页的页面大小并相应地确定方向:

from PyPDF2  import PdfFileReader

pdf = PdfFileReader(file('example.pdf'))
page = pdf.getPage(0).mediaBox
if page.getUpperRight_x() - page.getUpperLeft_x() > page.getUpperRight_y() - page.getLowerRight_y():
    print('Landscape')
else:
    print('Portrait')

【讨论】:

  • 好! tnx :) 我也可以用这个 Mediabox 裁剪页面
  • 考虑以下媒体框 [100, 0, 200, 199]。您的算法会声明它是横向的(如 X > Y)。然而,该文件将是纵向的(宽度 = 100,高度 = 199)。不要假设媒体框会从 0、0 开始,它不是必须的。
  • 另一个具有挑战性的问题是,我们如何理解pdf文件是A4、A3或其他尺寸。 mediaBox 输出基于像素,我尝试将其转换为英寸,但它与不同的 A4 尺寸页面集不一致。
  • 一般为72dpi,即1英寸=72点。 Mediabox 是页面大小减去边距,所以它会比实际 A4 宽度更窄。您必须考虑到边距的容差。
  • 这个答案忽略了页面 Rotate 条目的影响,不是吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-23
  • 2013-03-12
  • 1970-01-01
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多