我在下面有一个脚本,可以将工作表另存为 PDF。一切正常。但是我需要在脚本中插入一个命令,该命令将在特定行(例如第 25 行)上保存为 PDF 的工作表上设置分页符。也就是说,第 25 行之后的所有内容都将在结果中的新页面上PDF文件。这可能吗?感谢您的帮助。
`function printPDFsheet10() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourcesheet = ss.getSheetByName("Doklad-PKBOZP");
var originalSheet = ss.getActiveSheet(); // uložení ID listu, ze kterého se funkce spouští
// filtruj sloupec L a odstraň řádky s mezerami
sourcesheet.getRange('L27').activate();
var criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues([''])
.build();
sourcesheet.getFilter().setColumnFilterCriteria(12, criteria);
// export do PDF
var id = ss.getId();
var shtId = sourcesheet.getSheetId();
var url = 'https://docs.google.com/spreadsheets/d/' + id + '/export' +
'?format=pdf&landscape=false&portrait=true&size=A4&scale=2&fitw=true&fith=true&top_margin=0.60&bottom_margin=0.60&left_margin=0.60&right_margin=0.60&gid=' +
shtId;
var sheetName = sourcesheet.getName();
var timestamp = Utilities.formatDate(new Date(), "GMT+1", "yyyyMMdd-HHmmss");
var val = sheetName + "_" + timestamp + ".pdf";
var res = UrlFetchApp.fetch(url, {
headers: { Authorization: 'Bearer ' + ScriptApp.getOAuthToken() },
});
// vloží novou stránku před řádek 25
var range = sourcesheet.getRange('A25');
var anchor = range.getCell(1, 1);
var drawing = anchor.createDrawing();
var image = drawing.getImage();
sourcesheet.insertPageBreak(25);
drawing.remove();
// zobrazení dialogového okna pro stažení PDF souboru
SpreadsheetApp.getUi().showModelessDialog(
HtmlService.createHtmlOutput(
'<a target ="_blank" download="' +
val +
'" href = "data:application/pdf;base64,' +
Utilities.base64Encode(res.getContent()) +
'">Klikněte zde</a> pro stažení PDF souboru, pokud stahování nezačalo automaticky.' +
'<script> \
var a = document.querySelector("a"); \
a.addEventListener("click",()=>{setTimeout(google.script.host.close,10)}); \
a.click(); \
</script>'
).setHeight(150),
'Stahování vašeho protokolu v PDF..'
);
ss.setActiveSheet(originalSheet); // nastavení původního listu jako aktivní
}`