Body

The content of a tab in a Google Docs document. The `Body` may contain `https://developers.google.com/apps-script/reference/document/list-item`,
`https://developers.google.com/apps-script/reference/document/paragraph`, `https://developers.google.com/apps-script/reference/document/table`, and `https://developers.google.com/apps-script/reference/document/table-of-contents` elements. For more information on
document structure, see the [guide to
extending Google Docs](https://developers.google.com/apps-script/guides/docs#structure_of_a_document).

The `Body` typically contains the full tab's contents except for the `https://developers.google.com/apps-script/reference/document/header-section`, `https://developers.google.com/apps-script/reference/document/footer-section`, and any `https://developers.google.com/apps-script/reference/document/footnote-section` elements.

```javascript
const body =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();

// Append a paragraph and a page break to the tab's body section directly.
body.appendParagraph('A paragraph.');
body.appendPageBreak();
```

### Methods

| Method | Return type | Brief description |
|---|---|---|
| `https://developers.google.com/apps-script/reference/document/body#appendHorizontalRule()` | `https://developers.google.com/apps-script/reference/document/horizontal-rule` | Creates and appends a new `https://developers.google.com/apps-script/reference/document/horizontal-rule`. |
| `https://developers.google.com/apps-script/reference/document/body#appendImage(BlobSource)` | `https://developers.google.com/apps-script/reference/document/inline-image` | Creates and appends a new `https://developers.google.com/apps-script/reference/document/inline-image` from the specified image blob. |
| `https://developers.google.com/apps-script/reference/document/body#appendImage(InlineImage)` | `https://developers.google.com/apps-script/reference/document/inline-image` | Appends the given `https://developers.google.com/apps-script/reference/document/inline-image`. |
| `https://developers.google.com/apps-script/reference/document/body#appendListItem(ListItem)` | `https://developers.google.com/apps-script/reference/document/list-item` | Appends the given `https://developers.google.com/apps-script/reference/document/list-item`. |
| `https://developers.google.com/apps-script/reference/document/body#appendListItem(String)` | `https://developers.google.com/apps-script/reference/document/list-item` | Creates and appends a new `https://developers.google.com/apps-script/reference/document/list-item` containing the specified text contents. |
| `https://developers.google.com/apps-script/reference/document/body#appendPageBreak()` | `https://developers.google.com/apps-script/reference/document/page-break` | Creates and appends a new `https://developers.google.com/apps-script/reference/document/page-break`. |
| `https://developers.google.com/apps-script/reference/document/body#appendPageBreak(PageBreak)` | `https://developers.google.com/apps-script/reference/document/page-break` | Appends the given `https://developers.google.com/apps-script/reference/document/page-break`. |
| `https://developers.google.com/apps-script/reference/document/body#appendParagraph(Paragraph)` | `https://developers.google.com/apps-script/reference/document/paragraph` | Appends the given `https://developers.google.com/apps-script/reference/document/paragraph`. |
| `https://developers.google.com/apps-script/reference/document/body#appendParagraph(String)` | `https://developers.google.com/apps-script/reference/document/paragraph` | Creates and appends a new `https://developers.google.com/apps-script/reference/document/paragraph` containing the specified text contents. |
| `https://developers.google.com/apps-script/reference/document/body#appendTable()` | `https://developers.google.com/apps-script/reference/document/table` | Creates and appends a new `https://developers.google.com/apps-script/reference/document/table`. |
| `https://developers.google.com/apps-script/reference/document/body#appendTable(String)` | `https://developers.google.com/apps-script/reference/document/table` | Appends a new `https://developers.google.com/apps-script/reference/document/table` containing a `https://developers.google.com/apps-script/reference/document/table-cell` for each specified string value. |
| `https://developers.google.com/apps-script/reference/document/body#appendTable(Table)` | `https://developers.google.com/apps-script/reference/document/table` | Appends the given `https://developers.google.com/apps-script/reference/document/table`. |
| `https://developers.google.com/apps-script/reference/document/body#clear()` | `https://developers.google.com/apps-script/reference/document/body#` | Clears the contents of the element. |
| `https://developers.google.com/apps-script/reference/document/body#copy()` | `https://developers.google.com/apps-script/reference/document/body#` | Returns a detached, deep copy of the current element. |
| `https://developers.google.com/apps-script/reference/document/body#editAsText()` | `https://developers.google.com/apps-script/reference/document/text` | Obtains a `https://developers.google.com/apps-script/reference/document/text` version of the current element, for editing. |
| `https://developers.google.com/apps-script/reference/document/body#findElement(ElementType)` | `https://developers.google.com/apps-script/reference/document/range-element|null` | Searches the contents of the element for a descendant of the specified type. |
| `https://developers.google.com/apps-script/reference/document/body#findElement(ElementType,RangeElement)` | `https://developers.google.com/apps-script/reference/document/range-element|null` | Searches the contents of the element for a descendant of the specified type, starting from the specified `https://developers.google.com/apps-script/reference/document/range-element`. |
| `https://developers.google.com/apps-script/reference/document/body#findText(String)` | `https://developers.google.com/apps-script/reference/document/range-element|null` | Searches the contents of the element for the specified text pattern using regular expressions. |
| `https://developers.google.com/apps-script/reference/document/body#findText(String,RangeElement)` | `https://developers.google.com/apps-script/reference/document/range-element|null` | Searches the contents of the element for the specified text pattern, starting from a given search result. |
| `https://developers.google.com/apps-script/reference/document/body#getAttributes()` | `Object` | Retrieves the element's attributes. |
| `https://developers.google.com/apps-script/reference/document/body#getChild(Integer)` | `https://developers.google.com/apps-script/reference/document/element` | Retrieves the child element at the specified child index. |
| `https://developers.google.com/apps-script/reference/document/body#getChildIndex(Element)` | `Integer` | Retrieves the child index for the specified child element. |
| `https://developers.google.com/apps-script/reference/document/body#getHeadingAttributes(ParagraphHeading)` | `Object` | Retrieves the set of attributes for the provided `ParagraphHeading`. |
| `https://developers.google.com/apps-script/reference/document/body#getImages()` | `https://developers.google.com/apps-script/reference/document/inline-image|null` | Retrieves all the `https://developers.google.com/apps-script/reference/document/inline-image` contained in the section. |
| `https://developers.google.com/apps-script/reference/document/body#getListItems()` | `https://developers.google.com/apps-script/reference/document/list-item|null` | Retrieves all the `https://developers.google.com/apps-script/reference/document/list-item` contained in the section. |
| `https://developers.google.com/apps-script/reference/document/body#getMarginBottom()` | `Number|null` | Retrieves the bottom margin, in points. |
| `https://developers.google.com/apps-script/reference/document/body#getMarginLeft()` | `Number|null` | Retrieves the left margin, in points. |
| `https://developers.google.com/apps-script/reference/document/body#getMarginRight()` | `Number|null` | Retrieves the right margin. |
| `https://developers.google.com/apps-script/reference/document/body#getMarginTop()` | `Number|null` | Retrieves the top margin. |
| `https://developers.google.com/apps-script/reference/document/body#getNumChildren()` | `Integer` | Retrieves the number of children. |
| `https://developers.google.com/apps-script/reference/document/body#getPageHeight()` | `Number|null` | Retrieves the page height, in points. |
| `https://developers.google.com/apps-script/reference/document/body#getPageWidth()` | `Number|null` | Retrieves the page width, in points. |
| `https://developers.google.com/apps-script/reference/document/body#getParagraphs()` | `https://developers.google.com/apps-script/reference/document/paragraph|null` | Retrieves all the `https://developers.google.com/apps-script/reference/document/paragraph` contained in the section (including `https://developers.google.com/apps-script/reference/document/list-item`). |
| `https://developers.google.com/apps-script/reference/document/body#getParent()` | `https://developers.google.com/apps-script/reference/document/container-element|null` | Retrieves the element's parent element. |
| `https://developers.google.com/apps-script/reference/document/body#getTables()` | `https://developers.google.com/apps-script/reference/document/table|null` | Retrieves all the `https://developers.google.com/apps-script/reference/document/table` contained in the section. |
| `https://developers.google.com/apps-script/reference/document/body#getText()` | `String` | Retrieves the contents of the element as a text string. |
| `https://developers.google.com/apps-script/reference/document/body#getTextAlignment()` | `https://developers.google.com/apps-script/reference/document/text-alignment|null` | Gets the text alignment. |
| `https://developers.google.com/apps-script/reference/document/body#getType()` | `https://developers.google.com/apps-script/reference/document/element-type` | Retrieves the element's `https://developers.google.com/apps-script/reference/document/element-type`. |
| `https://developers.google.com/apps-script/reference/document/body#insertHorizontalRule(Integer)` | `https://developers.google.com/apps-script/reference/document/horizontal-rule` | Creates and inserts a new `https://developers.google.com/apps-script/reference/document/horizontal-rule` at the specified index. |
| `https://developers.google.com/apps-script/reference/document/body#insertImage(Integer,BlobSource)` | `https://developers.google.com/apps-script/reference/document/inline-image` | Creates and inserts an `https://developers.google.com/apps-script/reference/document/inline-image` from the specified image blob, at the specified index. |
| `https://developers.google.com/apps-script/reference/document/body#insertImage(Integer,InlineImage)` | `https://developers.google.com/apps-script/reference/document/inline-image` | Inserts the given `https://developers.google.com/apps-script/reference/document/inline-image` at the specified index. |
| `https://developers.google.com/apps-script/reference/document/body#insertListItem(Integer,ListItem)` | `https://developers.google.com/apps-script/reference/document/list-item` | Inserts the given `https://developers.google.com/apps-script/reference/document/list-item` at the specified index. |
| `https://developers.google.com/apps-script/reference/document/body#insertListItem(Integer,String)` | `https://developers.google.com/apps-script/reference/document/list-item` | Creates and inserts a new `https://developers.google.com/apps-script/reference/document/list-item` at the specified index, containing the specified text contents. |
| `https://developers.google.com/apps-script/reference/document/body#insertPageBreak(Integer)` | `https://developers.google.com/apps-script/reference/document/page-break` | Creates and inserts a new `https://developers.google.com/apps-script/reference/document/page-break` at the specified index. |
| `https://developers.google.com/apps-script/reference/document/body#insertPageBreak(Integer,PageBreak)` | `https://developers.google.com/apps-script/reference/document/page-break` | Inserts the given `https://developers.google.com/apps-script/reference/document/page-break` at the specified index. |
| `https://developers.google.com/apps-script/reference/document/body#insertParagraph(Integer,Paragraph)` | `https://developers.google.com/apps-script/reference/document/paragraph` | Inserts the given `https://developers.google.com/apps-script/reference/document/paragraph` at the specified index. |
| `https://developers.google.com/apps-script/reference/document/body#insertParagraph(Integer,String)` | `https://developers.google.com/apps-script/reference/document/paragraph` | Creates and inserts a new `https://developers.google.com/apps-script/reference/document/paragraph` at the specified index, containing the specified text contents. |
| `https://developers.google.com/apps-script/reference/document/body#insertTable(Integer)` | `https://developers.google.com/apps-script/reference/document/table` | Creates and inserts a new `https://developers.google.com/apps-script/reference/document/table` at the specified index. |
| `https://developers.google.com/apps-script/reference/document/body#insertTable(Integer,String)` | `https://developers.google.com/apps-script/reference/document/table` | Creates and inserts a new `https://developers.google.com/apps-script/reference/document/table` containing the specified cells, at the specified index. |
| `https://developers.google.com/apps-script/reference/document/body#insertTable(Integer,Table)` | `https://developers.google.com/apps-script/reference/document/table` | Inserts the given `https://developers.google.com/apps-script/reference/document/table` at the specified index. |
| `https://developers.google.com/apps-script/reference/document/body#removeChild(Element)` | `https://developers.google.com/apps-script/reference/document/body#` | Removes the specified child element. |
| `https://developers.google.com/apps-script/reference/document/body#replaceText(String,String)` | `https://developers.google.com/apps-script/reference/document/element` | Replaces all occurrences of a given text pattern with a given replacement string, using regular expressions. |
| `https://developers.google.com/apps-script/reference/document/body#setAttributes(Object)` | `https://developers.google.com/apps-script/reference/document/body#` | Sets the element's attributes. |
| `https://developers.google.com/apps-script/reference/document/body#setHeadingAttributes(ParagraphHeading,Object)` | `https://developers.google.com/apps-script/reference/document/body#` | Sets the attributes for the provided `ParagraphHeading`. |
| `https://developers.google.com/apps-script/reference/document/body#setMarginBottom(Number)` | `https://developers.google.com/apps-script/reference/document/body#` | Sets the bottom margin, in points. |
| `https://developers.google.com/apps-script/reference/document/body#setMarginLeft(Number)` | `https://developers.google.com/apps-script/reference/document/body#` | Sets the left margin, in points. |
| `https://developers.google.com/apps-script/reference/document/body#setMarginRight(Number)` | `https://developers.google.com/apps-script/reference/document/body#` | Sets the right margin, in points. |
| `https://developers.google.com/apps-script/reference/document/body#setMarginTop(Number)` | `https://developers.google.com/apps-script/reference/document/body#` | Sets the top margin. |
| `https://developers.google.com/apps-script/reference/document/body#setPageHeight(Number)` | `https://developers.google.com/apps-script/reference/document/body#` | Sets the page height, in points. |
| `https://developers.google.com/apps-script/reference/document/body#setPageWidth(Number)` | `https://developers.google.com/apps-script/reference/document/body#` | Sets the page width, in points. |
| `https://developers.google.com/apps-script/reference/document/body#setText(String)` | `https://developers.google.com/apps-script/reference/document/body#` | Sets the contents as plain text. |
| `https://developers.google.com/apps-script/reference/document/body#setTextAlignment(TextAlignment)` | `https://developers.google.com/apps-script/reference/document/body#` | Sets the text alignment. |

### Deprecated methods

| Method | Return type | Brief description |
|---|---|---|
| `https://developers.google.com/apps-script/reference/document/body#getFootnotes()` | `https://developers.google.com/apps-script/reference/document/footnote|null` | Retrieves all the `https://developers.google.com/apps-script/reference/document/footnote` contained in the section. |
| `https://developers.google.com/apps-script/reference/document/body#getLinkUrl()` | `String|null` | Retrieves the link url. |
| `https://developers.google.com/apps-script/reference/document/body#getNextSibling()` | `https://developers.google.com/apps-script/reference/document/element|null` | Retrieves the element's next sibling element. |
| `https://developers.google.com/apps-script/reference/document/body#getPreviousSibling()` | `https://developers.google.com/apps-script/reference/document/element|null` | Retrieves the element's previous sibling element. |
| `https://developers.google.com/apps-script/reference/document/body#isAtDocumentEnd()` | `Boolean` | Determines whether the element is at the end of the `https://developers.google.com/apps-script/reference/document/document`. |
| `https://developers.google.com/apps-script/reference/document/body#setLinkUrl(String)` | `https://developers.google.com/apps-script/reference/document/body#` | Sets the link url. |

## Detailed documentation

### `appendHorizontalRule()`

Creates and appends a new `https://developers.google.com/apps-script/reference/document/horizontal-rule`.

The `https://developers.google.com/apps-script/reference/document/horizontal-rule` will be contained in a new `https://developers.google.com/apps-script/reference/document/paragraph`.

#### Return


`https://developers.google.com/apps-script/reference/document/horizontal-rule` --- The new horizontal rule.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `appendImage(image)`

Creates and appends a new `https://developers.google.com/apps-script/reference/document/inline-image` from the specified image blob.

The image will be contained in a new `https://developers.google.com/apps-script/reference/document/paragraph`.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `image` | `https://developers.google.com/apps-script/reference/base/blob-source.html` | The image data. |

#### Return


`https://developers.google.com/apps-script/reference/document/inline-image` --- The appended image.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `appendImage(image)`

Appends the given `https://developers.google.com/apps-script/reference/document/inline-image`.

The `https://developers.google.com/apps-script/reference/document/inline-image` will be contained in a new `https://developers.google.com/apps-script/reference/document/paragraph`.

Use this version of `appendImage` when appending a copy of an existing `https://developers.google.com/apps-script/reference/document/inline-image`.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `image` | `https://developers.google.com/apps-script/reference/document/inline-image` | The image data. |

#### Return


`https://developers.google.com/apps-script/reference/document/inline-image` --- The appended image.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `appendListItem(listItem)`

Appends the given `https://developers.google.com/apps-script/reference/document/list-item`.

Use this version of `appendListItem` when appending a copy of an existing `https://developers.google.com/apps-script/reference/document/list-item`.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `listItem` | `https://developers.google.com/apps-script/reference/document/list-item` | The list item to append. |

#### Return


`https://developers.google.com/apps-script/reference/document/list-item` --- The appended list item.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `appendListItem(text)`

Creates and appends a new `https://developers.google.com/apps-script/reference/document/list-item` containing the specified text contents.

Consecutive list items are added as part of the same list.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `text` | `String` | The list item's text contents. |

#### Return


`https://developers.google.com/apps-script/reference/document/list-item` --- The new list item.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `appendPageBreak()`

Creates and appends a new `https://developers.google.com/apps-script/reference/document/page-break`.

The `https://developers.google.com/apps-script/reference/document/page-break` will be contained in a new `https://developers.google.com/apps-script/reference/document/paragraph`.

#### Return


`https://developers.google.com/apps-script/reference/document/page-break` --- The new page break.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `appendPageBreak(pageBreak)`

Appends the given `https://developers.google.com/apps-script/reference/document/page-break`.

The `https://developers.google.com/apps-script/reference/document/page-break` will be contained in a new `https://developers.google.com/apps-script/reference/document/paragraph`.

Use this version of `appendPageBreak` when appending a copy of an existing `https://developers.google.com/apps-script/reference/document/page-break`.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `pageBreak` | `https://developers.google.com/apps-script/reference/document/page-break` | The page break to append. |

#### Return


`https://developers.google.com/apps-script/reference/document/page-break` --- The appended page break.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `appendParagraph(paragraph)`

Appends the given `https://developers.google.com/apps-script/reference/document/paragraph`.

Use this version of `appendParagraph` when appending a copy of an existing `https://developers.google.com/apps-script/reference/document/paragraph`.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `paragraph` | `https://developers.google.com/apps-script/reference/document/paragraph` | The paragraph to append. |

#### Return


`https://developers.google.com/apps-script/reference/document/paragraph` --- The appended paragraph.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `appendParagraph(text)`

Creates and appends a new `https://developers.google.com/apps-script/reference/document/paragraph` containing the specified text contents.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `text` | `String` | The paragraph's text contents. |

#### Return


`https://developers.google.com/apps-script/reference/document/paragraph` --- The new paragraph.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `appendTable()`

Creates and appends a new `https://developers.google.com/apps-script/reference/document/table`.

This method will also append an empty paragraph after the table, since Google Docs documents
cannot end with a table.

#### Return


`https://developers.google.com/apps-script/reference/document/table` --- The new table.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `appendTable(cells)`

Appends a new `https://developers.google.com/apps-script/reference/document/table` containing a `https://developers.google.com/apps-script/reference/document/table-cell` for each specified string value.

This method will also append an empty paragraph after the table, since Google Docs documents
cannot end with a table.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `cells` | `String[][]` | The text contents of the table cells to add to the new table. |

#### Return


`https://developers.google.com/apps-script/reference/document/table` --- The appended table.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `appendTable(table)`

Appends the given `https://developers.google.com/apps-script/reference/document/table`.

Use this version of `appendTable` when appending a copy of an existing `https://developers.google.com/apps-script/reference/document/table`.
This method will also append an empty paragraph after the table, since Google Docs documents
cannot end with a table.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `table` | `https://developers.google.com/apps-script/reference/document/table` | The table to append. |

#### Return


`https://developers.google.com/apps-script/reference/document/table` --- The appended table.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `clear()`

Clears the contents of the element.

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The current element.

*** ** * ** ***

### `copy()`

Returns a detached, deep copy of the current element.

Any child elements present in the element are also copied. The new element doesn't have a
parent.

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The new copy.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `editAsText()`

Obtains a `https://developers.google.com/apps-script/reference/document/text` version of the current element, for editing.

Use `editAsText` for manipulating the elements contents as rich text. The `editAsText` mode ignores non-text elements (such as `https://developers.google.com/apps-script/reference/document/inline-image` and `https://developers.google.com/apps-script/reference/document/horizontal-rule`).

Child elements fully contained within a deleted text range are removed from the element.

```javascript
const body =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();

// Insert two paragraphs separated by a paragraph containing an
// horizontal rule.
body.insertParagraph(0, 'An editAsText sample.');
body.insertHorizontalRule(0);
body.insertParagraph(0, 'An example.');

// Delete " sample.\n\n An" removing the horizontal rule in the process.
body.editAsText().deleteText(14, 25);
```

#### Return


`https://developers.google.com/apps-script/reference/document/text` --- a text version of the current element

*** ** * ** ***

### `findElement(elementType)`

Searches the contents of the element for a descendant of the specified type.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `elementType` | `https://developers.google.com/apps-script/reference/document/element-type` | The type of element to search for. |

#### Return


`https://developers.google.com/apps-script/reference/document/range-element|null` --- A search result indicating the position of the search element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `findElement(elementType, from)`

Searches the contents of the element for a descendant of the specified type, starting from the
specified `https://developers.google.com/apps-script/reference/document/range-element`.

```javascript
const body =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();

// Define the search parameters.

let searchResult = null;

// Search until the paragraph is found.
while (
    (searchResult = body.findElement(
         DocumentApp.ElementType.PARAGRAPH,
         searchResult,
         ))) {
  const par = searchResult.getElement().asParagraph();
  if (par.getHeading() === DocumentApp.ParagraphHeading.HEADING1) {
    // Found one, update and stop.
    par.setText('This is the first header.');
    break;
  }
}
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `elementType` | `https://developers.google.com/apps-script/reference/document/element-type` | The type of element to search for. |
| `from` | `https://developers.google.com/apps-script/reference/document/range-element` | The search result to search from. |

#### Return


`https://developers.google.com/apps-script/reference/document/range-element|null` --- A search result indicating the next position of the search element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `findText(searchPattern)`

Searches the contents of the element for the specified text pattern using regular expressions.

A subset of the JavaScript regular expression features are not fully supported, such as
capture groups and mode modifiers.

The provided regular expression pattern is independently matched against each text block
contained in the current element.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `searchPattern` | `String` | the pattern to search for |

#### Return


`https://developers.google.com/apps-script/reference/document/range-element|null` --- a search result indicating the position of the search text, or null if there is no
match

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `findText(searchPattern, from)`

Searches the contents of the element for the specified text pattern, starting from a given
search result.

A subset of the JavaScript regular expression features are not fully supported, such as
capture groups and mode modifiers.

The provided regular expression pattern is independently matched against each text block
contained in the current element.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `searchPattern` | `String` | the pattern to search for |
| `from` | `https://developers.google.com/apps-script/reference/document/range-element` | the search result to search from |

#### Return


`https://developers.google.com/apps-script/reference/document/range-element|null` --- a search result indicating the next position of the search text, or null if there is no
match

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getAttributes()`

Retrieves the element's attributes.

The result is an object containing a property for each valid element attribute where each
property name corresponds to an item in the `DocumentApp.Attribute` enumeration.

```javascript
const doc = DocumentApp.getActiveDocument();
const documentTab = doc.getActiveTab().asDocumentTab();
const body = documentTab.getBody();

// Append a styled paragraph.
const par = body.appendParagraph('A bold, italicized paragraph.');
par.setBold(true);
par.setItalic(true);

// Retrieve the paragraph's attributes.
const atts = par.getAttributes();

// Log the paragraph attributes.
for (const att in atts) {
  Logger.log(`${att}:${atts[att]}`);
}
```

#### Return


`Object` --- The element's attributes.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getChild(childIndex)`

Retrieves the child element at the specified child index.

```javascript
const body =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();

// Obtain the first element in the tab.
const firstChild = body.getChild(0);

// If it's a paragraph, set its contents.
if (firstChild.getType() === DocumentApp.ElementType.PARAGRAPH) {
  firstChild.asParagraph().setText('This is the first paragraph.');
}
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index of the child element to retrieve. |

#### Return


`https://developers.google.com/apps-script/reference/document/element` --- The child element at the specified index.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getChildIndex(child)`

Retrieves the child index for the specified child element.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `child` | `https://developers.google.com/apps-script/reference/document/element` | The child element for which to retrieve the index. |

#### Return


`Integer` --- The child index.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getHeadingAttributes(paragraphHeading)`

Retrieves the set of attributes for the provided `ParagraphHeading`.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `paragraphHeading` | `https://developers.google.com/apps-script/reference/document/paragraph-heading` | The heading whose attributes should be retrieved. |

#### Return


`Object` --- A map of the attributes and their current values.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getImages()`

Retrieves all the `https://developers.google.com/apps-script/reference/document/inline-image` contained in the section.

#### Return


`https://developers.google.com/apps-script/reference/document/inline-image|null` --- The section images.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getListItems()`

Retrieves all the `https://developers.google.com/apps-script/reference/document/list-item` contained in the section.

#### Return


`https://developers.google.com/apps-script/reference/document/list-item|null` --- The section list items.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getMarginBottom()`

Retrieves the bottom margin, in points.

#### Return


`Number|null` --- The bottom margin, in points.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getMarginLeft()`

Retrieves the left margin, in points.

#### Return


`Number|null` --- The left margin, in points.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getMarginRight()`

Retrieves the right margin.

#### Return


`Number|null` --- The right margin, in points.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getMarginTop()`

Retrieves the top margin.

#### Return


`Number|null` --- The top margin, in points.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getNumChildren()`

Retrieves the number of children.

```javascript
const body =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();

// Log the number of elements in the tab.
Logger.log(`There are ${body.getNumChildren()} elements in the tab's body.`);
```

#### Return


`Integer` --- The number of children.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getPageHeight()`

Retrieves the page height, in points.

#### Return


`Number|null` --- The page height, in points.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getPageWidth()`

Retrieves the page width, in points.

#### Return


`Number|null` --- The page width, in points.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getParagraphs()`

Retrieves all the `https://developers.google.com/apps-script/reference/document/paragraph` contained in the section (including `https://developers.google.com/apps-script/reference/document/list-item`).

#### Return


`https://developers.google.com/apps-script/reference/document/paragraph|null` --- The section paragraphs.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getParent()`

Retrieves the element's parent element.

The parent element contains the current element.

#### Return


`https://developers.google.com/apps-script/reference/document/container-element|null` --- The parent element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getTables()`

Retrieves all the `https://developers.google.com/apps-script/reference/document/table` contained in the section.

#### Return


`https://developers.google.com/apps-script/reference/document/table|null` --- The section tables.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getText()`

Retrieves the contents of the element as a text string.

#### Return


`String` --- the contents of the element as text string

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getTextAlignment()`

Gets the text alignment. The available types of alignment are `DocumentApp.TextAlignment.NORMAL`, `DocumentApp.TextAlignment.SUBSCRIPT`, and `DocumentApp.TextAlignment.SUPERSCRIPT`.

#### Return


`https://developers.google.com/apps-script/reference/document/text-alignment|null` --- the type of text alignment, or `null` if the text contains multiple types of text
alignments or if the text alignment has never been set

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getType()`

Retrieves the element's `https://developers.google.com/apps-script/reference/document/element-type`.

Use `getType()` to determine the exact type of a given element.

```javascript
const doc = DocumentApp.getActiveDocument();
const documentTab = doc.getActiveTab().asDocumentTab();
const body = documentTab.getBody();

// Obtain the first element in the active tab's body.

const firstChild = body.getChild(0);

// Use getType() to determine the element's type.
if (firstChild.getType() === DocumentApp.ElementType.PARAGRAPH) {
  Logger.log('The first element is a paragraph.');
} else {
  Logger.log('The first element is not a paragraph.');
}
```

#### Return


`https://developers.google.com/apps-script/reference/document/element-type` --- The element type.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertHorizontalRule(childIndex)`

Creates and inserts a new `https://developers.google.com/apps-script/reference/document/horizontal-rule` at the specified index.

The `https://developers.google.com/apps-script/reference/document/horizontal-rule` will be contained in a new `https://developers.google.com/apps-script/reference/document/paragraph`.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert the element. |

#### Return


`https://developers.google.com/apps-script/reference/document/horizontal-rule` --- The new horizontal rule.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertImage(childIndex, image)`

Creates and inserts an `https://developers.google.com/apps-script/reference/document/inline-image` from the specified image blob, at the specified
index.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert the element. |
| `image` | `https://developers.google.com/apps-script/reference/base/blob-source.html` | The image data. |

#### Return


`https://developers.google.com/apps-script/reference/document/inline-image` --- The inserted inline image.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertImage(childIndex, image)`

Inserts the given `https://developers.google.com/apps-script/reference/document/inline-image` at the specified index.

The image will be contained in a new `https://developers.google.com/apps-script/reference/document/paragraph`.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert the element. |
| `image` | `https://developers.google.com/apps-script/reference/document/inline-image` | The image to insert. |

#### Return


`https://developers.google.com/apps-script/reference/document/inline-image` --- The inserted inline image.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertListItem(childIndex, listItem)`

Inserts the given `https://developers.google.com/apps-script/reference/document/list-item` at the specified index.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert. |
| `listItem` | `https://developers.google.com/apps-script/reference/document/list-item` | The list item to insert. |

#### Return


`https://developers.google.com/apps-script/reference/document/list-item` --- The inserted list item.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertListItem(childIndex, text)`

Creates and inserts a new `https://developers.google.com/apps-script/reference/document/list-item` at the specified index, containing the specified
text contents.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert. |
| `text` | `String` | The list item's text contents. |

#### Return


`https://developers.google.com/apps-script/reference/document/list-item` --- The new list item.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertPageBreak(childIndex)`

Creates and inserts a new `https://developers.google.com/apps-script/reference/document/page-break` at the specified index.

The `https://developers.google.com/apps-script/reference/document/page-break` will be contained in a new `https://developers.google.com/apps-script/reference/document/paragraph`.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert the element. |

#### Return


`https://developers.google.com/apps-script/reference/document/page-break` --- The new page break.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertPageBreak(childIndex, pageBreak)`

Inserts the given `https://developers.google.com/apps-script/reference/document/page-break` at the specified index.

The `https://developers.google.com/apps-script/reference/document/page-break` will be contained in a new `https://developers.google.com/apps-script/reference/document/paragraph`.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert the element. |
| `pageBreak` | `https://developers.google.com/apps-script/reference/document/page-break` | The page break to insert. |

#### Return


`https://developers.google.com/apps-script/reference/document/page-break` --- The inserted page break.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertParagraph(childIndex, paragraph)`

Inserts the given `https://developers.google.com/apps-script/reference/document/paragraph` at the specified index.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert. |
| `paragraph` | `https://developers.google.com/apps-script/reference/document/paragraph` | The paragraph to insert. |

#### Return


`https://developers.google.com/apps-script/reference/document/paragraph` --- The inserted paragraph.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertParagraph(childIndex, text)`

Creates and inserts a new `https://developers.google.com/apps-script/reference/document/paragraph` at the specified index, containing the specified
text contents.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert. |
| `text` | `String` | The paragraph's text contents. |

#### Return


`https://developers.google.com/apps-script/reference/document/paragraph` --- The new paragraph.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertTable(childIndex)`

Creates and inserts a new `https://developers.google.com/apps-script/reference/document/table` at the specified index.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert. |

#### Return


`https://developers.google.com/apps-script/reference/document/table` --- The new table.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertTable(childIndex, cells)`

Creates and inserts a new `https://developers.google.com/apps-script/reference/document/table` containing the specified cells, at the specified index.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert. |
| `cells` | `String[][]` | The text contents of the table cells to add to the new table. |

#### Return


`https://developers.google.com/apps-script/reference/document/table` --- The new table.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `insertTable(childIndex, table)`

Inserts the given `https://developers.google.com/apps-script/reference/document/table` at the specified index.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `childIndex` | `Integer` | The index at which to insert. |
| `table` | `https://developers.google.com/apps-script/reference/document/table` | The table to insert. |

#### Return


`https://developers.google.com/apps-script/reference/document/table` --- The inserted table.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `removeChild(child)`

Removes the specified child element.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `child` | `https://developers.google.com/apps-script/reference/document/element` | The child element to remove. |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The current element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `replaceText(searchPattern, replacement)`

Replaces all occurrences of a given text pattern with a given replacement string, using regular
expressions.

The search pattern is passed as a string, not a JavaScript regular expression object.
Because of this you'll need to escape any backslashes in the pattern.

This methods uses Google's [RE2](https://github.com/google/re2) regular
expression library, which limits the [supported syntax](https://github.com/google/re2/wiki/Syntax).

The provided regular expression pattern is independently matched against each text block
contained in the current element.

```javascript
const body =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();

// Clear the text surrounding "Apps Script", with or without text.
body.replaceText('^.*Apps ?Script.*$', 'Apps Script');
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `searchPattern` | `String` | the regex pattern to search for |
| `replacement` | `String` | the text to use as replacement |

#### Return


`https://developers.google.com/apps-script/reference/document/element` --- the current element

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `setAttributes(attributes)`

Sets the element's attributes.

The specified attributes parameter must be an object where each property name is an item in
the `DocumentApp.Attribute` enumeration and each property value is the new value to be
applied.

```javascript
const doc = DocumentApp.getActiveDocument();
const documentTab = doc.getActiveTab().asDocumentTab();
const body = documentTab.getBody();

// Define a custom paragraph style.
const style = {};
style[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] =
    DocumentApp.HorizontalAlignment.RIGHT;
style[DocumentApp.Attribute.FONT_FAMILY] = 'Calibri';
style[DocumentApp.Attribute.FONT_SIZE] = 18;
style[DocumentApp.Attribute.BOLD] = true;

// Append a plain paragraph.
const par = body.appendParagraph('A paragraph with custom style.');

// Apply the custom style.
par.setAttributes(style);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `attributes` | `Object` | The element's attributes. |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The current element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `setHeadingAttributes(paragraphHeading, attributes)`

Sets the attributes for the provided `ParagraphHeading`.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `paragraphHeading` | `https://developers.google.com/apps-script/reference/document/paragraph-heading` | The heading whose attributes should be set. |
| `attributes` | `Object` | A map of attributes and the values to set them to. |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The current element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `setMarginBottom(marginBottom)`

Sets the bottom margin, in points.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `marginBottom` | `Number` | The bottom margin, in points. |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The current element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `setMarginLeft(marginLeft)`

Sets the left margin, in points.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `marginLeft` | `Number` | The left margin, in points. |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The current element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `setMarginRight(marginRight)`

Sets the right margin, in points.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `marginRight` | `Number` | The right margin. |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The current element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `setMarginTop(marginTop)`

Sets the top margin.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `marginTop` | `Number` | The top margin, in points. |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The current element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `setPageHeight(pageHeight)`

Sets the page height, in points.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `pageHeight` | `Number` | The page height, in points. |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The current element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `setPageWidth(pageWidth)`

Sets the page width, in points.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `pageWidth` | `Number` | The page width, in points. |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The current element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `setText(text)`

Sets the contents as plain text.

Note: existing contents are cleared.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `text` | `String` | The new text contents. |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- The current element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `setTextAlignment(textAlignment)`

Sets the text alignment. The available types of alignment are `DocumentApp.TextAlignment.NORMAL`, `DocumentApp.TextAlignment.SUBSCRIPT`, and `DocumentApp.TextAlignment.SUPERSCRIPT`.

```javascript
// Make the entire first paragraph in the active tab be superscript.
const documentTab =
    DocumentApp.getActiveDocument().getActiveTab().asDocumentTab();
const text = documentTab.getBody().getParagraphs()[0].editAsText();
text.setTextAlignment(DocumentApp.TextAlignment.SUPERSCRIPT);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `textAlignment` | `https://developers.google.com/apps-script/reference/document/text-alignment` | the type of text alignment to apply |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- the current element

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

## Deprecated methods

### `getFootnotes()`


**Deprecated.** This element cannot contain a `https://developers.google.com/apps-script/reference/document/footnote`.

Retrieves all the `https://developers.google.com/apps-script/reference/document/footnote` contained in the section.

#### Return


`https://developers.google.com/apps-script/reference/document/footnote|null` --- The section footnotes.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getLinkUrl()`


**Deprecated.** Instead of applying a link to an entire section, apply the link to an element
within the section instead.

Retrieves the link url.

#### Return


`String|null` --- the link url, or null if the element contains multiple values for this attribute

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getNextSibling()`


**Deprecated.** This element does not have any siblings.

Retrieves the element's next sibling element.

The next sibling has the same parent and follows the current element.

#### Return


`https://developers.google.com/apps-script/reference/document/element|null` --- The next sibling element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `getPreviousSibling()`


**Deprecated.** This element does not have any siblings.

Retrieves the element's previous sibling element.

The previous sibling has the same parent and precedes the current element.

#### Return


`https://developers.google.com/apps-script/reference/document/element|null` --- The previous sibling element.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `isAtDocumentEnd()`


**Deprecated.** This method is not reliable for `HeaderSection`.

Determines whether the element is at the end of the `https://developers.google.com/apps-script/reference/document/document`.

#### Return


`Boolean` --- Whether the element is at the end of the tab.

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`

*** ** * ** ***

### `setLinkUrl(url)`


**Deprecated.** Instead of applying a link to an entire section, apply the link to an element
within the section instead.

Sets the link url.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `url` | `String` | the link url |

#### Return


`https://developers.google.com/apps-script/reference/document/body#` --- the current element

#### Authorization

Scripts that use this method require authorization with one or more of the following [scopes](https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes):

- `https://www.googleapis.com/auth/documents.currentonly`
- `https://www.googleapis.com/auth/documents`