Я пытаюсь заставить работать href-ссылку (dataUri) в моем листе Google в браузере Chrome терминалов нашей компании. Приведенный ниже код отлично работает в моем частном браузере P C Chrome, но не в браузере компании.
Я использовал код пользователя TheMaster, показанный по следующей ссылке:
Как для загрузки отдельного листа в формате PDF (без экспорта в Google Drive)
Chrome Версия браузера в компании: Версия 83.0.4103.61 (Официальная сборка) (64-бит)
Проблема в том, что автоматическая c загрузка не инициализирована. Интерактивная ссылка не работает при нажатии левой кнопки, но можно сохранить PDF-файл, щелкнув правой кнопкой мыши «Сохранить под».
Есть ли какие-либо настройки, которые необходимо изменить, чтобы сделать автомат c загрузку работай?
Большое спасибо.
function downloadPdfToDesktop() {
var ss = SpreadsheetApp.getActive(),
id = ss.getId(),
sht = ss.getActiveSheet(),
shtId = sht.getSheetId(),
url =
'https://docs.google.com/spreadsheets/d/' +
id +
'/export' +
'?format=pdf&gid=' +
shtId;
var val = 'PDFNAME';//custom pdf name here
val += '.pdf';
//can't download with a different filename directly from server
//download and remove content-disposition header and serve as a dataURI
//Use anchor tag's download attribute to provide a custom filename
var res = UrlFetchApp.fetch(url, {
headers: { Authorization: 'Bearer ' + ScriptApp.getOAuthToken() },
});
SpreadsheetApp.getUi().showModelessDialog(
HtmlService.createHtmlOutput(
'<a target ="_blank" download="' +
val +
'" href = "data:application/pdf;base64,' +
Utilities.base64Encode(res.getContent()) +
'">Click here</a> to download, if download did not start automatically' +
'<script> \
var a = document.querySelector("a"); \
a.addEventListener("click",()=>{setTimeout(google.script.host.close,10)}); \
a.click(); \
</script>'
).setHeight(50),
'Downloading PDF..'
);
}