gpt4 book ai didi

javascript - 将 Google Slide 作为 PDF 附加,并在通过电子邮件发送时替换占位符文本

转载 作者:行者123 更新时间:2023-11-28 16:47:59 26 4
gpt4 key购买 nike

我起草了以下代码,但它附加了带有占位符的 pdf。 enter image description here

下面的代码从 Google 表单中获取数据,将其填充到 Google 工作表上,并用 Google 表单中的数据替换模板上的所有占位符。添加了“表单提交时”触发器。代码如下:

function DigitalReceipts() {

SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Receipts").activate();

var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lr = ss.getLastRow()

for (var i =2;i<lr;i++){

if(ss.getRange(i, 1).getValue()){

//Make a copy of the template file - power point
var documentId = DriveApp.getFileById('1FtgZuJb4KpChhgehPp1lIEtrsjvykAqRiYl5rL8yv2Q').makeCopy().getId();

var RV = ss.getRange(i, 2).getValue();

var DateFormat = ss.getRange(i, 4).getValue();
var Date = Utilities.formatDate(DateFormat, "GMT+0400", "dd MMM yyyy");

var Amount = ss.getRange(i, 5).getValue().toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
var Name = ss.getRange(i, 6).getValue();
var Description = ss.getRange(i, 7).getValue();
var SalesOwner = ss.getRange(i, 8).getValue();
var PaymentType = ss.getRange(i, 9).getValue();
var PaymentReference = ss.getRange(i, 10).getValue();

//Get the document body as a variable
var body = SlidesApp.openById(documentId);

body.replaceAllText('{RV}', RV);
body.replaceAllText('{Date}', Date);
body.replaceAllText('{Amount}', Amount);
body.replaceAllText('{Name}', Name);
body.replaceAllText('{Description}', Description);
body.replaceAllText('{Sales Owner}', SalesOwner);
body.replaceAllText('{Payment Type}', PaymentType);
body.replaceAllText('{Payment Reference}', PaymentReference);

DriveApp.getFileById(documentId).setName("xxx_"+Name+"_Receipt_"+RV);

//var body = DocumentApp.openById(documentId).getBody();

//body.replaceText('{RV}', RV).replaceText('{Date}', Date).replaceText('{Amount}', Amount).replaceText('{Name}', Name).replaceText('{Description}', Description).replaceText('{Sales Owner}', SalesOwner).replaceText('{Payment Type}', PaymentType).replaceText('{Payment Reference}', PaymentReference);

var receipt = body.getSlides();
var receiptNumber = 1;

//var receiptURL = body.getId()+receipt[receiptNumber-1].getObjectId();
var receiptURL = body.getUrl()+"#slide=id."+receipt[receiptNumber-1].getObjectId();
ss.getRange(i, 11).setValue(receiptURL);

var currentEmail = ss.getRange(i, 3).getValue();
var subjectLine = "PwC's Academy_"+Name+"_Receipt_"+RV;
var templateText = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Template").getRange(1, 1).getValue();
var messageBody = templateText.replace("{Name}", Name).replace("{Description}", Description).replace("{URL}", receiptURL);

//var ReceiptID = ss.getRange(i, 11).getValue();
//var ReceiptID = ReceiptURL.match(/[-\w]{25,}/);


//var ReceiptAttachment = ss.getRange(i, 11).getValue();

//var waiver = DriveApp.getFileById(ReceiptAttachment);
//var liabilityWaiver = waiver.getAs(MimeType.PDF);


var pdf = DriveApp.getFileById(documentId).getAs("application/pdf");

MailApp.sendEmail(currentEmail, subjectLine, messageBody, {attachments: pdf,
cc: 'abc@abc.com'});

}
else {}
}
}

将不胜感激任何帮助/指导。

最佳答案

这个修改怎么样?

来自:

body.replaceAllText('{Payment Reference}', PaymentReference); 

DriveApp.getFileById(documentId).setName("xxx_"+Name+"_Receipt_"+RV);

致:

body.replaceAllText('{Payment Reference}', PaymentReference); 
body.saveAndClose(); // <--- Added
DriveApp.getFileById(documentId).setName("xxx_"+Name+"_Receipt_"+RV);

引用:

如果这不能直接解决您的问题,我深表歉意。

关于javascript - 将 Google Slide 作为 PDF 附加,并在通过电子邮件发送时替换占位符文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60310546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com