Apps скрипт для превращения ss в несколько разных .pdf файлов - PullRequest
0 голосов
/ 26 марта 2019

Я пытался работать со сценарием, созданным Могсдадом, доктором Кесо, Гилбертом У, Брайаном Буфордом и другими.Отсюда: Преобразование всех листов в PDF с помощью скрипта Google Apps

Я хочу:

  1. создавать отдельные файлы .PDF, названные в честь каждого имени листа.
  2. Исключить некоторые файлы из преобразования в PDF (т.е. "БД")
  3. , если это возможно, сгенерировать некоторые листы в формате PDF как Пейзаж, а другие как Портрет.
function savePDF() {
    SpreadsheetApp.flush();

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheets = ss.getSheets();
    var url = ss.getUrl();

    //remove the trailing 'edit' from the url
    url = url.replace(/edit$/,'');

    //additional parameters for exporting the sheet as a pdf
    var url_ext = 'export?exportFormat=pdf&format=pdf' + //export as pdf

    //below parameters are optional...
    '&size=A4' + //paper size
    '&portrait=true' + //orientation, false for landscape
    '&fitw=true' + //fit to width, false for actual size
    '&sheetnames=false&printtitle=false&pagenumbers=false' + //hide optional
    '&gridlines=false' + //false = hide gridlines
    '&fzr=false' + //do not repeat row headers (frozen rows) on each page
    '&gid='; //leave ID empty for now, this will be populated in the FOR loop

    var token = ScriptApp.getOAuthToken();

    //make an empty array to hold your fetched blobs
    var blobs = [];

    //.fetch is called for each sheet, the response is stored in var blobs[]
    for(var i = 0; i < sheets.length; i++) {
        var sheetname = sheets[i].getName();

        //if the sheet is one that you don't want to process,
        //continue' tells the for loop to skip this iteration of the loop
        if(sheetname == "DB")
            continue;

        //grab the blob for the sheet
        var response = UrlFetchApp.fetch(url + url_ext + sheets[i].getSheetId(), {
            headers: {
                'Authorization': 'Bearer ' +  token
            }
        });

        //convert the response to a blob and store in our array
        blobs.push(response.getBlob().setName(sheets[i].getName() + '.pdf'));
        var array_blob = response.getBlob().setName(sheets[i].getName() + '.pdf');
    }
}

К сожалению, ни приведенное выше, ни какое-либо другое решение, по-видимому, не создает несколько файлов .PDF.Всего один гигантский файл, похожий на всю книгу / электронную таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...