| Prop | Type | Default | Description |
|---|---|---|---|
width |
String | '100%' |
Container width |
height |
String | '100%' |
Container height |
initFiles |
Array | [] |
PDF files to load |
initFileNames |
Array | [] |
Names for the PDF files |
initialScale |
Number | 1 |
Initial zoom scale |
showPageFooter |
Boolean | true |
Show page footer with document name and page number |
hideSelectionUI |
Boolean | false |
Hide selection handles and actions UI |
showSelectionHandles |
Boolean | true |
Show resize/move handles on selected elements |
showElementActions |
Boolean | true |
Show action buttons on selected elements |
readOnly |
Boolean | false |
Disable drag, resize, and actions for elements |
ignoreClickOutsideSelectors |
Array | [] |
CSS selectors that keep the selection active when clicking outside the element |
pageCountFormat |
String | '{currentPage} of {totalPages}' |
Format string for page counter |
autoFitZoom |
Boolean | false |
Automatically adjust zoom to fit viewport on window resize |
pdfjsOptions |
Object | {} |
Options passed to PDF.js getDocument |
pdfjsOptions is forwarded to PDF.js getDocument(...).
<PDFElements
:pdfjs-options="{
disableFontFace: true,
disableRange: true,
disableStream: true,
}"
/>pdf-elements:end-init- Emitted when PDF is loaded.pdf-elements:adding-ended- Emitted when interactive placement ends. Payload:{ reason: 'placed', object, docIndex, pageIndex }on success or{ reason: 'cancelled' }when placement is cancelled.
startAddingElement(templateObject)- Starts interactive placement mode.cancelAdding()- Cancels the current placement session and emitspdf-elements:adding-endedwith{ reason: 'cancelled' }when a session was active.
element-{type}- Custom element rendering, for exampleelement-signature.custom- Fallback for elements without a specific type slot.actions- Custom action buttons.
The actions slot receives:
objectonDeleteonDuplicatetoolbarClass(pdf-elements-actions-toolbar)actionClass(pdf-elements-action-btn)actionAttrs({ 'data-pdf-elements-action': 'true' })
These hooks allow host applications to style third-party button components consistently without depending on internal scoped selectors.
<template #actions="slotProps">
<NcButton
:class="slotProps.actionClass"
v-bind="slotProps.actionAttrs"
type="button"
variant="tertiary"
@click.stop="slotProps.onDuplicate"
>
Duplicate
</NcButton>
</template>Action toolbar and action buttons can be themed via CSS variables and follow host theme tokens by default.
| Variable | Description |
|---|---|
--pdf-elements-toolbar-gap |
Toolbar button gap |
--pdf-elements-toolbar-padding |
Toolbar padding |
--pdf-elements-toolbar-background |
Toolbar background color |
--pdf-elements-toolbar-color |
Toolbar text/icon color |
--pdf-elements-toolbar-border-color |
Toolbar border color |
--pdf-elements-toolbar-border-radius |
Toolbar border radius |
--pdf-elements-toolbar-shadow |
Toolbar shadow |
--pdf-elements-action-btn-border |
Action button border |
--pdf-elements-action-btn-background |
Action button background |
--pdf-elements-action-btn-color |
Action button text/icon color |
--pdf-elements-action-btn-padding |
Action button padding |
--pdf-elements-action-btn-radius |
Action button border radius |
--pdf-elements-action-btn-min-height |
Action button min height |
--pdf-elements-action-btn-min-width |
Action button min width |
--pdf-elements-action-btn-shadow |
Action button shadow |
--pdf-elements-action-btn-hover-background |
Action button hover background |