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 图形引擎。

相关推荐
默_笙3 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
qq_426003963 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技3 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时3 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
C语言小火车3 天前
C/C++ 为什么需要编译器?
开发语言·c++
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1233 天前
2026年第38周GitHub趋势周报
python·科技·github