Node API
pdf()
The pdf() function creates a renderer instance from a Vue component. It provides methods for generating PDF output in various formats.
Signature
ts
function pdf(
element: VueApp | Component | { new (): Component },
props?: Record<string, unknown>
): PDFInstancePDFInstance Methods
| Prop | Type | Default | Description |
|---|---|---|---|
toBlob() | Promise<Blob> | — | Generate PDF as a Blob. |
toBuffer() | Promise<Buffer> | — | Generate PDF as a Node.js Buffer. Only available in Node. |
toString() | Promise<string> | — | Generate PDF as a base64-encoded string. |
updateContainer(element) | void | — | Re-render with a new Vue component or app. |
on(event, callback) | void | — | Listen for events (change when rendering completes). |
Node.js Example
ts
import { pdf } from '@vuepdf/renderer'
import { createSSRApp } from 'vue'
import MyDocument from './MyDocument.vue'
const app = createSSRApp(MyDocument, { title: 'My Doc' })
const instance = pdf(app)
// Generate as Buffer (Node)
const buffer = await instance.toBuffer()
fs.writeFileSync('./output.pdf', buffer)
// Or as a base64 string
const base64 = await instance.toString()Browser Example
ts
import { pdf } from '@vuepdf/renderer'
import { createApp } from 'vue'
import MyDocument from './MyDocument.vue'
const app = createApp(MyDocument, { title: 'My Doc' })
const instance = pdf(app)
instance.on('change', () => {
console.log('PDF rendered!')
})
const blob = await instance.toBlob()
// Use the blob for download, preview, etc.