如何通过Google脚本获取Google文档中的页面数?

Kyr*_*rov 5 google-docs google-apps-script

如何通过Google脚本获取Google文档中的页面数量(转换为PDF时)?

我已经尝试过了,但是它返回0而不是页面数。

function getNumPages() 
{
  var blob = DocumentApp.getActiveDocument().getAs("application/pdf");
   var data = blob.getDataAsString();
   var re = /Pages\/Count (\d+)/g;
   var match;
   var pages = 0;

   while(match = re.exec(data)) {
      Logger.log("MATCH = " + match[1]);

      var value = parseInt(match[1]);

      if (value > pages) {
         pages = value;
      }
   }

   Logger.log("pages = " + pages);

   return pages; 

}
Run Code Online (Sandbox Code Playgroud)

小智 5

您的正则表达式需要一个类似于Pages/Count 3PDF文件中的字符串。记录文件内容并Logger.log(data)显示没有这样的字符串。相反,我找到文件开头附近的页数:

<< /Linearized 1 /L 18937 /H [ 687 137 ] /O 10 /E 17395 /N 3 /T 18641 >>
Run Code Online (Sandbox Code Playgroud)

/ N后面的数字是页数。这是提取它的函数:

function getNumPages() {
  var blob = DocumentApp.getActiveDocument().getAs("application/pdf");
  var data = blob.getDataAsString();
  var pages = parseInt(data.match(/ \/N (\d+) /)[1], 10);
  Logger.log("pages = " + pages);
  return pages; 
}
Run Code Online (Sandbox Code Playgroud)