我使用了一位善良且乐于助人的评论者提供的脚本,如果我在表格中的格式相同,它就会起作用。但是,当我输入详细信息并且行大小发生变化时,页面会向左移动。有没有办法每次都将其对齐到中心?
这是我使用的脚本:
function SavePage1() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Delivery Orders');
const range = sheet.getRange("A1:D50");
const url = 'https://docs.google.com/spreadsheets/d/' + sheet.getParent().getId() +
'/export?format=pdf&' +
'size=a4&' +
'portrait=true&' +
'fitw=true&' +
'scale=4&' +
'gridlines=false&' +
'printtitle=false&' +
'sheetnames=false&' +
'pagenum=false&' +
'fzr=false&' +
'gid=' + sheet.getSheetId() +
'&range=' + range.getA1Notation() +
'&top_margin=0.197&' +
'right_margin=0.197&' +
'left_margin=0.197&' +
'bottom_margin=0.197&' +
'horizontal_alignment=center&' +
'vertical_alignment=top';
const response = UrlFetchApp.fetch(url, {headers: {"Authorization": 'Bearer ' + ScriptApp.getOAuthToken()}});
const blob = response.getBlob().setName("D0.pdf");
const htmlOutput = HtmlService.createHtmlOutput(`
<a href="data:application/pdf;base64,${Utilities.base64Encode(blob.getBytes())}" download="D0.pdf" id="downloadLink"></a>
<script>document.getElementById('downloadLink').click(); google.script.host.close();</script>
`);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, "Download PDF");
}
我尝试手动更改脚本中的边距,但这不适用于所有页面,因为整个页面的大小可能会发生变化。我希望脚本自动将 pdf 居中对齐。
当我看到你的脚本时,我注意到以下修改点。
horizontal_alignment=center
和vertical_alignment=top
需要修改为horizontal_alignment=CENTER
和vertical_alignment=TOP
。这是来自Andrew Roberts 的要点。因此,请按如下方式修改您的脚本并再次测试。
'horizontal_alignment=center&' +
'vertical_alignment=top';
'horizontal_alignment=CENTER&' +
'vertical_alignment=TOP';