Copy

PDF Preview

Render the generated PDF into an in-page canvas viewer.

ON_THIS_PAGE
  1. Preview options
  2. Change scale or theme
  3. Dispose in order

PdfDocument.preview replaces a target element with the package preview.

const pdf = await renderPdf(document.querySelector("#report")!);
const target = document.querySelector<HTMLElement>("#pdf-preview");
if (!target) throw new Error("Preview target not found");

const preview = await pdf.preview(target, {
  initialScale: "fit-width",
  showToolbar: true,
  theme: "system",
});

The preview uses an isolated Shadow DOM subtree and canvas pages. It does not use the browser PDF plugin.

Preview options

TYPE_SOURCEPdfPreviewOptionsSOURCE:11
PropertyTypeRequiredDefaultDescription
showToolbarbooleanNotrueWhether to show the page summary and zoom toolbar. Defaults to `true`.
paddingnumberNo28, or 16 on narrow screensPadding around the rendered pages in CSS pixels. Defaults to `28`, or `16` on narrow screens.
initialScalenumber | "fit-width"Nofit-widthInitial zoom or automatic fit. Defaults to `fit-width`.
minScalenumberNo0Lowest permitted zoom. Defaults to `0.25` and is never below `0.1`.
maxScalenumberNo3 and is never below minScaleHighest permitted zoom. Defaults to `3` and is never below `minScale`.
zoomStepnumberNo0Zoom-button increment. Defaults to `0.25` and is never below `0.05`.
maxPixelRationumberNo2Device-pixel-ratio cap used for page canvases. Defaults to `2`.
ariaLabelstringNoPDF previewAccessible label for the preview region. Defaults to `PDF preview`.
themePdfPreviewThemeNosystem and follows the browser preferencePreview-control theme. Defaults to `system` and follows the browser preference.
onProgress(completedPages: number, totalPages: number) => voidNoNoneCalled after each page canvas completes rendering.

The toolbar contains page status and zoom controls. The page area is keyboard focusable. Set ariaLabel when the surrounding context needs a more specific name.

Change scale or theme

await preview.setScale(1.25);
await preview.fitToWidth();
preview.setTheme("dark");

Dispose in order

preview.dispose();
pdf.dispose();

Disposing the document also disposes previews it still owns. Separate preview disposal is useful when you close the viewer but keep the PDF bytes.

ON_THIS_PAGE
  1. Preview options
  2. Change scale or theme
  3. Dispose in order
html2realpdf documentationCopyright © Imggion
DOCUMENTATION_TREE