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

使用Google Script获取新创建Google Docs页码失败求助

解决Google Script获取Google Docs页码的问题

你的原代码始终返回1,问题出在两个核心点:

  1. 刚创建的文档直接转PDF时,Google Docs还没完成自动分页的渲染计算,生成的是未正确分页的PDF版本
  2. 用/Contents正则匹配页码的逻辑完全不可靠——PDF结构里的/Contents标签和实际页数没有对应关系,不同生成场景下这个标签的数量和页数不挂钩

下面给你两种靠谱的解决方法:

方法一:使用Drive API(最准确)

这个方法需要先启用Google Apps Script的高级Drive服务:

  1. 在脚本编辑器顶部点击「扩展」>「Apps Script」(已在编辑器内可跳过)
  2. 点击左侧菜单栏「服务」>「添加服务」,找到「Drive API」并启用

然后用以下代码获取页码:

// 确保文档已保存并完成渲染
if (!doc.getId()) {
  doc.saveAndClose();
}
// 获取文档PDF格式的页数元数据
var pdfMetadata = Drive.Files.get(doc.getId(), {fields: 'pageCount'});
var pageCount = pdfMetadata.pageCount;
Logger.log(pageCount);

方法二:通过文档元素统计(仅适用于手动分页场景)

如果你的文档是手动插入分页符的,可以通过统计分页符数量计算页码,但自动分页的情况不适用:

// 保存并重新打开文档,确保分页生效
doc.saveAndClose();
var doc = DocumentApp.openById(doc.getId());
var body = doc.getBody();
// 统计分页符元素数量,总页数=分页符数+1
var pageBreakCount = body.getPageBreakElements().length;
var pageCount = pageBreakCount + 1;
Logger.log(pageCount);

关键注意事项

  • 无论用哪种方法,都必须先调用saveAndClose(),否则Google Docs不会完成分页计算,获取的页码会不准确
  • 方法一的Drive API方案是唯一能准确统计自动分页文档页码的方式

内容的提问来源于stack exchange,提问作者Lê Phong Nguyễn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:01:10