如何判断PDF文件的页面方向?
我想打开一个PDF文件,看看页面的方向。就想做这个,没有别的要求。有没有什么简单的方法可以用C++或Python来实现呢?
我不想使用任何外部库来完成这个任务。
1 个回答
3
如果不使用现成的PDF处理库,那可真没什么“快速”或“简单”的。
至少,你得能读取和解析PDF的页面树,这又需要你先读取和解析PDF的对象树(这可能是压缩过的,并且更新了好几次)。
在查看页面树时,你可能会发现页面是旋转过的,或者它的尺寸显示它的宽度比高度大,反之亦然(这就是我们常说的“横向”和“纵向”)。当然,一个页面的尺寸可能是横向的,但它可能被旋转了90度或270度。
但事情比这更复杂!页面的旋转或尺寸并不能定义它的方向;最终,决定方向的是页面上的文本。假设一个页面是纵向的,且没有旋转;然而,它的所有内容(文本和图形)都可能是旋转的——向左或向右侧放,倒过来,或者任何其他角度。
此外,对于专为书籍或期刊设计的PDF,看到一个直立的页面,其页眉和/或页脚在“正常”位置,而内容,比如一个宽表格,被旋转的情况并不少见。
当然,自己写这些东西是非常有趣的。官方的PDF规范包含了足够的信息来帮助你入门;你可以查看PDF规范供程序员参考:Adobe还是ISO?。确保留出足够的时间来阅读所有内容。