问题:如何在google docs doc中阅读标题参考(#heading = h.12345表格)?
背景:想在doc中使用交叉引用。实施例。
1.1 Chapter 1 (i.e. paragraph has heading DocumentApp.ParagraphHeading.HEADING1)
Sample text. For more, see chapter 1.2.
1.2 Chapter 2
Sample text. For more, see chapter 1.1.
现在,谷歌文档可以进行交叉引用(插入链接),但是是“普通”链接,不带章节号。
因此,方法是: - 插入交叉引用链接
使用apps脚本,构建标题引用索引和章节编号
还有应用脚本,更新请参阅基于其链接的章节文本
我看了getLinkUrl没有成功:
var links = [];
var ps = DocumentApp.getActiveDocument().getBody().getParagraphs();
for(var i = 0; i < ps.length; i++) {
var h = ps[i].getHeading();
if( h == DocumentApp.ParagraphHeading.HEADING1 ) {
var t = ps[i].editAsText();
var u = t.getLinkUrl();
}
}
是否可以阅读标题参考?
答案 0 :(得分:1)
是否可以阅读标题参考?
当然,至少从目录中可以看出来。这些引用位于TOC条目的attributes
中。您可以在this answer中看到一个带脚本的示例。
答案 1 :(得分:1)
这是你的代码(略微修改)来检测HEADING1,假设只有一个实例。它可以适用于检测其他航向类型和多次出现。
function get_some_heading() {
var ps = DocumentApp.getActiveDocument().getBody()
var searchType = DocumentApp.ElementType.PARAGRAPH;
var searchHeading = DocumentApp.ParagraphHeading.HEADING1;
var searchResult = null;
while (searchResult = ps.findElement(searchType, searchResult)) {
var par = searchResult.getElement().asParagraph();
if (par.getHeading() == searchHeading) {
// Found one, update Logger.log and stop.
var h = searchResult.getElement().asText().getText();
return h;
}
}
//return null or something
}
以下是枚举Paragraph Heading引用,以下是上面使用的search pattern引用(针对略有不同的用例)。