Python Cookbook-2.24 在 Mac OSX平台上统计PDF文档的页数

任务

你的计算机运行着比较新的MacOSX系统(10.3的"Panther"或更新的版本),现在需要知道一个 PDF 文档的页数。

解决方案

PDF格式和 Python都已经集成到了Mac OsX系统中(10.3或更高版本),因而这个问题解决起来也相对比较容易:

python 复制代码
#!/usr/bin python
import CoreGraphics
def pageCount(pdfPath):
#返回指定路径的 PDF 文档的页数
	pdf = CoreGraphics.CGPDFDocumentCreateWithProvider(CoreGraphics.CGDataProviderCreatewithFilename(pdfPath)
	return pdf.getNumberOfPages()
if __name__ == '__main__'
	import sys
	for path in sys.argv[l:]:
		print pageCount(path)

讨论

另一个完成任务的方法是使用 Python扩展,PyObjC,它使得 Python 代码可以利用 MacOS X所带的 Foundation 和 AppKit 框架的能力。该方案也可以让你的代码运行在较老版本的 Mac OsX中,比如 10.2Jaguar。不过依赖并使用 Mac OsX10.3 或更高版本提供的集成 Python 的环境和 CoreGraphics扩展(也是 Mac OSX"Panther"的一部分),可以使我们的代码可直接利用 Apple 强大的 Quartz 图形引擎。

相关推荐
神奇元创29 分钟前
商用级光路加速卡:大模型推理的极速落地方案
python·神经网络·fpga开发·dsp开发
凡人叶枫32 分钟前
Effective C++ 条款22:将成员变量声明为 private
linux·开发语言·c++
Qt程序员38 分钟前
掌握 Linux 内核调度:从原理到实现(进程篇)
java·开发语言
运筹vivo@42 分钟前
Python ContextVar 底层机制与内存模型拆解
前端·数据库·python
code bean42 分钟前
【LangChain】检索器完全指南:从向量检索到生产级 RAG 架构
java·开发语言·微服务
大白菜和MySQL44 分钟前
java应用排查高线程
java·python
LabVIEW开发1 小时前
LabVIEW + MATLAB 混合编程:爆炸场测试数据精准采集方案
开发语言·matlab·labview
嵌入式协会20240721 小时前
(已解决)MinIO python 获取预签名出现forbidden、errornetwork等错误
java·开发语言·python
宸丶一1 小时前
Day 14:任务追踪 - 让 Agent 拥有项目管理能力
开发语言·python