Google 应用脚本能否以编程方式访问脚注上标的位置?
Can Google App Scripts access the location of footnote superscripts programmatically?
是否可以使用 DocumentApp 查找正文中脚注引用的位置?
使用 editAsText()
或 findText()
搜索正文或元素不会显示上标脚注标记。
例如,在以下文档中:
这是一个引人入胜的统计故事!1您还可以在这里看到其他内容。
body.getText()
returns 'This is a riveting story with statistics! You can see other stuff here too.' 无参考,无 1
如果我想替换、编辑或操作脚注引用周围的文本(例如 1),如何找到它的位置?
您可以使用 getFootnotes()
编辑脚注。 getFootnotes()
return一个对象数组,你需要遍历它们。
您可以按以下方式在 Logger.log()
中列出脚注的位置(即父段落):
function getFootnotes(){
var doc = DocumentApp.openById('...');
var footnotes = doc.getFootnotes();
var textLocation = {};
for(var i in footnotes ){
textLocation = footnotes[i].getParent().getText();
Logger.log(textLocation);
}
}
将段落截断到脚注上标。您可以使用:
textLocation = footnotes[i].getPreviousSibling().getText();
在你的情况下它应该 return:这是一个有统计数据的引人入胜的故事! 只有这一部分,因为 [1] 就在 statistics!
之后
事实证明,脚注参考在文档中被索引为子项。因此,您可以获得脚注引用的索引,在该索引处插入一些文本,然后从其父项中删除脚注。
function performConversion (docu) {
var footnotes = docu.getFootnotes() // get the footnote
var noteText = footnotes.map(function (note) {
return '((' + note.getFootnoteContents() + ' ))' // reformat text with parens and save in array
})
footnotes.forEach(function (note, index) {
var paragraph = note.getParent() // get the paragraph
var noteIndex = paragraph.getChildIndex(note) // get the footnote's "child index"
paragraph.insertText(noteIndex, noteText[index]) // insert formatted text before footnote child index in paragraph
note.removeFromParent() // delete the original footnote
})
}
是否可以使用 DocumentApp 查找正文中脚注引用的位置?
使用 editAsText()
或 findText()
搜索正文或元素不会显示上标脚注标记。
例如,在以下文档中:
这是一个引人入胜的统计故事!1您还可以在这里看到其他内容。
body.getText()
returns 'This is a riveting story with statistics! You can see other stuff here too.' 无参考,无 1
如果我想替换、编辑或操作脚注引用周围的文本(例如 1),如何找到它的位置?
您可以使用 getFootnotes()
编辑脚注。 getFootnotes()
return一个对象数组,你需要遍历它们。
您可以按以下方式在 Logger.log()
中列出脚注的位置(即父段落):
function getFootnotes(){
var doc = DocumentApp.openById('...');
var footnotes = doc.getFootnotes();
var textLocation = {};
for(var i in footnotes ){
textLocation = footnotes[i].getParent().getText();
Logger.log(textLocation);
}
}
将段落截断到脚注上标。您可以使用:
textLocation = footnotes[i].getPreviousSibling().getText();
在你的情况下它应该 return:这是一个有统计数据的引人入胜的故事! 只有这一部分,因为 [1] 就在 statistics!
之后事实证明,脚注参考在文档中被索引为子项。因此,您可以获得脚注引用的索引,在该索引处插入一些文本,然后从其父项中删除脚注。
function performConversion (docu) {
var footnotes = docu.getFootnotes() // get the footnote
var noteText = footnotes.map(function (note) {
return '((' + note.getFootnoteContents() + ' ))' // reformat text with parens and save in array
})
footnotes.forEach(function (note, index) {
var paragraph = note.getParent() // get the paragraph
var noteIndex = paragraph.getChildIndex(note) // get the footnote's "child index"
paragraph.insertText(noteIndex, noteText[index]) // insert formatted text before footnote child index in paragraph
note.removeFromParent() // delete the original footnote
})
}