Экспорт в PDF с параметрами - PullRequest
0 голосов
/ 26 января 2019

Читал о том, как сохранить лист в PDF-файл, и я наткнулся на этот код, он работал хорошо раньше, но теперь он не получит ошибку «uiapp deprecated». Как я могу это исправить? Кстати, коды не мои, я просто настраиваю их в соответствии со своими предпочтениями. Он предлагает использовать HTML-сервисы.

function PDF() {
    SpreadsheetApp.flush();
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();
    var gid = sheet.getSheetId();
    var pdfOpts = '&size=letter&fzr=false&portrait=true&fitw=false&gridlines=false&scale=1&top_margin=0.17&bottom_margin=0.17&left_margin=0.1&right_margin=0.1&printtitle=false&sheetnames=false&pagenum=UNDEFINED&attachment=false&gid='+gid;
    var row2 = 66;
    var printRange = '&c1=0' + '&r1=0' + '&c2=15' + '&r2='+row2; // B2:APn
    var url = ss.getUrl().replace(/edit$/, '') + 'export?format=pdf' + pdfOpts + printRange;
    var app = UiApp.createApplication().setWidth(300).setHeight(100);
    app.setTitle('Print this sheet');
    var link = app.createAnchor('Download PDF', url).setTarget('_new');
    app.add(link);
    ss.show(app);
};

1 Ответ

0 голосов
/ 26 января 2019

Как насчет этой модификации? Я думаю, что может быть несколько ответов для вашей ситуации. Поэтому, пожалуйста, подумайте об этом как об одном из них.

Модифицированный скрипт:

В этой модификации я использовал метод showModalDialog класса Ui.

От:
var app = UiApp.createApplication().setWidth(300).setHeight(100);
app.setTitle('Print this sheet');
var link = app.createAnchor('Download PDF', url).setTarget('_new');
app.add(link);
ss.show(app);
Для того, чтобы:
var html = '<a href="' + url.replace(/&/g, "&amp;") + '" target="_new">Download PDF</a>';
var userInterface = HtmlService.createHtmlOutput(html).setWidth(300).setHeight(100);
SpreadsheetApp.getUi().showModalDialog(userInterface, 'Print this sheet');

Справка:

Если я неправильно понял ваш вопрос, пожалуйста, скажите мне. Я хотел бы изменить его.

...