# FPdfPage

> Language fallback: requested `zh-CN`; content is `en-US`.

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

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

- Requested language: `zh-CN`

- Content language: `en-US`

- Documentation version: `1.0.0-rc.0`

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

---

Facade for one materialized PDF page.

## Access

Access through:

* [`FPdf.insertPage()`](https://docs.univer.ai/zh-CN/reference/facade/pdf.md#insertpage)
* [`FPdf.getPages()`](https://docs.univer.ai/zh-CN/reference/facade/pdf.md#getpages)
* [`FPdf.getPageById()`](https://docs.univer.ai/zh-CN/reference/facade/pdf.md#getpagebyid)
* [`FPdf.getPageByIndex()`](https://docs.univer.ai/zh-CN/reference/facade/pdf.md#getpagebyindex)

## Example

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getElements())
```

## Setup

Register [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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/zh-CN/guides/pdfs/getting-started/facade.md).

## `@univerjs-pro/pdfs`

### `FPdfPage.getAnnotations`

Return all editable annotations in z-order.

```typescript
getAnnotations(): FPdfAnnotation[]
```

**Returns**

The annotation Facades.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getAnnotations())
```

**Types:** [`FPdfAnnotation`](https://docs.univer.ai/zh-CN/reference/facade/pdf-annotation.md)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getData`

Return a detached snapshot of the current materialized page.

```typescript
getData(): Readonly<IPdfPage>
```

**Returns**

The current page snapshot.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getData())
```

**Types:** [`IPdfPage`](https://unpkg.com/@univerjs-pro/pdfs@1.0.0-rc.0/lib/types/types.d.ts) · [`Readonly`](https://unpkg.com/@typescript/typescript-darwin-arm64@7.0.2/lib/lib.es5.d.ts)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getDividers`

Return all editable dividers in z-order.

```typescript
getDividers(): FPdfDivider[]
```

**Returns**

The divider Facades.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getDividers())
```

**Types:** [`FPdfDivider`](https://docs.univer.ai/zh-CN/reference/facade/pdf-divider.md)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getElementById`

Return one editable page element by ID.

```typescript
getElementById(id: string): FPdfPageElement | null
```

**Parameters**

* `id` — Required. The element ID.

**Returns**

The element Facade, or `null` when it does not exist.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const element = page.getElementById('element-id')
console.log(element)
```

**Types:** [`FPdfPageElement`](https://docs.univer.ai/zh-CN/reference/facade/pdf-page-element.md)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getElements`

Return all editable page elements in z-order.

```typescript
getElements(): FPdfPageElement[]
```

**Returns**

The editable element Facades.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getElements())
```

**Types:** [`FPdfPageElement`](https://docs.univer.ai/zh-CN/reference/facade/pdf-page-element.md)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getId`

Return the stable page ID.

```typescript
getId(): string
```

**Returns**

The page ID.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getId())
```

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getImages`

Return all editable managed images in z-order.

```typescript
getImages(): FPdfImage[]
```

**Returns**

The image Facades.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getImages())
```

**Types:** [`FPdfImage`](https://docs.univer.ai/zh-CN/reference/facade/pdf-image.md)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getIndex`

Return the current zero-based page index.

```typescript
getIndex(): number
```

**Returns**

The current page index.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getIndex())
```

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getLists`

Return all semantic lists in z-order.

```typescript
getLists(): FPdfList[]
```

**Returns**

The list Facades.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getLists())
```

**Types:** [`FPdfList`](https://docs.univer.ai/zh-CN/reference/facade/pdf-list.md)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getParagraphs`

Return all story-backed paragraph frames in z-order.

```typescript
getParagraphs(): FPdfParagraph[]
```

**Returns**

The paragraph Facades.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getParagraphs())
```

**Types:** [`FPdfParagraph`](https://docs.univer.ai/zh-CN/reference/facade/pdf-paragraph.md)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getTables`

Return all structured tables in z-order.

```typescript
getTables(): FPdfTable[]
```

**Returns**

The table Facades.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getTables())
```

**Types:** [`FPdfTable`](https://docs.univer.ai/zh-CN/reference/facade/pdf-table.md)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getTextBoxes`

Return all simple editable text boxes in z-order.

```typescript
getTextBoxes(): FPdfTextBox[]
```

**Returns**

The text-box Facades.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getTextBoxes())
```

**Types:** [`FPdfTextBox`](https://docs.univer.ai/zh-CN/reference/facade/pdf-text-box.md)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.getTextSpans`

Return snapshot Facades for every currently visible native text operation.

```typescript
getTextSpans(): FPdfTextSpan[]
```

**Returns**

The current native-text span snapshots.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
console.log(page.getTextSpans())
```

**Types:** [`FPdfTextSpan`](https://docs.univer.ai/zh-CN/reference/facade/pdf-text-span.md)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)

### `FPdfPage.insertAnnotation`

Insert one durable PDF annotation.

```typescript
insertAnnotation(options: IPdfAnnotationInsertOptions): FPdfAnnotation
```

**Parameters**

* `options` — Required. Annotation type, geometry, and placement.

**Returns**

The inserted annotation Facade.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const annotation = page.insertAnnotation({
  annotationType: univerAPI.Enum.PdfAnnotationType.HIGHLIGHT,
  left: 36,
  top: 72,
  width: 180,
  height: 18,
})
```

