2016-04-05 6 views
2

Что мне нужно сделать, чтобы получить количество страниц в Документах Google (при конвертации в PDF) с помощью скрипта Google?Как получить количество страниц в Документах 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

Ваше регулярное выражение ожидает строку в виде файла Pages/Count 3 в файле PDF. Запись содержимого файла с 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

Большое спасибо! –

Смежные вопросы