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

如何使用Ghostscript与Python获取PDF的总页数

Python结合Ghostscript统计PDF页数并保存至变量

核心实现思路

用Python的subprocess模块调用Ghostscript命令行工具,捕获输出结果并转成整数变量,完全在Python环境内完成逻辑。

前提条件

已安装Ghostscript,确保gs命令能在系统终端直接执行;如果没加入系统PATH,代码里直接写Ghostscript可执行文件的完整路径也行。

代码实现

import subprocess

def get_pdf_page_count(pdf_path):
    try:
        # 调用Ghostscript获取页数
        output = subprocess.check_output(
            [
                "gs",
                "-q",  # 静默模式,屏蔽冗余日志
                "-dNODISPLAY",  # 不启动图形界面,适合后台运行
                "-c",
                f"({pdf_path}) (r) file runpdfbegin pdfpagecount = quit"
            ],
            stderr=subprocess.STDOUT,
            text=True
        )
        # 提取结果并转为整数变量
        page_count = int(output.strip())
        return page_count
    except subprocess.CalledProcessError as e:
        print(f"统计失败: {e.output}")
        return None
    except ValueError:
        print("无法解析页数结果")
        return None

# 使用示例
target_pdf = "test.pdf"
pdf_pages = get_pdf_page_count(target_pdf)
if pdf_pages is not None:
    print(f"该PDF总页数: {pdf_pages}")
    # 变量pdf_pages已存储页数,可直接用于后续逻辑

关键参数说明

  • -q:关闭Ghostscript的冗余输出,只返回页数数字
  • -dNODISPLAY:让Ghostscript不加载图形驱动,避免不必要的资源占用
  • pdfpagecount:Ghostscript内置操作符,专门用于返回PDF的总页数

如果你的Ghostscript没在系统PATH里,把代码中的"gs"换成完整路径即可,比如Windows下的"C:/Program Files/gs/gs10.02.1/bin/gswin64c.exe",Linux/macOS下的"/usr/bin/gs"。

可选替代方案

要是不想依赖Ghostscript,也可以用PyMuPDF(fitz)库实现,代码更简洁:

import fitz

def get_pdf_page_count(pdf_path):
    try:
        with fitz.open(pdf_path) as doc:
            return doc.page_count
    except Exception as e:
        print(f"统计失败: {e}")
        return None

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 17:25:52