現在スプレッドシートをPDFに自動で作成するコードを組んでいます。 そのコードを実行した際、一回目はちゃんとPDF作成できました。しかし、サイズが合っていない、グリッドラインが入っている問題があったため、多少コードを変更し、再度試したところ、Docsが作成されるようになりました。前のコードに戻してもPDFではなくDocsだけが作成されるようになりました。しかおそのDocsはプレビューだとコードの文字列が何ページも、Docsで開くと選択するとログイン画面?の形を崩したものが表示されます。
以下が使用したコードです。
function myFunction2(){ var folderid = "OOOOOOOOOOOOOOOOOOOOOO"; var ssid = "OOOOOOOOOOOOOOOOOOOOOO"; var sheetid = "OOOOOOOOOOOOOOOOOOOOOO"; var ss = SpreadsheetApp.openById("OOOOOOOOOOOOOOOOOOOOOO"); var timestamp = getTimestamp(); createPDF( folderid, ssid, sheetid, timestamp ); } function createPDF(folderid, ssid, sheetid, filename){ var folder = DriveApp.getFolderById("1uMfKQW52eT1Jtt9CbdK9L3hXp_9iJerF"); var url = "https://docs.google.com/spreadsheets/d/OOOOOOOOOOOOOOOOOOOOOO/export?format=pdf&gid=1871207794".replace("OOOOOOOOOOOOOOOOOOOOOO", ssid); var opts = { exportFormat: "pdf", format: "pdf", size: "A4", portrait: "true", fitw: "true", sheetnames: "false", printtitle: "false", pagenumbers: "false", gridlines: "false", fzr: "false", gid: sheetid }; var url_ext = []; for( optName in opts ){ url_ext.push( optName + "=" + opts[optName] ); } var options = url_ext.join("&"); var token = ScriptApp.getOAuthToken(); var response = UrlFetchApp.fetch(url + options, { headers: { 'Authorization': 'Bearer' + token } }); var blob = response.getBlob().setName(filename + '.pdf'); folder.createFile(blob); } function getTimestamp () { var now = new Date(); var year = now.getYear(); var month = now.getMonth() + 1; var day = now.getDate(); var hour = now.getHours(); var min = now.getMinutes(); return year + "_" + month + "_" + day + "_" + hour + min; } function onOpen() { var sheet = SpreadsheetApp.getActiveSpreadsheet(); var entries = [ { name : "Create PDF", functionName : "myFunction" } ]; sheet.addMenu("スクリプト", entries); };
尚、参考にしたのは以下のサイトです。
https://www.virment.com/create-pdf-google-apps-script/
ちなみに変更したというのは
var response = UrlFetchApp.fetch(url + options, { headers: { 'Authorization': 'Bearer' + token } });
の部分です。 エラーが出てたので optionsを一回外したところ、PDFが作成されたのですが、上記で記述した通り、グリッドラインなどが表示されていたため、 optionsを再度記載したところ、Docsになりました。念のため optionsをもう一回外して実行したところ、PDFではなくDocs作成されます。
原因が何なのか、まったくわからない状態です。当方、GASに関しては最近触り始めた程度の初心者なので、ご教授いただけると幸いです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/16 04:45
2019/08/16 04:56
2019/08/16 05:51