首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找并删除空白行

问查找并删除空白行
EN

Stack Overflow用户
提问于 2021-10-21 20:17:19
回答 2查看 318关注 0票数 1

我试图创建一个密码保护的方式,将我的签名放在谷歌文档中,并创建一个PDF。我能够完成密码保护,添加签名,并发送到PDF。下面没有显示这一点,但我使用文档中已经使用的术语"{{Sig}}“替换为图像文件。我不希望这张图片留在谷歌文档中。下面的代码删除签名图像。但是,我想重新使用“{{Sig}”一词,以便今后在必要时能够签字。我能够做到这一点,在"{{Sig}}“应该在哪里之前寻找”诚恳“。但是,最后在“{Sig}”和我的名字之间有一个额外的空行。有没有找到和删除这条线的方法?

代码语言:javascript
复制
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函数:

代码语言:javascript
复制
function docReplace(docTarget,oldStr,newStr) {
  var docBody = docTarget.getBody();
  docBody.replaceText(oldStr,newStr);
}

下面的三张图片显示了正在发生的事情。左边的图片显示了我是如何在Google中开始的。中心图像是PDF的屏幕截图,其中矩形代表签名。右边的图片是如何在Google中结束的。代码删除签名图像,但留下空行(或空段落?)。根据文档的不同,空段落将有不同的索引。有没有办法搜索和替换这段空段落?

​

​

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-25 22:30:33

下面的修改似乎实现了我所追求的目标。您似乎无法搜索空行;但是,我可以使用forEach循环搜索上面的段落,然后将我想要的文本追加到空段落中。段落的forEach循环在使用Google时似乎非常强大。

Ruben的回答效果很好,不过我不得不引入一个新的变量,这个变量是根据底层段落的数量来确定的。我还遇到了一个我以前不知道的问题-甚至把案文改为\n它没有增加一个段落。这导致了“真诚”,被无意中取代了第二次通过,而没有出现在PDF上。

代码语言:javascript
复制
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();
}
票数 0
EN

Stack Overflow用户

发布于 2021-10-23 03:19:32

Google文档中的基本内容元素是段落。你可以通过得到相应的段落来得到空白行。

如果你的名字在最后一段,试着把它前面的名字。

代码语言:javascript
复制
function removeParaBeforeLast(){
  const body = DocumentApp.getActiveDocument().getBody();
  const beforeLast = body.getParagraphs().slice(-2)[0];
  beforeLast.removeFromParent();  
}

相关

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69668272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档