我正在嘗試創建一種受密碼保護的方式來將我的簽名放在 google 檔案中并創建一個 PDF。我能夠完成密碼保護,添加簽名,并發送到 PDF。這在下面沒有顯示,但我使用檔案中已有的術語“{{Sig}}”來替換影像檔案。我不希望影像保留在 google 檔案中。下面的代碼洗掉了簽名影像。但是,如果需要,我想將“{{Sig}}”一詞放回原處,以便將來進行簽名。我可以通過在“{{Sig}}”應該在的位置之前立即搜索“Sincerely”來做到這一點。但是,最終在“{{Sig}}”和我的名字之間多出了一個空行。有沒有找到并洗掉該行的方法?
function DelSig(fileID) {
var docTarget = DocumentApp.openById(fileID);
var docBody = docTarget.getBody();
var docImages = docBody.getImages();
var docText = docBody.getText();
var docImage = docImages[0];
docImage.removeFromParent();
myFunction = docReplace(docTarget, "Sincerely,", "Sincerely,\n{{Sig}}");
docTarget.saveAndClose();
docTarget = DocumentApp.openById(fileID);
docBody = docTarget.getBody();
}
另外,這是我的 docReplace 函式:
function docReplace(docTarget,oldStr,newStr) {
var docBody = docTarget.getBody();
docBody.replaceText(oldStr,newStr);
}
下面的三張圖片顯示了正在發生的事情。左圖顯示了我如何在 Google Doc 中開始使用它。中心影像是 PDF 的螢屏截圖,矩形代表簽名。右邊的影像是它在 Google Doc 中的最終結果。該代碼洗掉簽名影像但留下一個空行(或空段落?)。根據檔案,該空段落將具有不同的索引。有沒有辦法搜索和替換那個空段落?

uj5u.com熱心網友回復:
Google 檔案中的基本內容元素是段落。您可能可以通過獲取相應的段落來獲取空行。
如果您的名字在最后一段中,請嘗試在它之前輸入一個。
function removeParaBeforeLast(){
const body = DocumentApp.getActiveDocument().getBody();
const beforeLast = body.getParagraphs().slice(-2)[0];
beforeLast.removeFromParent();
}
有關的
- 如何使用 Google Apps Script 在 Google 檔案中查找和洗掉空白段落?
uj5u.com熱心網友回復:
下面的修改似乎完成了我所追求的。您似乎無法搜索空行;但是,我能夠使用 forEach 回圈搜索上面的段落,然后將我想要的文本附加到空段落中。段落的 forEach 回圈在使用 Google Docs 時似乎非常強大。
魯本的回答相當有效,盡管我不得不根據底部的段落數引入一個新變數。我還遇到了一個我以前不知道的問題 - 即使用 \n 替換文本它也沒有添加一個段落。這導致“真誠地”在第二次被無意中替換而沒有出現在 PDF 中。
function DelSig(fileID) {
var docTarget = DocumentApp.openById(fileID);
var docBody = docTarget.getBody();
var docImages = docBody.getImages();
var docImage = docImages[0];
docImage.removeFromParent();
var docPars = docBody.getParagraphs();
var fndTxt = false;
docPars.forEach(function (curPar) {
if(fndTxt == true) {
curPar.appendText("{{Sig}}");
fndTxt = false;
}
if(curPar.findText("Sincerely,") !== null) {
fndTxt = true;
}
});
docTarget.saveAndClose();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/339412.html
上一篇:GoogleAppScript-日歷更新觸發器觸發4次
下一篇:?Weka中的值處理
