コンテンツにスキップ

PdfDocument

このコンテンツはまだ日本語訳がありません。

Defined in: packages/core/src/types.ts:315

Represents an opened PDF document.

This interface provides methods to render PDF pages to images. Implements AsyncDisposable for automatic resource cleanup with ES2024 await using syntax.

Important: Always close the document when done to release resources. Use await using for automatic cleanup, or call close manually.

Example

// Manual cleanup
const pdf = await openPdf('/path/to/document.pdf')
try {
for await (const page of pdf.renderPages()) {
await fs.writeFile(`page-${page.pageNumber}.jpg`, page.buffer)
}
} finally {
await pdf.close()
}
// Automatic cleanup with await using (ES2024)
await using pdf = await openPdf('/path/to/document.pdf')
for await (const page of pdf.renderPages()) {
await fs.writeFile(`page-${page.pageNumber}.jpg`, page.buffer)
}
// Automatically closed when scope ends

Extends

  • AsyncDisposable

Properties

pageCount

readonly pageCount: number

Defined in: packages/core/src/types.ts:325

Total number of pages in the document.

Example

const pdf = await openPdf('/path/to/document.pdf')
console.log(`Document has ${pdf.pageCount} pages`)

Methods

[asyncDispose]()

[asyncDispose](): PromiseLike<void>

Defined in: node_modules/.pnpm/@types+node@22.19.3/node_modules/@types/node/compatibility/disposable.d.ts:13

Returns

PromiseLike<void>

Inherited from

AsyncDisposable.[asyncDispose]


close()

close(): Promise<void>

Defined in: packages/core/src/types.ts:389

Close the document and release all resources.

After calling this method, the document cannot be used anymore. This method is idempotent (safe to call multiple times).

When using await using syntax, this method is called automatically.

Returns

Promise<void>

Example

const pdf = await openPdf('/path/to/document.pdf')
// ... use the document ...
await pdf.close()

renderPage()

renderPage(pageNumber, options?): Promise<RenderedPage>

Defined in: packages/core/src/types.ts:372

Render a single page to an image.

Use this method when you only need to render one specific page. For multiple pages, prefer renderPages for better memory efficiency.

Parameters

pageNumber

number

Page number to render (1-indexed)

options?

Omit<RenderOptions, "pages">

Rendering options (scale, format, quality). The pages option is ignored.

Returns

Promise<RenderedPage>

Promise resolving to the rendered page

Throws

PdfError with code INVALID_PAGE_NUMBER if page number is out of range

Example

// Render just the first page
const firstPage = await pdf.renderPage(1)
await fs.writeFile('first-page.jpg', firstPage.buffer)
// Render with custom options
const page = await pdf.renderPage(5, { scale: 2.0, format: 'png' })

renderPages()

renderPages(options?): AsyncGenerator<RenderedPage, void, unknown>

Defined in: packages/core/src/types.ts:349

Render pages as images using an async generator.

This method is memory-efficient: it processes one page at a time and releases resources for each page before moving to the next.

Parameters

options?

RenderOptions

Rendering options (scale, format, quality, pages)

Returns

AsyncGenerator<RenderedPage, void, unknown>

Async generator yielding RenderedPage for each page

Example

// Render all pages
for await (const page of pdf.renderPages({ scale: 1.5, format: 'jpeg' })) {
await fs.writeFile(`page-${page.pageNumber}.jpg`, page.buffer)
}
// Render specific pages
for await (const page of pdf.renderPages({ pages: [1, 2, 3] })) {
// Only pages 1, 2, and 3
}