Skip to content

Commit 2709dce

Browse files
committed
Add nameddest attribute
1 parent 1b6fbb8 commit 2709dce

File tree

6 files changed

+38
-18
lines changed

6 files changed

+38
-18
lines changed

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ The simplest integration of [PDF.js default viewer](https://mozilla.github.io/pd
77
The package provides a custom element, based on PDF.js [viewer options](https://github.com/mozilla/pdf.js/wiki/Viewer-options) and [URL parameters](https://github.com/mozilla/pdf.js/wiki/Debugging-PDF.js#url-parameters) API.
88
Supported in all [major browsers](https://caniuse.com/custom-elementsv1), and works with most [JS frameworks](https://custom-elements-everywhere.com/).
99

10-
See [examples](https://alekswebnet.github.io/pdfjs-viewer-element/#demo) of usage in Vue, React, Svelte, or simple HTML pages.
10+
See [demo pages](https://github.com/alekswebnet/pdfjs-viewer-element/tree/master/demo) for various usecases.
11+
See [live examples](https://alekswebnet.github.io/pdfjs-viewer-element/#demo) of usage with frameworks.
1112

1213
⚠️ `pdfjs-viewer-element` requires PDF.js [prebuilt](http://mozilla.github.io/pdf.js/getting_started/), that includes the generic build of PDF.js and the viewer.
1314

@@ -34,10 +35,12 @@ Then specify the path to the directory with the `viewer-path` property (`/pdfjs`
3435

3536
[Getting started](https://alekswebnet.github.io/pdfjs-viewer-element/)
3637

37-
[API](https://alekswebnet.github.io/pdfjs-viewer-element/#api)
38+
[API playground](https://alekswebnet.github.io/pdfjs-viewer-element/#api)
3839

3940
[Live examples](https://alekswebnet.github.io/pdfjs-viewer-element/#demo)
4041

42+
[Demo pages](https://github.com/alekswebnet/pdfjs-viewer-element/tree/master/demo)
43+
4144
## Install
4245

4346
Using module bundlers:
@@ -79,6 +82,8 @@ Using browser:
7982

8083
`page` - Page number
8184

85+
`nameddest` - Go to a named destination
86+
8287
`search` - Search text
8388

8489
`phrase` - Search by phrase

demo/go-to-nameddest.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>pdfjs-viewer-element | Disable font face demo</title>
7+
<script type="module" src="./../../dist/pdfjs-viewer-element.js"></script>
8+
<style>
9+
body {
10+
margin: 0;
11+
padding: 0;
12+
}
13+
</style>
14+
</head>
15+
16+
<body>
17+
<pdfjs-viewer-element
18+
src="/public/sample-pdf-report.pdf"
19+
viewer-path="/public/pdfjs-4.0.379-dist"
20+
nameddest="chart"
21+
style="height: 100dvh">
22+
</pdfjs-viewer-element>
23+
</body>
24+
</html>

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "pdfjs-viewer-element",
3-
"version": "2.6.2",
3+
"version": "2.6.3",
44
"license": "MIT",
55
"author": {
66
"name": "Oleksandr Shevchuk",

src/pdfjs-viewer-element.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ const DEFAULTS = {
1414
textLayer: '',
1515
viewerCssTheme: 'AUTOMATIC',
1616
viewerExtraStyles: '',
17-
viewerExtraStylesUrls: ''
17+
viewerExtraStylesUrls: '',
18+
nameddest: ''
1819
} as const
1920

2021
export const ViewerCssTheme = {
@@ -40,7 +41,7 @@ export class PdfjsViewerElement extends HTMLElement {
4041
public iframe!: PdfjsViewerElementIframe
4142

4243
static get observedAttributes() {
43-
return ['src', 'viewer-path', 'locale', 'page', 'search', 'phrase', 'zoom', 'pagemode', 'text-layer', 'viewer-css-theme', 'viewer-extra-styles', 'viewer-extra-styles-urls']
44+
return ['src', 'viewer-path', 'locale', 'page', 'search', 'phrase', 'zoom', 'pagemode', 'text-layer', 'viewer-css-theme', 'viewer-extra-styles', 'viewer-extra-styles-urls', 'nameddest']
4445
}
4546

4647
connectedCallback() {
@@ -83,8 +84,9 @@ export class PdfjsViewerElement extends HTMLElement {
8384
const textLayer = this.getAttribute('text-layer') || DEFAULTS.textLayer
8485
const viewerCssTheme = this.getAttribute('viewer-css-theme') || DEFAULTS.viewerCssTheme
8586
const viewerExtraStyles = Boolean(this.getAttribute('viewer-extra-styles') || DEFAULTS.viewerExtraStyles)
87+
const nameddest = this.getAttribute('nameddest') || DEFAULTS.nameddest
8688

87-
return `${viewerPath}${DEFAULTS.viewerEntry}?file=${encodeURIComponent(src)}#page=${page}&zoom=${zoom}&pagemode=${pagemode}&search=${search}&phrase=${phrase}&textLayer=${textLayer}${locale ? '&locale='+locale : ''}&viewerCssTheme=${viewerCssTheme}&viewerExtraStyles=${viewerExtraStyles}`
89+
return `${viewerPath}${DEFAULTS.viewerEntry}?file=${encodeURIComponent(src)}#page=${page}&zoom=${zoom}&pagemode=${pagemode}&search=${search}&phrase=${phrase}&textLayer=${textLayer}${locale ? '&locale='+locale : ''}&viewerCssTheme=${viewerCssTheme}&viewerExtraStyles=${viewerExtraStyles}&nameddest=${nameddest}`
8890
}
8991

9092
private mountViewer(src: string) {
@@ -183,12 +185,6 @@ export interface PdfjsViewerElementIframe extends HTMLIFrameElement {
183185
contentWindow: PdfjsViewerElementIframeWindow
184186
}
185187

186-
export interface PdfjsViewerLoadedEvent extends Event {
187-
detail: {
188-
source: PdfjsViewerElementIframeWindow
189-
}
190-
}
191-
192188
export default PdfjsViewerElement
193189

194190
if (!window.customElements.get('pdfjs-viewer-element')) {

types/pdfjs-viewer-element.d.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,4 @@ export interface PdfjsViewerElementIframeWindow extends Window {
4343
export interface PdfjsViewerElementIframe extends HTMLIFrameElement {
4444
contentWindow: PdfjsViewerElementIframeWindow;
4545
}
46-
export interface PdfjsViewerLoadedEvent extends Event {
47-
detail: {
48-
source: PdfjsViewerElementIframeWindow;
49-
};
50-
}
5146
export default PdfjsViewerElement;

vite.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export default defineConfig({
2020
},
2121
},
2222
optimizeDeps: {
23-
// Prevent resolve external deps of the prebuild v.4.0.189
23+
// Prevent resolve external deps of the prebuild from v.4.0.189
2424
exclude: ['canvas', 'path2d-polyfill']
2525
}
2626
})

0 commit comments

Comments
 (0)