# FPdfParagraph

- Human documentation: [https://docs.univer.ai/reference/facade/pdf-paragraph](https://docs.univer.ai/reference/facade/pdf-paragraph)

- Agent Markdown: [https://docs.univer.ai/reference/facade/pdf-paragraph.md](https://docs.univer.ai/reference/facade/pdf-paragraph.md)

- Requested language: `en-US`

- Content language: `en-US`

- Documentation version: `1.0.0-rc.0`

- Source: [facade/pdf-paragraph.mdx](https://github.com/dream-num/documentation/blob/dev/content/reference/facade/pdf-paragraph.mdx)

---

Facade for one story-backed editable paragraph frame.

## Access

Access through:

* [`FPdfPage.getParagraphs()`](https://docs.univer.ai/reference/facade/pdf-page.md#getparagraphs)
* [`FPdfPage.insertParagraph()`](https://docs.univer.ai/reference/facade/pdf-page.md#insertparagraph)

## Inheritance

Extends [`FPdfPageElement`](https://docs.univer.ai/reference/facade/pdf-page-element.md). Its inherited members are available on this object.

## Example

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const paragraph = page.insertParagraph({
  text: 'First paragraph',
  fontSize: 24,
})
console.log(paragraph.getBlocks())

paragraph.appendBlock({
  text: 'Second paragraph',
  textStyle: {
    fontSize: 18,
    bold: true,
  },
})

const block = paragraph.getBlocks()[0]
paragraph
  .setBlockText(block.id, 'Updated first paragraph')
  .setBlockStyle(block.id, { align: 'center' })
```

## Setup

Register [`@univerjs-pro/pdfs`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/pdfs.md) or a preset that includes it. In plugin mode, import `@univerjs-pro/pdfs/facade`. Additional methods below require their listed plugin packages. See [Facade setup](https://docs.univer.ai/guides/pdfs/getting-started/facade.md).

## `@univerjs-pro/pdfs`

### `FPdfParagraph.appendBlock`

Append one stable paragraph block.

```typescript
appendBlock(block: IPdfParagraphBlockInput): this
```

**Parameters**

* `block` — Required. The new block data.

**Returns**

This paragraph Facade for chaining.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const paragraph = page.getParagraphs()[0]
if (paragraph) {
  paragraph.appendBlock({
    text: 'Last paragraph',
    textStyle: {
      fontSize: 16,
      underline: true,
    },
  })
}
```

**Types:** [`IPdfParagraphBlockInput`](https://unpkg.com/@univerjs-pro/pdfs@1.0.0-rc.0/lib/types/facade/types.d.ts)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/pdfs.md) · [Type definitions](https://unpkg.com/@univerjs-pro/pdfs@1.0.0-rc.0/lib/types/facade/f-pdf-paragraph.d.ts)

### `FPdfParagraph.getBlocks`

Return detached paragraph blocks in story order.

```typescript
getBlocks(): readonly IPdfParagraphBlockSnapshot[]
```

**Returns**

The current block snapshots.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const paragraph = page.getParagraphs()[0]
console.log(paragraph?.getBlocks())
```

**Types:** [`IPdfParagraphBlockSnapshot`](https://unpkg.com/@univerjs-pro/pdfs@1.0.0-rc.0/lib/types/facade/types.d.ts)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/pdfs.md) · [Type definitions](https://unpkg.com/@univerjs-pro/pdfs@1.0.0-rc.0/lib/types/facade/f-pdf-paragraph.d.ts)

### `FPdfParagraph.insertBlock`

Insert one stable paragraph block at a zero-based index.

```typescript
insertBlock(index: number, block: IPdfParagraphBlockInput): this
```

**Parameters**

* `index` — Required. The insertion index.
* `block` — Required. The new block data.

**Returns**

This paragraph Facade for chaining.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const paragraph = page.getParagraphs()[0]
if (paragraph) {
  paragraph.insertBlock(0, {
    text: 'Inserted paragraph',
    textStyle: {
      fontSize: 20,
      italic: true,
    },
  })
}
```

**Types:** [`IPdfParagraphBlockInput`](https://unpkg.com/@univerjs-pro/pdfs@1.0.0-rc.0/lib/types/facade/types.d.ts)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/pdfs.md) · [Type definitions](https://unpkg.com/@univerjs-pro/pdfs@1.0.0-rc.0/lib/types/facade/f-pdf-paragraph.d.ts)

### `FPdfParagraph.removeBlock`

Remove one stable paragraph block.

```typescript
removeBlock(blockId: string): this
```

**Parameters**

* `blockId` — Required. The stable block ID.

**Returns**

This paragraph Facade for chaining.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const paragraph = page.getParagraphs()[0]
const block = paragraph?.getBlocks()[0]
if (paragraph && block) {
  paragraph.removeBlock(block.id)
}
```

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/pdfs.md) · [Type definitions](https://unpkg.com/@univerjs-pro/pdfs@1.0.0-rc.0/lib/types/facade/f-pdf-paragraph.d.ts)

### `FPdfParagraph.setBlockStyle`

Apply paragraph layout properties to one stable block.

```typescript
setBlockStyle(blockId: string, style: IPdfParagraphStyle): this
```

**Parameters**

* `blockId` — Required. The stable block ID.
* `style` — Required. The paragraph style patch.

**Returns**

This paragraph Facade for chaining.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const paragraph = page.getParagraphs()[0]
const block = paragraph?.getBlocks()[0]
if (paragraph && block) {
  paragraph.setBlockStyle(block.id, {
    align: 'center',
  })
}
```

**Types:** [`IPdfParagraphStyle`](https://unpkg.com/@univerjs-pro/pdfs@1.0.0-rc.0/lib/types/facade/types.d.ts)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/pdfs.md) · [Type definitions](https://unpkg.com/@univerjs-pro/pdfs@1.0.0-rc.0/lib/types/facade/f-pdf-paragraph.d.ts)

### `FPdfParagraph.setBlockText`

Replace the text in a generated paragraph block.

```typescript
setBlockText(blockId: string, text: string): this
```

**Parameters**

* `blockId` — Required. The stable block ID.
* `text` — Required. The replacement text.

**Returns**

This paragraph Facade for chaining.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const paragraph = page.getParagraphs()[0]
const block = paragraph?.getBlocks()[0]
if (paragraph && block) {
  paragraph.setBlockText(block.id, 'Updated paragraph')
}
```

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/pdfs.md) · [Type definitions](https://unpkg.com/@univerjs-pro/pdfs@1.0.0-rc.0/lib/types/facade/f-pdf-paragraph.d.ts)
