使用 Google Apps 脚本为 Google 文档中的表格设置“左缩进”

Mit*_*hun 6 google-docs-api google-apps-script

我们可以通过右键单击表格并选择“表格属性”来手动设置 Google Docs 中表格的左缩进:

在此处输入图片说明

我尝试通过设置INDENT_FIRST_LINEINDENT_START属性使用 Google Apps Script 实现相同的目的,但对表没有影响:

var style = {};
style[DocumentApp.Attribute.INDENT_FIRST_LINE] = 72;
style[DocumentApp.Attribute.INDENT_START] = 72; 

body.insertTable(elementIndex, table).setAttributes(style);
Run Code Online (Sandbox Code Playgroud)

如何使用 Google Apps 脚本为表设置相同的属性?有没有其他方法可以实现相同的目标?

请在此问题上加注星标,以便 Google 团队优先处理:

https://issuetracker.google.com/issues/36764951

Mit*_*hun 0

由于Apps Script不提供此功能。我最终做了以下事情:

  • 创建一个包含两列的外表。将边框宽度设置为零
  • 第一列的宽度是所需缩进的长度
  • 第二列的宽度是实际表格的宽度
  • 将表格插入第二列。生成的文档看起来就像表格已缩进一样

以下是上述算法的示例脚本:

var insertTableWithIndentation = function(body, 
                                        document, 
                                        originalTable, 
                                        elementIndex, 
                                        nestingLevel) {

  var docWidth = (document.getPageWidth() - 
                  document.getMarginLeft() - 
                  document.getMarginRight());

  var table = body.insertTable(elementIndex);
  var attrs = table.getAttributes();
  attrs['BORDER_WIDTH'] = 0;
  table.setAttributes(attrs);

  var row = table.appendTableRow();
  var column1Width = (nestingLevel+1) * 36;
  row.appendTableCell().setWidth(column1Width);

  var cell = row.appendTableCell();
  var column2Width = docWidth - column1Width;
  cell.setPaddingTop(0)
      .setPaddingBottom(0)
      .setPaddingLeft(0)
      .setPaddingRight(0)
      .setWidth(column2Width);

  cell.insertTable(0, originalTable);
}
Run Code Online (Sandbox Code Playgroud)