**Types:** [`FPdfAnnotation`](https://docs.univer.ai/zh-CN/reference/facade/pdf-annotation.md) · [`IPdfAnnotationInsertOptions`](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/zh-CN/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-page.d.ts)

### `FPdfPage.insertDivider`

Insert one editable vector divider.

```typescript
insertDivider(options?: IPdfDividerInsertOptions): FPdfDivider
```

**Parameters**

* `options` — Optional. Default: `{}`. Placement and stroke options.

**Returns**

The inserted divider Facade.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const divider = page.insertDivider({
  left: 36,
  top: 144,
  width: 200,
  strokeWidth: 1,
})
```

**Types:** [`FPdfDivider`](https://docs.univer.ai/zh-CN/reference/facade/pdf-divider.md) · [`IPdfDividerInsertOptions`](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/zh-CN/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-page.d.ts)

### `FPdfPage.insertImage`

Insert an image from detached builder information.

```typescript
insertImage(info: IPdfImageBuilderInfo, index?: number): FPdfImage
```

**Parameters**

* `info` — Required. The image builder result.
* `index` — Optional. The optional z-order index.

**Returns**

The inserted image Facade.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const imageInfo = page
  .newImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4')
  .setSize(240, 135)
  .build()
page.insertImage(imageInfo)
```

**Types:** [`FPdfImage`](https://docs.univer.ai/zh-CN/reference/facade/pdf-image.md) · [`IPdfImageBuilderInfo`](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/zh-CN/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-page.d.ts)

### `FPdfPage.insertImageAsync`

Insert an image directly from a string or Blob source.

```typescript
insertImageAsync(source: string | IFBlobSource, options?: IPdfImageInsertOptions): Promise<FPdfImage>
```

**Parameters**

* `source` — Required. A URL, UUID, base64 value, or Blob source.
* `options` — Optional. Default: `{}`. Optional placement, crop, opacity, and source type.

**Returns**

The inserted image Facade.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const image = await page.insertImageAsync(
  'https://avatars.githubusercontent.com/u/61444807?s=48&v=4',
  {
    left: 36,
    top: 36,
    width: 240,
    height: 135,
  },
)
```

**Types:** [`FPdfImage`](https://docs.univer.ai/zh-CN/reference/facade/pdf-image.md) · [`Promise`](https://unpkg.com/@typescript/typescript-darwin-arm64@7.0.2/lib/lib.es5.d.ts) · [`IFBlobSource`](https://unpkg.com/@univerjs/core@1.0.0-rc.0/lib/types/facade/f-blob.d.ts) · [`IPdfImageInsertOptions`](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/zh-CN/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-page.d.ts)

### `FPdfPage.insertList`

Insert one story-backed semantic list.

```typescript
insertList(options: IPdfListInsertOptions): FPdfList
```

**Parameters**

* `options` — Required. List text, kind, preset, and placement.

**Returns**

The inserted list Facade.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const list = page.insertList({
  text: 'First item',
  kind: univerAPI.Enum.PdfListKind.UNORDERED,
  preset: univerAPI.Enum.PdfListPresetId.UNORDERED_DISC,
})

list
  .insertItem(1, { text: '第二项' })
  .insertItem(2, { text: '子项', level: 1 })
  .insertItem(3, { text: '第四项' })
```

**Types:** [`FPdfList`](https://docs.univer.ai/zh-CN/reference/facade/pdf-list.md) · [`IPdfListInsertOptions`](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/zh-CN/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-page.d.ts)

### `FPdfPage.insertParagraph`

Insert one story-backed paragraph frame.

```typescript
insertParagraph(options: IPdfParagraphInsertOptions): FPdfParagraph
```

**Parameters**

* `options` — Required. Paragraph text, placement, and initial style.

**Returns**

The inserted paragraph Facade.

**Examples**

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

**Types:** [`FPdfParagraph`](https://docs.univer.ai/zh-CN/reference/facade/pdf-paragraph.md) · [`IPdfParagraphInsertOptions`](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/zh-CN/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-page.d.ts)

### `FPdfPage.insertTable`

Insert one structured editable table.

```typescript
insertTable(options: IPdfTableInsertOptions): FPdfTable
```

**Parameters**

* `options` — Required. Grid dimensions, values, placement, and theme.

**Returns**

The inserted table Facade.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const table = page.insertTable({
  rowCount: 2,
  columnCount: 3,
  cellTexts: ['A', 'B', 'C'],
})
```

**Types:** [`FPdfTable`](https://docs.univer.ai/zh-CN/reference/facade/pdf-table.md) · [`IPdfTableInsertOptions`](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/zh-CN/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-page.d.ts)

### `FPdfPage.insertTextBox`

Insert a simple editable text box using PDF-point geometry.

```typescript
insertTextBox(options: IPdfTextBoxInsertOptions): FPdfTextBox
```

**Parameters**

* `options` — Required. Text, placement, and initial text style.

**Returns**

The inserted text-box Facade.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const textBox = page.insertTextBox({
  text: 'Hello PDF',
  left: 36,
  top: 36,
})
```

**Types:** [`FPdfTextBox`](https://docs.univer.ai/zh-CN/reference/facade/pdf-text-box.md) · [`IPdfTextBoxInsertOptions`](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/zh-CN/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-page.d.ts)

### `FPdfPage.newImage`

Return a detached image builder, optionally initialized from an image or ID.

```typescript
newImage(existing?: FPdfImage | string): FPdfImageBuilder
```

**Parameters**

* `existing` — Optional. An image Facade or explicit image ID to initialize.

**Returns**

A detached image builder.

**Examples**

```ts
const pdf = univerAPI.getActivePdf()
const page = pdf.getPageByIndex(0)
const imageInfo = page
  .newImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4')
  .setSize(240, 135)
  .build()
page.insertImage(imageInfo)
```

**Types:** [`FPdfImageBuilder`](https://docs.univer.ai/zh-CN/reference/facade/pdf-image-builder.md) · [`FPdfImage`](https://docs.univer.ai/zh-CN/reference/facade/pdf-image.md)

**Package:** [`@univerjs-pro/pdfs`](https://docs.univer.ai/zh-CN/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-page.d.ts)
