1.1.1
The viewer component to display PDF files. Renders PDF.js viewer in an iframe but updates UI theme and structure for a neat and fast experience.
Extends EventTarget
Name | Description |
---|---|
options.id String
(default "pdfViewer" )
|
The id that will be used for DOM element of this component in the page.
If the id is already used, it will be incremented like
pdfViewer2...pdfViewerX
.
|
options.hidden Boolean
(default false )
|
A value indicating whether the component is displayed when page is loaded. When set to false, the component can be displayed later via calling PdfViewer#show method. For example, the component can be displayed via a button's click event. |
options.width (Number | String)
(default 960 )
|
The width of the component.
If it's a number it will be treated as pixels, if it's a string it will be treated as CSS units (e.g.
"80%"
,
"36rem"
).
|
options.height (Number | String)
(default 720 )
|
The height of the component.
If it's a number it will be treated as pixels, if it's a string it will be treated as CSS units (e.g.
"80%"
,
"36rem"
).
|
options.border Boolean
(default true )
|
A value indicating whether the component should haver borders. |
options.resizable Boolean
(default true )
|
A value that specifies if the component can be resized when the user drags sides. |
options.libraryPath String
(default "pdfjskit" )
|
The path from where the component should load its assets (css, images etc.).
Relative paths will be considered relative to the host page.
If not set, script version (.js) will try to use same directory of the script, module version (.mjs) will use
"pdfjskit"
.
|
options.language String
(default "en-US" )
|
The display (user interface) language of the component.
It can be set to the two-letter language names like
"en"
,
"de"
,
"fr"
etc. or to specific languages like
"en-US"
,
"de-DE"
,
"fr-FR"
etc.
|
options.license Object
(default null )
|
The license info (JSON) you received when you purchased.
The evaluation version is the same as the purchased one – the trial version simply becomes licensed when you apply the license.
If not set, you will see license reminder every time you load a document.
|
options.documentUrl (String | URL)
(default "" )
|
The url of the PDF to open on load. Relative paths will be considered relative to the host page. |
options.documentData (PdfJs#TypedArray | ArrayBuffer | Array<number> | string)
(default null )
|
The binary data of the PDF to open on load.
If binary data is provided, then it will be used first instead of
documentUrl
.
Use TypedArrays (Uint8Array) to improve the memory usage. If PDF data is
BASE64-encoded, use NOTE: If TypedArrays are used they will generally be transferred to the worker-thread. This will help reduce main-thread memory usage, however it will take ownership of the TypedArrays. |
options.documentPassword String
(default null )
|
The password of the PDF to open on load, for decrypting password-protected PDFs. |
options.documentSize Number
(default null )
|
The file size of the PDF to open on load, if known. It's used for progress reports and range requests operations. |
options.zoomMode (String | Number)
(default "" )
|
The initial mode for zooming pages in the viewer.
Possible values are
"auto"
,
"page-actual"
,
"page-width"
,
"page-height"
,
"page-fit"
(case insensitive and dashes can be omitted) or a percentage string like
"80%"
or a percentage number like
80
.
If not set, the document's zoom level will be remembered per document via browser's local storage. The history will start with
"auto"
.
|
options.scrollMode String
(default "unknown" )
|
The initial mode for scrolling pages in the viewer.
Possible values are
"vertical"
,
"horizontal"
,
"wrapped"
,
"page"
(case insensitive).
If not set, the document's scroll mode will be remembered per document via browser's local storage. The history will start with
"vertical"
.
Note that if rememberViewHistory
is set to
false
, then it can be derived from 'PageLayout' setting inside PDF if exists.
|
options.spreadMode String
(default "unknown" )
|
The initial mode for spreading pages in the viewer.
Possible values are
"none"
,
"odd"
,
"even"
(case insensitive).
If not set, the document's spread mode will be remembered per document via browser's local storage. The history will start with
"none"
.
Note that if
rememberViewHistory
is set to
false
, then it can be derived from 'PageLayout' setting inside PDF if exists.
|
options.sidebarView String
(default "unknown" )
|
The initial active view in sidebar of the viewer.
Possible values are
"none"
,
"thumbs"
,
"outline"
,
"attachments"
,
"layers"
(case insensitive).
If not set, the sidebar view will be remembered per document via browser's local storage. The history will start with
"none"
.
Note that if
rememberViewHistory
is set to
false
, then it can be derived from 'PageMode' setting inside PDF if exists.
|
options.cursorTool String
(default "select" )
|
The initial cursor tool in the viewer.
Possible values are
"select"
,
"hand"
(case insensitive).
|
options.rotationMode String
(default "all-pages" )
|
A value that specifies whether rotate buttons should only rotate all pages or only the currently viewed page.
Possible values are
"all-pages"
,
"current-page"
(case insensitive and dashes can be omitted).
|
options.rememberViewHistory Boolean
(default true )
|
A value that specifies whether for each document fingerprint, the viewer should remember UI state via browser's local storage,
i.e. last viewed page, zoom level, scroll position, rotation,
sidebarView
,
scrollMode
,
spreadMode
.
If you want the viewer to discard any view history entries and always load all documents at the first page (and with default zoom values),
then you should set this property to
false
.
|
options.toolbarVisible Boolean
(default true )
|
A value that specifies whether the top toolbar is visible. |
options.sidebarVisible Boolean
(default true )
|
A value that specifies whether the left sidebar is visible. |
options.verticalToolbarVisible Boolean
(default true )
|
A value that specifies whether the right vertical toolbar is visible. |
options.toolbarAtBottom Boolean
(default false )
|
A value that specifies whether the top toolbar should be placed at the bottom instead. |
options.theme String
(default "slate, classic-dark" )
|
The theme to use for the viewer.
Possible values are
"slate"
,
"classic-light"
,
"classic-dark"
or the CSS class name of a custom theme.
When two values separated by comma is set, the second value will be the dark theme.
Dark theme is used when a user indicates their preference through an operating system setting (e.g. light or dark mode) or a user agent setting.
When single value is provided, dark theme is disabled, i.e. the only provided theme will be used always even when user prefers dark mode.
|
options.mobileMode String
(default "on-any" )
|
A value that specifies on which mobile device type to use large UI sizing for the viewer.
Possible values are
"on-any"
,
"on-phone"
,
"on-tablet"
,
"never"
(case insensitive and dashes can be omitted).
Note that device features are not detected, instead browser's viewport size is used to decide the UI sizing.
So if you manually resize the browser window (or emulate a device via browser's F12 dev tools), phone or tablet size can be triggered.
|
options.events Object?
|
The event handlers to register.
An event handler can be a function or name of the function in string.
String function name should refer to a valid JavaScript function which is accessible on the host page.
String Function names should be specified without parentheses like "FunctionName" or "Namespace.FunctionName".
|
options.events.loaded (Function | String)
(default null )
|
The event raised when the viewer has been loaded.
|
options.events.failed (Function | String)
(default null )
|
The event raised when an error occurs.
|
options.events.documentLoaded (Function | String)
(default null )
|
The event raised when a document has been loaded.
|
options.events.pageChanged (Function | String)
(default null )
|
The event raised when viewed page is changed.
|
options.events.pageRendered (Function | String)
(default null )
|
The event raised when a page had finished rendering.
|
options.events.rotationChanged (Function | String)
(default null )
|
The event raised when page rotation is changed.
|
options.events.downloading (Function | String)
(default null )
|
The event raised before user downloads the original document or PDF version.
|
options.events.printing (Function | String)
(default null )
|
The event raised before user prints the document.
|
options.events.printed (Function | String)
(default null )
|
The event raised when printing is completed.
|
options.events.textSelected (Function | String)
(default null )
|
The event raised when user selects text in the document.
|
options.events.textCopied (Function | String)
(default null )
|
The event raised when user copies the selected text in the document.
|
options.permissions Object?
|
The permissions for the viewer to enable/disable corresponding UI elements. |
options.permissions.viewThumbnails Boolean
(default true )
|
Ability to view thumbnails for the document pages. |
options.permissions.viewOutlines Boolean
(default true )
|
Ability to view outlines of the document. |
options.permissions.viewAttachments Boolean
(default true )
|
Ability to view attachments of the document. |
options.permissions.viewLayers Boolean
(default true )
|
Ability to view layers of the document. |
options.permissions.navigatePages Boolean
(default true )
|
Ability to navigate pages, e.g. next page, previous page and jump to page. |
options.permissions.zoom Boolean
(default true )
|
Ability to zoom in or out of the document. |
options.permissions.changeZoomMode Boolean
(default true )
|
Ability to change zoom mode of the document, e.g. fit width, fit page etc. |
options.permissions.find Boolean
(default true )
|
Ability to find text within the document. |
options.permissions.downloadOriginal Boolean
(default false )
|
Ability to download the original document. Downloading can be disabled for security (DRM) purpose. |
options.permissions.save Boolean
(default true )
|
Ability to save the document, if there are changes like new annotations, these will be included. Saving can be disabled for additional security (DRM) purpose. |
options.permissions.print Boolean
(default true )
|
Ability to print the displayed document. Printing can be disabled for additional security (DRM) purpose. |
options.permissions.open Boolean
(default true )
|
Ability to open local PDF files, i.e. user is shown "Open" menu item which is when clicked shows browser's open dialog to choose a PDF file to load. |
options.permissions.goFullScreen Boolean
(default true )
|
Ability to switch the viewer to full screen. |
options.permissions.goPresentationMode Boolean
(default true )
|
Ability to switch the viewer to presentation mode. |
options.permissions.viewProperties Boolean
(default true )
|
Ability to view properties of the document. |
options.permissions.selectText Boolean
(default true )
|
Ability to select and copy text in the displayed document Text selection can be disabled for additional security (DRM) purpose. |
options.permissions.pan Boolean
(default true )
|
Ability to pan the document. |
options.permissions.rotate Boolean
(default true )
|
Ability to rotate the page or document, e.g. rotate clockwise and rotate counterclockwise. |
options.permissions.changeScrollMode Boolean
(default true )
|
Ability to change scroll mode of the document, e.g. vertical, horizontal etc. |
options.permissions.changeSpreadMode Boolean
(default true )
|
Ability to change spread mode of the document, e.g. odd, even etc. |
options.permissions.viewAnnotations Boolean
(default true )
|
Ability to view and edit annotations of the document. |
options.permissions.fillForms Boolean
(default true )
|
Ability to fill values into form fields of the document. Requires also ViewAnnotations permission. |
options.searchOptions Object?
|
The text search options of the viewer. If you specify a search term, an automatic search will be done when the document is displayed, i.e. the specified term will be searched and the term(s) will be highlighted in the pages. For example, if you launch the viewer from a search results page, you can pass the same search term to the viewer. |
options.searchOptions.term String
(default "" )
|
A value that specifies the search term used. |
options.searchOptions.matchCase Boolean
(default false )
|
The search should be case-sensitive, i.e. the found text must match the case of the search term. |
options.searchOptions.matchDiacritics Boolean
(default false )
|
The search should match the letters with diacritics (accents), e.g
u
matches also
ü
.
Diacritics, often loosely called
accents
, are the various little dots and squiggles which, in many languages,
are written above, below or on top of certain letters of the alphabet to indicate something about their pronunciation.
|
options.searchOptions.matchWholeWord Boolean
(default false )
|
The search should match the whole word only, i.e the found text must be a whole word (surrounded by a non-word character). (e.g. "doc" matches " doc " or ".doc" but not "document"). |
options.searchOptions.matchAnyWord Boolean
(default false )
|
The search should match the term as a whole or match any word in the term separately (e.g. "bicycle bells" or "bicycle" or "bells"). |
options.searchOptions.highlightColor String
(default "#FFFF00" )
|
The color to use for highlighting search results. Default is yellow. |
options.searchOptions.activeHighlightColor String
(default "#FFA500" )
|
The color to use for highlighting active (current) search result. Default is orange. |
options.searchOptions.highlightAll Boolean
(default true )
|
A value that specifies whether to highlight all search results, i.e. not only active (current) search result. |
options.printOptions Object?
|
The print options of the viewer. |
options.printOptions.resolution Number
(default 150 )
|
A value in percentage that specifies the resolution (quality level) used when printing. The default level ensures excellent quality but may cause slow printing for some documents, you can decrease the level to increase the printing speed while maintaining an acceptable quality for your case. |
options.printOptions.autoRotate Boolean
(default true )
|
A value that specifies whether to enable automatic rotation of landscape pages upon printing. Note that most browsers may already auto-rotate pages when printing. |
options.translations Object?
|
A value that specifies the custom translations for the viewer.
The viewer has about 111 language files, however for some few custom text which are not inside those language files, this property is used to override.
For example, you can override the default "Rotation Mode" message for localization purpose.
|
import PdfViewer from "pdfjskit";
var pdfViewer = new PdfViewer({
documentUrl: "pdfjskit/sample.pdf",
width: "80%",
height: 720,
resizable: true,
language: "en-US",
theme: "slate, classic-dark"
});
pdfViewer.render(document.getElementById("container"));
Gets or sets the mode for scrolling pages in the viewer.
Possible values are "vertical"
, "horizontal"
, "wrapped"
, "page"
(case insensitive).
Type: String
Gets or sets the mode for spreading pages in the viewer.
Possible values are "none"
, "odd"
, "even"
(case insensitive).
Type: String
Gets or sets the active view in sidebar of the viewer.
Possible values are "none"
, "thumbs"
, "outline"
, "attachments"
, "layers"
(case insensitive).
Type: String
Gets or sets the cursor tool in the viewer.
Possible values are "select"
, "hand"
(case insensitive).
Type: String
Gets or sets a value that specifies whether rotate buttons should only rotate all pages or only the currently viewed page.
Possible values are "all-pages"
, "current-page"
(case insensitive and dashes can be omitted).
Type: String
Gets or sets the theme to use for the viewer.
Possible values are "slate"
, "classic-light"
, "classic-dark"
or the CSS class name of a custom theme.
When two values separated by comma is set, the second value will be the dark theme.
Dark theme is used when a user indicates their preference through an operating system setting (e.g. light or dark mode) or a user agent setting.
When single value is provided, dark theme is disabled, i.e. the only provided theme will be used always even when user prefers dark mode.
Type: String
Gets or sets the display (user interface) language of the component.
It can be set to the two-letter language names like "en"
, "de"
, "fr"
etc. or to specific languages like "en-US"
, "de-DE"
, "fr-FR"
etc.
Type: String
Sets the license info (JSON) you received when you purchased. The evaluation version is the same as the purchased one – the trial version simply becomes licensed when you apply the license. If not set, you will see license reminder every time you load a document.
Type: Object
(any)
Gets the DOM element of this component in the page (if it's rendered).
Type: Element
Renders the component in the page.
(Element?)
The target DOM element, e.g. the container or adjacent element.
If omitted HTML string will be returned.
(String
= "beforeend"
)
A string representing the position relative to the targetElement
(Element | String)
:
DOM element, if target was specified, otherwise HTML string.
Shows the component. Note that the component should be rendered beforehand.
Hides the component. Note that the component should be rendered beforehand.
Destroys the component. Removes the component element from DOM.
Opens a new document.
(Object)
Accepts any/all of the properties from
PdfJs#DocumentInitParameters
, and also a
originalUrl
string.
(Object?)
Used internally when opening attachment tree nodes.
Promise
:
Promise that is resolved when the document is opened.
Closes current document.
Saves current document. Browser's save dialog will be launched.
Saves current document as binary (byte array).
(Boolean)
A value that specifies whether to discard edits e.g. if there are changes like new annotations.
Uint8Array
:
Downloads the original of current document. Browser's save dialog will be launched.
Toggles full screen mode.
PDF.js related type definitions.
Type: (Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array)
Document initialization / loading parameters object.
Type: Object
((PdfJs#TypedArray | ArrayBuffer | Array<number> | string)?)
: Binary PDF data.
Use TypedArrays (Uint8Array) to improve the memory usage. If PDF data is
BASE64-encoded, use
atob()
to convert it to a binary string first.
NOTE: If TypedArrays are used they will generally be transferred to the worker-thread. This will help reduce main-thread memory usage, however it will take ownership of the TypedArrays.
(Object?)
: Basic authentication headers.
(boolean?)
: Indicates whether or not
cross-site Access-Control requests should be made using credentials such
as cookies or authorization headers. The default is
false
.
(string?)
: For decrypting password-protected PDFs.
(number?)
: The PDF file length. It's used for progress
reports and range requests operations.
(PDFDataRangeTransport?)
: Allows for using a custom range
transport implementation.
(number?)
: Specify maximum number of bytes fetched
per range request. The default value is
DEFAULT_RANGE_CHUNK_SIZE
.
(PDFWorker?)
: The worker that will be used for loading and
parsing the PDF data.
(string?)
: The base URL of the document, used when
attempting to recover valid absolute URLs for annotations, and outline
items, that (incorrectly) only specify relative URLs.
(string?)
: The URL where the predefined Adobe CMaps are
located. Include the trailing slash.
(boolean?)
: Specifies if the Adobe CMaps are binary
packed or not. The default value is
true
.
(Object?)
: The factory that will be used when
reading built-in CMap files. Providing a custom factory is useful for
environments without Fetch API or
XMLHttpRequest
support, such as
Node.js. The default value is {DOMCMapReaderFactory}.
(boolean?)
: When
true
, fonts that aren't
embedded in the PDF document will fallback to a system font.
The default value is
true
in web environments and
false
in Node.js;
unless
disableFontFace === true
in which case this defaults to
false
regardless of the environment (to prevent completely broken fonts).
(string?)
: The URL where the standard font
files are located. Include the trailing slash.
(Object?)
: The factory that will be used
when reading the standard font files. Providing a custom factory is useful
for environments without Fetch API or
XMLHttpRequest
support, such as
Node.js. The default value is {DOMStandardFontDataFactory}.
(boolean?)
: Enable using the Fetch API in the
worker-thread when reading CMap and standard font files. When
true
,
the
CMapReaderFactory
and
StandardFontDataFactory
options are ignored.
The default value is
true
in web environments and
false
in Node.js.
(boolean?)
: Reject certain promises, e.g.
getOperatorList
,
getTextContent
, and
RenderTask
, when the associated
PDF data cannot be successfully parsed, instead of attempting to recover
whatever possible of the data. The default value is
false
.
(number?)
: The maximum allowed image size in total
pixels, i.e. width * height. Images above this value will not be rendered.
Use -1 for no limit, which is also the default value.
(boolean?)
: Determines if we can evaluate strings
as JavaScript. Primarily used to improve performance of PDF functions.
The default value is
true
.
(boolean?)
: Determines if we can use
OffscreenCanvas
in the worker. Primarily used to improve performance of
image conversion/rendering.
The default value is
true
in web environments and
false
in Node.js.
(number?)
: The integer value is used to
know when an image must be resized (uses
OffscreenCanvas
in the worker).
If it's -1 then a possibly slow algorithm is used to guess the max value.
(boolean?)
: By default fonts are converted to
OpenType fonts and loaded via the Font Loading API or
@font-face
rules.
If disabled, fonts will be rendered using a built-in font renderer that
constructs the glyphs with primitive path commands.
The default value is
false
in web environments and
true
in Node.js.
(boolean?)
: Include additional properties,
which are unused during rendering of PDF documents, when exporting the
parsed font data from the worker-thread. This may be useful for debugging
purposes (and backwards compatibility), but note that it will lead to
increased memory usage. The default value is
false
.
(Document?)
: Specify an explicit document
context to create elements with and to load resources, such as fonts,
into. Defaults to the current document.
(boolean?)
: Disable range request loading of PDF
files. When enabled, and if the server supports partial content requests,
then the PDF will be fetched in chunks. The default value is
false
.
(boolean?)
: Disable streaming of PDF file data.
By default PDF.js attempts to load PDF files in chunks. The default value
is
false
.
(boolean?)
: Disable pre-fetching of PDF file
data. When range requests are enabled PDF.js will automatically keep
fetching more data even if it isn't needed to display the current page.
The default value is
false
.
NOTE: It is also necessary to disable streaming, see above, in order for disabling of pre-fetching to work correctly.
(boolean?)
: Enables special hooks for debugging PDF.js
(see
web/debugger.js
). The default value is
false
.
(Object?)
: The factory that will be used when
creating canvases. The default value is {DOMCanvasFactory}.
(Object?)
: The factory that will be used to
create SVG filters when rendering some images on the main canvas.
The default value is {DOMFilterFactory}.