如何增加从 Google 表格合并到幻灯片的 QR 码图像邮件的大小

问题描述 投票:0回答:0

我制作了带有二维码的员工考勤表。工作表中的所有信息都是与谷歌幻灯片合并的邮件,所以我有一份文件,其中包含员工必须工作的所有信息以及什么职位。一切正常,所有信息都在幻灯片中可见,包括 QR 图像。

唯一的问题是图像在文档中太小了。我的问题是:如何增加二维码的大小来填写表格?我已经在幻灯片上创建了。我想与您分享代码和幻灯片中的示例。

我的表:

https://docs.google.com/spreadsheets/d/1D6Bp3TKpSQ8lWuuovxzXsYFvHPu6tUEIBVT4RODz4Y8/edit#gid=1863559289

生成的幻灯片示例:

https://docs.google.com/presentation/d/1mK9WZSg9ozCNLNwONCdJEiBKWGWbHvqGKdwKawzQTzs/edit?usp=sharing

代码示例:

function mailMergeSlidesFromSheets() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getDataRange();
  sheetContents = dataRange.getDisplayValues(); // Modified
  sheetContents.shift();
  var updatedContents = [];
  var check = 0;
  sheetContents.forEach(function (row) {
    if (row[3] == "" && ["JA", "YES"].includes(row[14])) { // Modified
      check++;
      var slides = createSlidesFromRow(row);
      var slidesId = slides.getId();
      var slidesUrl = `https://docs.google.com/presentation/d/${slidesId}/edit`;
      updatedContents.push([slidesUrl]);

      slides.saveAndClose();
      var pdf = UrlFetchApp.fetch(`https://docs.google.com/feeds/download/presentations/Export?exportFormat=pdf&id=${slidesId}`, { headers: { authorization: "Bearer " + ScriptApp.getOAuthToken() } }).getBlob().setName(slides.getName() + ".pdf");
      DriveApp.getFolderById("1XvQ_d5Vxj7Uud0h9u_nucgkiR8Zt8RCI").createFile(pdf);
      // Or DriveApp.getFolderById("###folderId###").createFile(pdf);
    } else {
      updatedContents.push([row[3]]);
    }
  });
  if (check == 0) return;
  sheet.getRange(2, 4, updatedContents.length).setValues(updatedContents);
}

function createSlidesFromRow(row) {
 // Create a copy of the Slides template
 var deck = createCopyOfSlidesTemplate();

 // Rename the deck using the firstname and lastname of the student
 deck.setName(row[0] + " " + row[6] +" " + row[5] +" " + row[13] +" " + row[10] + " " +row[11]);

 // Replace template variables using the student's information.
    deck.replaceAllText("{{id}}", row[0]);
    deck.replaceAllText("{{tag}}", row[5]);
    deck.replaceAllText("{{besetzung}}", row[6]);
    deck.replaceAllText("{{beginn}}", row[7]);
    deck.replaceAllText("{{ende}}", row[8]);
    deck.replaceAllText("{{gesamt}}", row[9]);
    deck.replaceAllText("{{halle}}", row[10]);
    deck.replaceAllText("{{stand}}", row[11]);
    deck.replaceAllText("{{firma}}", row[2]);
    deck.replaceAllText("{{veranstaltung}}", row[13]);
    deck.replaceAllText("{{stw}}", row[20]);
    deck.replaceAllText("{{stwfl}}", row[21]);
    deck.replaceAllText("{{brwfl}}", row[22]);
    deck.replaceAllText("{{hawa}}", row[23]);
    deck.replaceAllText("{{zusatz}}", row[24]);
    deck.replaceAllText("{{ess}}", row[25]);
    deck.replaceAllText("{{and}}", row[26]);
    deck.replaceAllText("{{subs}}", row[27]);
    deck.replaceAllText("{{sonst}}", row[28]);
    deck.replaceAllText("{{pos}}", row[29]);
    deck.getSlides()[0].getShapes().find(s => s.getText().asString().trim().toUpperCase() == "{{IMAGE}}").replaceWithImage(`https://chart.googleapis.com/chart?chs=500x500&cht=qr&chl=${row[18]}`);

 return deck;
}

function createCopyOfSlidesTemplate() {
 //
 var TEMPLATE_ID = "1AGNLRRCaZBYf2DVCU4gysZFiYR5AUCunWPFFNMqcWmU";

 // Create a copy of the file using DriveApp
 var copy = DriveApp.getFileById(TEMPLATE_ID).makeCopy();

 // Load the copy using the SlidesApp.
 var slides = SlidesApp.openById(copy.getId());

 return slides;
}

function onOpen() {
 // Create a custom menu to make it easy to run the Mail Merge
 // script from the sheet.
 SpreadsheetApp.getUi().createMenu("⚙️ Erstelle Nachweise by Pavlos")
   .addItem("Create Slides","mailMergeSlidesFromSheets")
   .addToUi();
}

image google-sheets qr-code image-resizing mailmerge
© www.soinside.com 2019 - 2024. All rights reserved.