277

React PDF Viewer

A React PDF viewer component with page controls, zoom, search, text selection, thumbnails, uploads, and responsive document layouts.

The React PDF Viewer is the core page-based document surface for document-heavy apps. It supports dense PDFs, scanned documents, selectable text, thumbnails, uploads, and page-level navigation.

Page 1 of -

Installation

pnpm dlx shadcn@latest add @extend/pdf-viewer

Useful behaviors

  • Zoom, fit width, fit page, rotate, and print/download actions.
  • Virtualized page rendering for long PDFs.
  • Optional OCR block overlays, e-signature fields, search highlights, and annotation layer.
  • Text layer support for selection, copy, search, and accessibility.

API Reference

PDFViewer

The PDFViewer component renders a scrollable PDF surface with toolbar controls, lazy page rendering, uploads, and page-level extension hooks.

PropTypeDefaultRequired
filestring-No
classNamestring-No
documentOptionsReactPdf.DocumentProps["options"]CDNNo
defaultThumbnailSidebarOpenbooleanfalseNo
defaultZoomnumber0.75No
pageWidthnumber612No
pageHeightnumber792No
pageNumbersnumber[]-No
pageRenderBuffernumber4No
setRenderRange(visiblePagesRange: PDFViewerVisiblePagesRange) => PDFViewerRenderRange-No
showRotateControlsbooleantrueNo
showUploadbooleantrueNo
toolbarActionsReact.ReactNode-No
pageClassName(pageNumber: number) => string | undefined-No
renderPageOverlay(props: PDFViewerPageOverlayProps) => React.ReactNode-No
onActivePageChange(pageNumber: number) => void-No
onDocumentLoadSuccess(numPages: number) => void-No
onPdfUpload(file: File) => void-No
onPagePointerDown(event: React.PointerEvent<HTMLDivElement>, pageNumber: number) => void-No
onPagePointerMove(event: React.PointerEvent<HTMLDivElement>, pageNumber: number) => void-No
onPagePointerUp(event: React.PointerEvent<HTMLDivElement>, pageNumber: number) => void-No
onPagePointerCancel(event: React.PointerEvent<HTMLDivElement>, pageNumber: number) => void-No