2016-04-05 5 views
2

Googleスクリプトを使用してGoogle Docs(PDFに変換した場合)のページ数を取得するにはどうすればよいですか?Googleスクリプトを使用してGoogleドキュメントのページ数を取得するにはどうすればよいですか?

これを試しましたが、ページ数ではなく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; 

} 
+0

「機能しません」とはどういう意味ですか?エラー、間違った値、まったく何も返しませんか? – Bloodied

+0

申し訳ありませんが、私はそれがページの代わりに0を返すことを意味します。 –

答えて

2

正規表現では、PDFファイルにPages/Count 3のような文字列が必要です。 Logger.log(data)でファイルの内容を記録すると、そのような文字列はありません。代わりに、ファイルの先頭付近にページ数があります。

<< /Linearized 1 /L 18937 /H [ 687 137 ] /O 10 /E 17395 /N 3 /T 18641 >> 

次の/ 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; 
} 
+0

ありがとうございます! –

関連する問題