我通过 Google 文档将通过 Google 表单输入的信息传输为 pdf。文本已添加,但我不知道如何添加图像。文档文件id等都存在于代码中。提交表单后,添加的图片为 doc id =
1I63WRYGP169inM1TvCJIaMSTBozaNZygGrdvPLcTLrechAzrVZWmjWKVuMTKM92vZDV7p1JU
,但我找不到如何做。
var docFile = DriveApp.getFileById('1cc1xjtE6WyYjVVwY95earN6xht2mP01EEPhAyC-yFHE');
var TempFolder = DriveApp.getFolderById('1vaXCrOJAg1x2JCzEng9nSPn6om8dWmib');
var PDFFolder = DriveApp.getFolderById('16r-564UEEuBcyfTIX0xnjJRk6bFJjzL1');
var ss = SpreadsheetApp.openById('1kZFrbnjgVnq7wB4mFYAMCjFiDB2PAfkmbYGvhLg_U00');
var sh = ss.getSheetByName('Form Yanıtları 1');
var data = sh.getRange(ss.getLastRow(),1,1,9).getValues()
data.forEach(r=>{
var item1 = r[1]
var item2 = r[2]
var item3 = r[3]
var item4 = r[4]
var item5 = r[5]
var item6 = r[6]
var item7 = r[7]
var item8 = r[8]
var item9 = r[9]
item6 = LanguageApp.translate(Utilities.formatDate(item6,'GMT+7','dd MMMM yyyy'),'en','tr').split(' ').map((a,i) =>{if(i != 2 || parseInt(a)>2100){return a}; a = parseInt(a); return a}).join(' ')
item7 = Utilities.formatDate(item7, 'GMT+3', 'HH:mm'); // Denetim başlama saati
item8 = Utilities.formatDate(item8, 'GMT+3', 'HH:mm'); // Denetim bitiş saati
CreatePDF(docFile,TempFolder,PDFFolder,item1,item2,item3,item4,item5,item6,item7,item8,item9)
})
}
function CreatePDF(docFile,TempFolder,PDFFolder,item1,item2,item3,item4,item5,item6,item7,item8,item9){
var tempFile = docFile.makeCopy(TempFolder)
var tempDoc = DocumentApp.openById(tempFile.getId())
tempDoc.getBody().replaceText("{MAĞAZA ADI}",item2)
tempDoc.getBody().replaceText("{DENETİMİ YAPAN}",item3)
tempDoc.getBody().replaceText("{İLGİLİ HAFTA}",item4)
tempDoc.getBody().replaceText("{MAĞAZA PUANI}",item5)
tempDoc.getBody().replaceText("{DENETİM TARİHİ}",item6)
tempDoc.getBody().replaceText("{DENETİM BAŞLAMA SAATİ}",item7)
tempDoc.getBody().replaceText("{DENETİM BİTİŞ SAATİ}",item8)
tempDoc.getBody().replaceText("{BİR ÖNCEKİ DENETİMİ YAPAN}",item9)
tempDoc.saveAndClose()
TempFolder.removeFile(tempFile)
var PdfContent = tempFile.getAs(MimeType.PDF)
var PdfFile = PDFFolder.createFile(PdfContent).setName(item2)
MailApp.sendEmail(item1, item2 + ' ŞUBE', 'DENETİM FORMU..', {
attachments: [PdfFile.getAs(MimeType.PDF)]
});
} ```
根据您提供的示例电子表格、文档和您的脚本,以下修改如何?
在使用此脚本之前,请设置您的电子表格 ID、文档 ID 和文件夹 ID。并且,请再次确认工作表名称和占位符。因为我复制你的脚本时,出现了一些乱码。
function myFunction() {
var docFile = DriveApp.getFileById('###');
var TempFolder = DriveApp.getFolderById('###');
var PDFFolder = DriveApp.getFolderById('###');
var ss = SpreadsheetApp.openById('###');
var sh = ss.getSheetByName('Form Yanıtları 1');
var data = sh.getRange(ss.getLastRow(), 1, 1, 11).getValues()
data.forEach(r => {
var item1 = r[1]//BİRİNCİ SÜTUN
var item2 = r[2]//İKİNCİ SÜTUN
var item3 = r[3]//ÜÇÜNCÜ SÜTN
var item4 = r[4]//DÖRDÜNCÜ
var item5 = r[5]//BEŞİNCİ
var item6 = r[6]//ALTINCI
var item7 = r[7]//YEDİNCİ
var item8 = r[8]//SEKİZİNCİ
var item9 = r[9]//DOKUZUNCU
item6 = LanguageApp.translate(Utilities.formatDate(item6, 'GMT+7', 'dd MMMM yyyy'), 'en', 'tr').split(' ').map((a, i) => { if (i != 2 || parseInt(a) > 2100) { return a }; a = parseInt(a); return a }).join(' ')
item7 = Utilities.formatDate(item7, 'GMT+3', 'HH:mm'); // Denetim başlama saati
item8 = Utilities.formatDate(item8, 'GMT+3', 'HH:mm'); // Denetim bitiş saati
CreatePDF(docFile, TempFolder, PDFFolder, item1, item2, item3, item4, item5, item6, item7, item8, item9, r[10].split("=")[1]);
})
}
function CreatePDF(docFile, TempFolder, PDFFolder, item1, item2, item3, item4, item5, item6, item7, item8, item9, id) {
var tempFile = docFile.makeCopy(TempFolder);
var tempDoc = DocumentApp.openById(tempFile.getId());
var body = tempDoc.getBody();
body.replaceText("{MAĞAZA ADI}", item2);
body.replaceText("{DENETİMİ YAPAN}", item3);
body.replaceText("{İLGİLİ HAFTA}", item4);
body.replaceText("{MAĞAZA PUANI}", item5);
body.replaceText("{DENETİM TARİHİ}", item6);
body.replaceText("{DENETİM BAŞLAMA SAATİ}", item7);
body.replaceText("{DENETİM BİTİŞ SAATİ}", item8);
body.replaceText("{BİR ÖNCEKİ DENETİMİ YAPAN}", item9);
// Ref: https://tanaikech.github.io/2018/08/20/replacing-text-to-image-for-google-document-using-google-apps-script/ Author: me
// Ref: https://stackoverflow.com/q/51912364
var replaceTextToImage = function (body, searchText, image, width) {
var next = body.findText(searchText);
if (!next) return;
var r = next.getElement();
r.asText().setText("");
var img = r.getParent().asParagraph().insertInlineImage(0, image);
if (width && typeof width == "number") {
var w = img.getWidth();
var h = img.getHeight();
img.setWidth(width);
img.setHeight(width * h / w);
}
return next;
};
replaceTextToImage(body, "{IMAGE1}", DriveApp.getFileById(id).getBlob(), 500);
tempDoc.saveAndClose();
TempFolder.removeFile(tempFile);
var PdfContent = tempFile.getAs(MimeType.PDF);
var PdfFile = PDFFolder.createFile(PdfContent).setName(item2);
MailApp.sendEmail(item1, item2 + ' ŞUBE', 'DENETİM FORMU..', { attachments: [PdfFile.getBlob()] });
}