我需要获取 google 文档的页数并且遇到了以下代码
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;
}
但是在运行时我在第 4 行出现以下错误
TypeError: Cannot read property '1' of null
当我记录它输出的数据变量时
%PDF-1.4
%����
1 0 obj
<</Title (Reddit_Fin)
/Producer (Skia/PDF m92 Google Docs Renderer)>>
endobj
3 0 obj
<</ca 1
/BM /Normal>>
endobj
5 0 obj
<</Filter /FlateDecode
/Length 548>> stream
x��UQk�0~ϯ��%[�
cp�}��lka�����s��H��]Y H�>�>����! ����ϐ-8�~�>��j�B�����>z��w�>p�9�yx���<�&J�d�Q2��K~
���fm|{���4�>���/1��
这是一个 8 页的文档。
答案 0 :(得分:1)
例如,在您的情况下,如何计算 Contents
的数量?我认为当通过使用 Google Apps Script 检索为 blob 将 Google Document 转换为 PDF 数据时,可以使用此方法。当这反映到您的脚本中时,它会变成如下所示。
var pages = parseInt(data.match(/ \/N (\d+) /)[1], 10);
var pages = data.match(/\/Contents/g).length;
和
var pages = [...data.matchAll(/\/Contents/g)].length;