From dae5e12d7d1b0a2db0154ded244699f88019db93 Mon Sep 17 00:00:00 2001 From: SaravanaPriya31 Date: Mon, 25 Sep 2023 10:02:51 +0530 Subject: [PATCH 01/10] 848600 : GitHub samples updated to the standalone PDF Viewer --- .../Flatten annotations/src/index.js | 3 ++- .../Setting Annotation Author Name/src/index.js | 3 ++- .../Controllers/PdfViewerController.cs | 2 +- .../Import and export annotations/src/index.js | 2 +- Custom Toolbar/src/App.tsx | 13 ++++++++++--- Getting Started/src/index.js | 8 +++++++- How to/Get hash id from storage/src/index.js | 5 +++-- .../ReactClient/src/index.js | 4 ++-- Toolbar/How to hide toolbar/package.json | 2 +- Toolbar/How to hide toolbar/src/index.js | 15 ++++----------- 10 files changed, 33 insertions(+), 24 deletions(-) diff --git a/Annotations/Flatten all annotations/Flatten annotations/src/index.js b/Annotations/Flatten all annotations/Flatten annotations/src/index.js index 2242d61..c87d1c0 100644 --- a/Annotations/Flatten all annotations/Flatten annotations/src/index.js +++ b/Annotations/Flatten all annotations/Flatten annotations/src/index.js @@ -10,7 +10,8 @@ render() { {/*Inject required dependencies*/} diff --git a/Annotations/Flatten annotation specific to user/Setting Annotation Author Name/src/index.js b/Annotations/Flatten annotation specific to user/Setting Annotation Author Name/src/index.js index 4e08bb2..8a0523c 100644 --- a/Annotations/Flatten annotation specific to user/Setting Annotation Author Name/src/index.js +++ b/Annotations/Flatten annotation specific to user/Setting Annotation Author Name/src/index.js @@ -13,7 +13,8 @@ render() { }} id="container" documentPath="PDF Succinctly.pdf" - serviceUrl="https://localhost:44399/pdfviewer" + //To set up the **server-backed PDF Viewer**, add the following 'serviceUrl'. + //serviceUrl="https://localhost:44399/pdfviewer" documentLoad={this.documentLoaded} style={{ height: '640px' }} > diff --git a/Annotations/Flatten annotation specific to user/Web Service/Controllers/PdfViewerController.cs b/Annotations/Flatten annotation specific to user/Web Service/Controllers/PdfViewerController.cs index 1450292..14c5bc6 100644 --- a/Annotations/Flatten annotation specific to user/Web Service/Controllers/PdfViewerController.cs +++ b/Annotations/Flatten annotation specific to user/Web Service/Controllers/PdfViewerController.cs @@ -297,7 +297,7 @@ public string PerformOCR(Syncfusion.Drawing.RectangleF bounds, int PageIndex, st PdfRenderer lDoc = new PdfRenderer(); var document = _hostingEnvironment.ContentRootPath; - lDoc.Load(@"Data\PDF_Succinctly.pdf"); + lDoc.Load(@"Data\https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf"); processor.Settings.Language = Languages.English; int DPI = 300; System.Drawing.Bitmap image = lDoc.ExportAsImage(PageIndex, DPI, DPI); diff --git a/Annotations/Import and export annotations/src/index.js b/Annotations/Import and export annotations/src/index.js index 23e6a76..36c3f82 100644 --- a/Annotations/Import and export annotations/src/index.js +++ b/Annotations/Import and export annotations/src/index.js @@ -103,7 +103,7 @@ export class App extends React.Component { {/* Render the PDF Viewer */} - { viewer = scope; }} serviceUrl='https://localhost:44347/pdfviewer' - documentPath="PDF_Succinctly.pdf" style={{height:'640px'}} - enableToolbar={false} documentLoad={onDocumentLoaded} pageChange={onPageChanged}> + { viewer = scope; }} + //To set up the **server-backed PDF Viewer**, add the following 'serviceUrl'. + serviceUrl='https://localhost:44347/pdfviewer' + documentPath="https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf" + style={{height:'640px'}} + enableToolbar={false} + documentLoad={onDocumentLoaded} + pageChange={onPageChanged}> +
- + +
diff --git a/How to/Get hash id from storage/src/index.js b/How to/Get hash id from storage/src/index.js index b470fcc..dd43c88 100644 --- a/How to/Get hash id from storage/src/index.js +++ b/How to/Get hash id from storage/src/index.js @@ -23,8 +23,9 @@ export class App extends React.Component{ {/* Render the PDF Viewer */} {/* Inject the required services */} diff --git a/Save and Load/Save PDF file to server/ReactClient/src/index.js b/Save and Load/Save PDF file to server/ReactClient/src/index.js index 1f52e72..3c3f867 100644 --- a/Save and Load/Save PDF file to server/ReactClient/src/index.js +++ b/Save and Load/Save PDF file to server/ReactClient/src/index.js @@ -8,8 +8,8 @@ return (
diff --git a/Toolbar/How to hide toolbar/package.json b/Toolbar/How to hide toolbar/package.json index d835ce7..7b9178d 100644 --- a/Toolbar/How to hide toolbar/package.json +++ b/Toolbar/How to hide toolbar/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@syncfusion/ej2-react-pdfviewer": "^20.2.50", + "@syncfusion/ej2-react-pdfviewer": "^23.1.36", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/Toolbar/How to hide toolbar/src/index.js b/Toolbar/How to hide toolbar/src/index.js index e46fb6d..c9c96c0 100644 --- a/Toolbar/How to hide toolbar/src/index.js +++ b/Toolbar/How to hide toolbar/src/index.js @@ -1,15 +1,8 @@ import * as React from 'react'; import { createRoot } from 'react-dom/client'; import { PdfViewerComponent, Toolbar, Magnification, Navigation, LinkAnnotation, BookmarkView, ThumbnailView, Print, TextSelection, Annotation, TextSearch, FormFields, FormDesigner, Inject } from '@syncfusion/ej2-react-pdfviewer'; -let thumbnail = []; + export class App extends React.Component { - //Event triggers on successful AJAX request - fireAjaxRequestSuccess(event) { - if (event.action === 'Load') { - thumbnail.push(event.data); - console.log(thumbnail); - } - } render() { return (
@@ -17,10 +10,10 @@ export class App extends React.Component { {/* Render the PDF Viewer */} From 49854e3e4ac9eb7c852ae5202f7c5b9f3b2b5ec5 Mon Sep 17 00:00:00 2001 From: SaravanaPriya31 Date: Tue, 26 Sep 2023 12:56:34 +0530 Subject: [PATCH 02/10] commit --- Annotations/Import and export annotations/src/index.js | 2 +- Getting Started/src/index.js | 2 +- How to/Get hash id from storage/src/index.js | 2 +- Toolbar/How to hide toolbar/src/index.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Annotations/Import and export annotations/src/index.js b/Annotations/Import and export annotations/src/index.js index 36c3f82..5cde610 100644 --- a/Annotations/Import and export annotations/src/index.js +++ b/Annotations/Import and export annotations/src/index.js @@ -105,7 +105,7 @@ export class App extends React.Component { id="container" documentPath="https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf" documentLoad={this.documentLoad} - serviceUrl="https://ej2services.syncfusion.com/production/web-services/api/pdfviewer" + serviceUrl="https://services.syncfusion.com/react/production/api/pdfviewer" style={{ height: '640px' }} > {/* Inject the required services */} diff --git a/Getting Started/src/index.js b/Getting Started/src/index.js index 601eaa9..ff7fee7 100644 --- a/Getting Started/src/index.js +++ b/Getting Started/src/index.js @@ -9,7 +9,7 @@ return (
id="container" documentPath="https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf" //To set up the **server-backed PDF Viewer**, add the following 'serviceUrl'. - // serviceUrl="https://ej2services.syncfusion.com/production/web-services/api/pdfviewer" + // serviceUrl="https://services.syncfusion.com/react/production/api/pdfviewer" style={{ 'height': '640px' }}> diff --git a/How to/Get hash id from storage/src/index.js b/How to/Get hash id from storage/src/index.js index dd43c88..6322a4b 100644 --- a/How to/Get hash id from storage/src/index.js +++ b/How to/Get hash id from storage/src/index.js @@ -25,7 +25,7 @@ export class App extends React.Component{ id="container" documentPath="https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf" //To set up the **server-backed PDF Viewer**, add the following 'serviceUrl'. - // serviceUrl="https://ej2services.syncfusion.com/production/web-services/api/pdfviewer" + // serviceUrl="https://services.syncfusion.com/react/production/api/pdfviewer" style={{ height: '640px' }} > {/* Inject the required services */} diff --git a/Toolbar/How to hide toolbar/src/index.js b/Toolbar/How to hide toolbar/src/index.js index c9c96c0..b404de5 100644 --- a/Toolbar/How to hide toolbar/src/index.js +++ b/Toolbar/How to hide toolbar/src/index.js @@ -13,7 +13,7 @@ export class App extends React.Component { documentPath="https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf" enableToolbar ={false} //To set up the **server-backed PDF Viewer**, add the following 'serviceUrl'. - // serviceUrl="https://ej2services.syncfusion.com/production/web-services/api/pdfviewer" + // serviceUrl="https://services.syncfusion.com/react/production/api/pdfviewer" style={{ height: '640px' } } > From 8eb173fb8f393b7818d2b22338dd7a5668ecaae2 Mon Sep 17 00:00:00 2001 From: SaravanaPriya31 Date: Tue, 28 Nov 2023 10:23:59 +0530 Subject: [PATCH 03/10] commit --- .../package.json | 2 +- .../src/index.js | 4 +- Custom Toolbar/README.md | 2 +- Custom Toolbar/package.json | 18 +- Custom Toolbar/public/index.html | 58 +- Custom Toolbar/src/App.css | 241 ------ Custom Toolbar/src/App.test.tsx | 9 - Custom Toolbar/src/App.tsx | 776 ------------------ Custom Toolbar/src/index.css | 114 ++- Custom Toolbar/src/index.js | 154 ++++ Custom Toolbar/src/index.tsx | 21 - Custom Toolbar/src/react-app-env.d.ts | 1 - ...{reportWebVitals.ts => reportWebVitals.js} | 28 +- .../src/{setupTests.ts => setupTests.js} | 10 +- Getting Started - Server-back/.gitignore | 23 + Getting Started - Server-back/README.md | 70 ++ Getting Started - Server-back/package.json | 39 + .../public/favicon.ico | Bin .../public/index.html | 15 + .../public/logo192.png | Bin .../public/logo512.png | Bin .../public/manifest.json | 25 + .../public/robots.txt | 3 + Getting Started - Server-back/src/index.css | 8 + Getting Started - Server-back/src/index.js | 21 + .../src/logo.svg | 0 .../src/reportWebVitals.js | 13 + .../src/setupTests.js | 5 + .../.gitignore | 0 .../README.md | 0 .../package.json | 0 .../public/favicon.ico | Bin 0 -> 3870 bytes .../public/index.html | 0 .../public/logo192.png | Bin 0 -> 5347 bytes .../public/logo512.png | Bin 0 -> 9664 bytes .../public/manifest.json | 0 .../public/robots.txt | 0 .../src/index.css | 0 .../src/index.js | 3 +- Getting Started - standalone/src/logo.svg | 1 + .../src/reportWebVitals.js | 0 .../src/setupTests.js | 0 .../ReactClient/src/index.js | 2 +- 43 files changed, 532 insertions(+), 1134 deletions(-) delete mode 100644 Custom Toolbar/src/App.css delete mode 100644 Custom Toolbar/src/App.test.tsx delete mode 100644 Custom Toolbar/src/App.tsx create mode 100644 Custom Toolbar/src/index.js delete mode 100644 Custom Toolbar/src/index.tsx delete mode 100644 Custom Toolbar/src/react-app-env.d.ts rename Custom Toolbar/src/{reportWebVitals.ts => reportWebVitals.js} (75%) rename Custom Toolbar/src/{setupTests.ts => setupTests.js} (97%) create mode 100644 Getting Started - Server-back/.gitignore create mode 100644 Getting Started - Server-back/README.md create mode 100644 Getting Started - Server-back/package.json rename {Getting Started => Getting Started - Server-back}/public/favicon.ico (100%) create mode 100644 Getting Started - Server-back/public/index.html rename {Getting Started => Getting Started - Server-back}/public/logo192.png (100%) rename {Getting Started => Getting Started - Server-back}/public/logo512.png (100%) create mode 100644 Getting Started - Server-back/public/manifest.json create mode 100644 Getting Started - Server-back/public/robots.txt create mode 100644 Getting Started - Server-back/src/index.css create mode 100644 Getting Started - Server-back/src/index.js rename {Getting Started => Getting Started - Server-back}/src/logo.svg (100%) create mode 100644 Getting Started - Server-back/src/reportWebVitals.js create mode 100644 Getting Started - Server-back/src/setupTests.js rename {Getting Started => Getting Started - standalone}/.gitignore (100%) rename {Getting Started => Getting Started - standalone}/README.md (100%) rename {Getting Started => Getting Started - standalone}/package.json (100%) create mode 100644 Getting Started - standalone/public/favicon.ico rename {Getting Started => Getting Started - standalone}/public/index.html (100%) create mode 100644 Getting Started - standalone/public/logo192.png create mode 100644 Getting Started - standalone/public/logo512.png rename {Getting Started => Getting Started - standalone}/public/manifest.json (100%) rename {Getting Started => Getting Started - standalone}/public/robots.txt (100%) rename {Getting Started => Getting Started - standalone}/src/index.css (100%) rename {Getting Started => Getting Started - standalone}/src/index.js (83%) create mode 100644 Getting Started - standalone/src/logo.svg rename {Getting Started => Getting Started - standalone}/src/reportWebVitals.js (100%) rename {Getting Started => Getting Started - standalone}/src/setupTests.js (100%) diff --git a/Annotations/Import and export annotations/package.json b/Annotations/Import and export annotations/package.json index 1239cdb..39e07bb 100644 --- a/Annotations/Import and export annotations/package.json +++ b/Annotations/Import and export annotations/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@syncfusion/ej2-react-pdfviewer": "^20.2.50", + "@syncfusion/ej2-react-pdfviewer": "*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/Annotations/Import and export annotations/src/index.js b/Annotations/Import and export annotations/src/index.js index 5cde610..3f0c0eb 100644 --- a/Annotations/Import and export annotations/src/index.js +++ b/Annotations/Import and export annotations/src/index.js @@ -105,7 +105,9 @@ export class App extends React.Component { id="container" documentPath="https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf" documentLoad={this.documentLoad} - serviceUrl="https://services.syncfusion.com/react/production/api/pdfviewer" + //To set up the **server-backed PDF Viewer**, add the following 'serviceUrl'. + //serviceUrl="https://localhost:44399/pdfviewer" + resourceUrl="https://cdn.syncfusion.com/ej2/23.1.43/dist/ej2-pdfviewer-lib" style={{ height: '640px' }} > {/* Inject the required services */} diff --git a/Custom Toolbar/README.md b/Custom Toolbar/README.md index 64ba69a..58beeac 100644 --- a/Custom Toolbar/README.md +++ b/Custom Toolbar/README.md @@ -1,4 +1,4 @@ -# Custom Toolbar with Create React App +# Getting Started with Create React App This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). diff --git a/Custom Toolbar/package.json b/Custom Toolbar/package.json index 0a380cc..ff5e4c4 100644 --- a/Custom Toolbar/package.json +++ b/Custom Toolbar/package.json @@ -1,21 +1,25 @@ { - "name": "mycustomtoolbarapp", + "name": "toolbar", "version": "0.1.0", "private": true, "dependencies": { - "@syncfusion/ej2-react-navigations": "*", + "@syncfusion/ej2-base": "*", + "@syncfusion/ej2-pdfviewer": "*", + "@syncfusion/ej2-react-base": "*", "@syncfusion/ej2-react-pdfviewer": "*", + "@syncfusion/ej2-navigations": "*", + "@syncfusion/ej2-react-navigations": "*", + "@syncfusion/ej2-buttons": "*", + "@syncfusion/ej2-react-buttons": "*", + "@syncfusion/ej2-lists": "*", + "@syncfusion/ej2-documenteditor": "*", + "@syncfusion/ej2-splitbuttons": "*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", - "@types/jest": "^27.5.2", - "@types/node": "^16.18.37", - "@types/react": "^18.2.14", - "@types/react-dom": "^18.2.6", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", - "typescript": "^4.9.5", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/Custom Toolbar/public/index.html b/Custom Toolbar/public/index.html index 2a2ab78..7c1df22 100644 --- a/Custom Toolbar/public/index.html +++ b/Custom Toolbar/public/index.html @@ -1,45 +1,23 @@ - - + + + Syncfusion React Sample - - + + + + + - - - - - - - - React App - - - -
- - + + +
+ diff --git a/Custom Toolbar/src/App.css b/Custom Toolbar/src/App.css deleted file mode 100644 index 9149d7c..0000000 --- a/Custom Toolbar/src/App.css +++ /dev/null @@ -1,241 +0,0 @@ -@font-face { - font-family: "e-pv-icons"; - font-style: normal; - font-weight: normal; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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Y3VzdG9tLXRvb2xiYXJjdXN0b20tdG9vbGJhclZlcnNpb24gMS4wY3VzdG9tLXRvb2xiYXJGb250IGdlbmVyYXRlZCB1c2luZyBTeW5jZnVzaW9uIE1ldHJvIFN0dWRpb3d3dy5zeW5jZnVzaW9uLmNvbQAgAGMAdQBzAHQAbwBtAC0AdABvAG8AbABiAGEAcgBSAGUAZwB1AGwAYQByAGMAdQBzAHQAbwBtAC0AdABvAG8AbABiAGEAcgBjAHUAcwB0AG8AbQAtAHQAbwBvAGwAYgBhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAGMAdQBzAHQAbwBtAC0AdABvAG8AbABiAGEAcgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIAB1AHMAaQBuAGcAIABTAHkAbgBjAGYAdQBzAGkAbwBuACAATQBlAHQAcgBvACAAUwB0AHUAZABpAG8AdwB3AHcALgBzAHkAbgBjAGYAdQBzAGkAbwBuAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwAIVG9wLWljb24LZG93bi1hcnJvdzIKUFZfWm9vbW91dAlQVl9ab29taW4LUFZfRG93bmxvYWQLUFZfQm9va21hcmsJUFZfU2VhcmNoCFBWX1ByaW50C1BWX1ByZXZpb3VzB1BWX05leHQIUFZfQ2xvc2UMUFZfRml0VG9QYWdlB1BWX09wZW4AAA==) format('truetype'); -} - -.e-pv-file-open-document-icon::before { - font-family: 'e-pv-icons'; - content: '\ed13'; -} - -.e-pv-zoom-out-sample::before { - font-family: 'e-pv-icons'; - content: '\ed03'; -} - -.e-pv-zoom-in-icon::before { - font-family: 'e-pv-icons'; - content: '\ed04'; -} - -.e-pv-text-select-tool-icon::before { - font-family: 'e-icons'; - content: "\ec1d"; - -} - -.e-pv-pan-tool-icon::before { - font-family: 'e-icons'; - content: "\ec1a"; -} - -.e-pv-text-search-icon::before { - content: "\ec0d"; - font-family: "e-icons"; -} - -.e-pv-search-bar { - height: 104px; - width: 348px; -} - -.e-pv-search-icon::before { - content: "\ec0d"; - font-family: "e-icons"; -} -.e-pv-prev-search-icon::before { - content: "\ec06"; - font-family: "e-icons"; -} - -.e-pv-next-search-icon::before { - content: "\ec07"; - font-family: "e-icons"; -} - -.e-pv-search-input { - height: 31px; - width: 244px; -} - -.e-pv-search-close::before { - content: "\ec0f"; - font-family: "e-icons"; -} - -.textsearchInput { - height: 35px; - width: 230px; - background: none; - border: none; - border-bottom: 1px solid #000; -} - -.textsearchInput:focus { - outline: none; - border-bottom: 1.5px solid #e3165b; -} - -.matchCaseInput[type="checkbox"] -{ - width: 20px; - height: 20px; - position: absolute; -} - -.matchCaseInput[type="checkbox"]:checked:after { - background-color: #e3165b; - border-color: rgba(0,0,0,0); - color: #fff; -} - -.matchCaseSpan { - position: absolute; - margin-left: 30px; - margin-top: 3px; - font-weight: normal; -} - -.e-pv-download-document-icon::before { - font-family: 'e-pv-icons'; - content: '\ed05'; -} - -.e-pv-print-document-icon::before { - content: '\ed08'; - font-family: 'e-pv-icons'; -} - -.customtoolbar.e-toolbar { - background-color: #3f51b5; -} -.customtoolbar.e-toolbar .e-toolbar-items{ - background-color: #3f51b5; -} - -.e-pv-annotation-icon::before { - content: "\ec26"; - font-family: "e-icons"; -} - -.e-pv-highlight-icon { - content: "\ec15"; - font-family: "e-icons"; -} -.e-pv-underline-icon { - content: "\ec17"; - font-family: "e-icons"; -} -.e-pv-strikethrough-icon{ - content: "\ec18"; - font-family: "e-icons"; -} - -.e-pv-shape-line-icon::before { - content: "\e668"; - font-family: "e-icons"; -} -.e-pv-shape-arrow-icon::before { - content: "\e669"; - font-family: "e-icons"; -} - -.e-pv-shape-rectangle-icon::before { - content: "\e670"; - font-family: "e-icons"; -} - -.e-pv-shape-circle-icon::before { - content: "\e671"; - font-family: "e-icons"; -} - -.e-pv-shape-pentagon-icon::before { - content: "\e672"; - font-family: "e-icons"; -} - -.e-pv-calibrate-distance-icon::before { - content: "\e673"; - font-family: "e-icons"; -} - -.e-pv-calibrate-perimeter-icon::before { - content: "\e674"; - font-family: "e-icons"; -} - -.e-pv-calibrate-area-icon::before { - content: "\e675"; - font-family: "e-icons"; -} -.e-pv-calibrate-radius-icon::before { - content: "\e676"; - font-family: "e-icons"; -} -.e-pv-calibrate-volume-icon::before { - content: "\e677"; - font-family: "e-icons"; -} - -.e-pv-freetext-icon::before { - content: "\ec0e"; - font-family: "e-icons"; -} - -.e-pv-handwritten-icon::before { - content: "\e737"; - font-family: "e-icons"; -} - -.e-dropdown-popup { - z-index: 3; -} - -.e-btn{ - border: 1px solid; - border-color: #e3165b; - color: #e3165b; -} - -.e-pv-inkannotation-icon::before { - content: "\ec13"; - font-family: "e-icons"; -} - -.e-pv-stamp-icon::before { - font-family: "e-icons"; - content: "\ec28"; -} - -.e-pv-formdesigner-icon::before { - content: "\e90c"; - font-family: "e-icons"; -} - -.e-pv-textbox-icon::before { - content: "\e89f"; - font-family: "e-icons"; -} -.e-pv-password-icon::before { - content: "\e91a"; - font-family: "e-icons"; -} -.e-pv-checkbox-icon::before { - content: "\e90b"; - font-family: "e-icons"; -} -.e-pv-radiobutton-icon::before { - content: "\e90f"; - font-family: "e-icons"; -} -.e-pv-dropdown-icon::before { - content: "\e90e"; - font-family: "e-icons"; -} -.e-pv-listbox-icon::before { - content: "\e89e"; - font-family: "e-icons"; -} \ No newline at end of file diff --git a/Custom Toolbar/src/App.test.tsx b/Custom Toolbar/src/App.test.tsx deleted file mode 100644 index 2a68616..0000000 --- a/Custom Toolbar/src/App.test.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import App from './App'; - -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); diff --git a/Custom Toolbar/src/App.tsx b/Custom Toolbar/src/App.tsx deleted file mode 100644 index 50c51d6..0000000 --- a/Custom Toolbar/src/App.tsx +++ /dev/null @@ -1,776 +0,0 @@ -import React from 'react'; -import './App.css'; -import {PdfViewerComponent, Navigation, Magnification, TextSelection, TextSearch, Print, Annotation, DynamicStampItem, SignStampItem, StandardBusinessStampItem, FormDesigner, FormFields} from '@syncfusion/ej2-react-pdfviewer'; -import {ToolbarComponent, ItemsDirective, ItemDirective, ClickEventArgs, MenuComponent} from '@syncfusion/ej2-react-navigations'; -PdfViewerComponent.Inject(Navigation, Magnification, TextSelection, TextSearch, Print, Annotation, FormDesigner, FormFields); - -function App() { - let viewer: PdfViewerComponent ; - let matchCase: boolean ; - const data = [ - { - iconCss: 'e-pv-stamp-icon', - items: [ - { - text: 'Dynamic', - items: [ - { text: 'Revised', id: 'Dynamic' }, - { text: 'Reviewed', id: 'Dynamic' }, - { text: 'Received', id: 'Dynamic' }, - { text: 'Confidential', id: 'Dynamic' }, - { text: 'Approved', id: 'Dynamic' }, - { text: 'Not Approved', id: 'Dynamic' }, - ], - }, - { - text: 'Sign Here', - items: [ - { text: 'Witness' , id: 'Sign Here' }, - { text: 'Initial Here', id: 'Sign Here' }, - { text: 'Sign Here', id: 'Sign Here' }, - { text: 'Accepted', id: 'Sign Here'}, - { text: 'Rejected', id: 'Sign Here' }], - }, - { - text: 'Standard Business', - items: [ - { text: 'Approved' , id: 'Standard Business' }, - { text: 'Not Approved', id: 'Standard Business' }, - { text: 'Draft', id: 'Standard Business' }, - { text: 'Final', id: 'Standard Business'}, - { text: 'Completed', id: 'Standard Business' }, - { text: 'Confidential' , id: 'Standard Business' }, - { text: 'For Public Release', id: 'Standard Business' }, - { text: 'Not For Public Release', id: 'Standard Business' }, - { text: 'For Comment', id: 'Standard Business'}, - { text: 'Void', id: 'Standard Business' }, - { text: 'Preliminary Results' , id: 'Standard Business' }, - { text: 'Information Only', id: 'Standard Business' } - ], - }, - ], - }, -]; - - function currentPageNumberTemplate() { - return (
); - } - - function onChangeCurrentPageNumber(e: any) { - if(e.key === 'Enter') { - viewer.navigation.goToPage(parseInt(e.target.value)); - } - } - - function TotalPageNumbertemplate() { - return (
of 0
); - } - - function zoomFactorTemplate() { - return( -
- -
) - } - - function onZoomChanged(e: any) { - let zoomFactor : any = e.target.value; - if(zoomFactor === 'Fit Page') - viewer.magnification.fitToPage(); - else if(zoomFactor === 'Fit Width') - viewer.magnification.fitToWidth(); - else - viewer.magnification.zoomTo(parseFloat(zoomFactor)); - - } - - function fileNameTemplate() { - return (
); - } - - function stampTemplate() { - return () - } - - function onItemSelect(args: any) { - var stampId = args.element.id; - var stampText = args.element.innerText; - if(stampId === 'Dynamic' && stampText != null) { - if(stampText === 'Revised') - { - viewer.annotation.setAnnotationMode('Stamp',DynamicStampItem.Revised); - } - else if(stampText == "Reviewed") - { - viewer.annotation.setAnnotationMode('Stamp', DynamicStampItem.Reviewed); - } - else if(stampText == "Received") - { - viewer.annotation.setAnnotationMode('Stamp', DynamicStampItem.Received); - } - else if(stampText == "Confidential") - { - viewer.annotation.setAnnotationMode('Stamp', DynamicStampItem.Confidential); - } - else if(stampText == "Approved") - { - viewer.annotation.setAnnotationMode('Stamp', DynamicStampItem.Approved); - } - else if(stampText == "NotApproved") - { - viewer.annotation.setAnnotationMode('Stamp', DynamicStampItem.NotApproved); - } - } - if(stampId === 'Sign Here' && stampText != null) { - if(stampText === 'Witness') - { - viewer.annotation.setAnnotationMode('Stamp', undefined , SignStampItem.Witness); - } - else if(stampText == "Initial Here") - { - viewer.annotation.setAnnotationMode('Stamp', undefined, SignStampItem.InitialHere); - } - else if(stampText == "Sign Here") - { - viewer.annotation.setAnnotationMode('Stamp', undefined, SignStampItem.SignHere); - } - else if(stampText == "Accepted") - { - viewer.annotation.setAnnotationMode('Stamp', undefined, SignStampItem.Accepted); - } - else if(stampText == "Rejected") - { - viewer.annotation.setAnnotationMode('Stamp', undefined, SignStampItem.Rejected); - } - } - if(stampId === 'Standard Business' && stampText != null) { - if(stampText === 'Approved') - { - viewer.annotation.setAnnotationMode('Stamp', undefined, undefined, StandardBusinessStampItem.Approved); - } - else if(stampText == "Not Approved") - { - viewer.annotation.setAnnotationMode('Stamp', undefined,undefined, StandardBusinessStampItem.NotApproved); - } - else if(stampText == "Draft") - { - viewer.annotation.setAnnotationMode('Stamp', undefined,undefined, StandardBusinessStampItem.Draft); - } - else if(stampText == "Final") - { - viewer.annotation.setAnnotationMode('Stamp', undefined,undefined, StandardBusinessStampItem.Final); - } - else if(stampText == "Completed") - { - viewer.annotation.setAnnotationMode('Stamp', undefined,undefined, StandardBusinessStampItem.Completed); - } - else if(stampText == "Confidential") - { - viewer.annotation.setAnnotationMode('Stamp', undefined,undefined, StandardBusinessStampItem.Confidential); - } - else if(stampText == "For Public Release") - { - viewer.annotation.setAnnotationMode('Stamp', undefined,undefined, StandardBusinessStampItem.ForPublicRelease); - } - else if(stampText == "Not For Public Release") - { - viewer.annotation.setAnnotationMode('Stamp', undefined,undefined, StandardBusinessStampItem.NotForPublicRelease); - } - else if(stampText == "For Comment") - { - viewer.annotation.setAnnotationMode('Stamp', undefined,undefined, StandardBusinessStampItem.ForComment); - } - else if(stampText == "Void") - { - viewer.annotation.setAnnotationMode('Stamp', undefined,undefined, StandardBusinessStampItem.Void); - } - else if(stampText == "Preliminary Results") - { - viewer.annotation.setAnnotationMode('Stamp', undefined,undefined, StandardBusinessStampItem.PreliminaryResults); - } - else if(stampText == "Information Only") - { - viewer.annotation.setAnnotationMode('Stamp', undefined,undefined, StandardBusinessStampItem.InformationOnly); - } - } - } - - return ( -
-
- - - - - - - -
-
- - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - -
-
-
-
    -
  • - -
  • -
  • -
  • - -
  • -
-
-
-
- -
- { viewer = scope; }} - //To set up the **server-backed PDF Viewer**, add the following 'serviceUrl'. - serviceUrl='https://localhost:44347/pdfviewer' - documentPath="https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf" - style={{height:'640px'}} - enableToolbar={false} - documentLoad={onDocumentLoaded} - pageChange={onPageChanged}> - - - -
- ); - - function onsignatureCilck(event : any) { - let signatureText = event.target.innerText; - let editAnnotationToolbar : HTMLElement = document.getElementById('editAnnotationToolbar') as HTMLElement; - if(editAnnotationToolbar.style.display === 'block') { - if(signatureText === 'ADD SIGNATURE') { - viewer.annotation.setAnnotationMode('HandWrittenSignature'); - } - else if(signatureText === 'ADD INITIAL') { - viewer.annotation.setAnnotationMode('Initial'); - } - } - - let formFieldToolbar : HTMLElement = document.getElementById('formFieldToolbar') as HTMLElement; - if(formFieldToolbar.style.display === 'block') { - if(signatureText === 'ADD SIGNATURE') { - viewer.formDesignerModule.setFormFieldMode('SignatureField'); - } - else if(signatureText === 'ADD INITIAL') { - viewer.formDesignerModule.setFormFieldMode('InitialField'); - } - } - } - - function onCheckBoxChanged(event : any) { - matchCase = event.target.checked; - } - - function nextTextSearch() { - viewer.textSearchModule.searchNext(); - } - - function previousTextSearch() { - viewer.textSearchModule.searchPrevious(); - } - - function initiateTextSearch() { - let inputElement: HTMLInputElement = document.getElementById('search_input') as HTMLInputElement; - viewer.textSearchModule.searchText(inputElement.value, matchCase); - } - - function onPageChanged() { - let currentPageNumber = viewer.currentPageNumber; - let inputElement: HTMLInputElement = document.getElementById('currentPage') as HTMLInputElement; - inputElement.value = currentPageNumber.toString(); - } - - function onDocumentLoaded() { - let pageCount : number = viewer.pageCount; - let totalPageElement: HTMLInputElement = document.getElementById('totalPage') as HTMLInputElement; - totalPageElement.textContent = 'of ' + pageCount; - - let inputElement: HTMLInputElement = document.getElementById('currentPage') as HTMLInputElement; - inputElement.value = "1"; - - let fileName : string= viewer.fileName; - let fileNameElement: HTMLInputElement = document.getElementById('documentFileName') as HTMLInputElement; - fileNameElement.textContent = fileName; - } - - function clickHandler(args: ClickEventArgs) { - switch (args.item.id){ - case 'file_Open': - { - let fileUpload = document.getElementById('fileUpload') as HTMLInputElement; - fileUpload.click(); - let editAnnotationToolbarElement : HTMLElement = document.getElementById('editAnnotationToolbar') as HTMLElement; - if(editAnnotationToolbarElement.style.display === "block") - editAnnotationToolbarElement.style.display="none"; - - let textSearchToolbarElement : HTMLElement = document.getElementById('textSearchToolbar') as HTMLElement; - if(textSearchToolbarElement.style.display === "block") - textSearchToolbarElement.style.display="none"; - - let signatureToolbarElement : HTMLElement = document.getElementById('SignatureToolbar') as HTMLElement; - if(signatureToolbarElement.style.display === "block") - signatureToolbarElement.style.display="none"; - - let formFieldToolbarElement : HTMLElement= document.getElementById('formFieldToolbar') as HTMLElement; - if(formFieldToolbarElement.style.display === "block") - { - formFieldToolbarElement.style.display="none"; - viewer.designerMode=false; - } - } - break; - case 'zoom_in': - { - viewer.magnification.zoomIn(); - - let editAnnotationToolbarElement : HTMLElement = document.getElementById('editAnnotationToolbar') as HTMLElement; - if(editAnnotationToolbarElement.style.display === "block") - editAnnotationToolbarElement.style.display="none"; - - let textSearchToolbarElement : HTMLElement = document.getElementById('textSearchToolbar') as HTMLElement; - if(textSearchToolbarElement.style.display === "block") - textSearchToolbarElement.style.display="none"; - - let signatureToolbarElement : HTMLElement = document.getElementById('SignatureToolbar') as HTMLElement; - if(signatureToolbarElement.style.display === "block") - signatureToolbarElement.style.display="none"; - - let formFieldToolbarElement : HTMLElement= document.getElementById('formFieldToolbar') as HTMLElement; - if(formFieldToolbarElement.style.display === "block") - { - formFieldToolbarElement.style.display="none"; - viewer.designerMode=false; - } - } - break; - case 'zoom_out': - { - viewer.magnification.zoomOut(); - let editAnnotationToolbarElement : HTMLElement = document.getElementById('editAnnotationToolbar') as HTMLElement; - if(editAnnotationToolbarElement.style.display === "block") - editAnnotationToolbarElement.style.display="none"; - - let textSearchToolbarElement : HTMLElement = document.getElementById('textSearchToolbar') as HTMLElement; - if(textSearchToolbarElement.style.display === "block") - textSearchToolbarElement.style.display="none"; - - let signatureToolbarElement : HTMLElement = document.getElementById('SignatureToolbar') as HTMLElement; - if(signatureToolbarElement.style.display === "block") - signatureToolbarElement.style.display="none"; - - let formFieldToolbarElement : HTMLElement= document.getElementById('formFieldToolbar') as HTMLElement; - if(formFieldToolbarElement.style.display === "block") - { - formFieldToolbarElement.style.display="none"; - viewer.designerMode=false; - } - } - break; - case 'text_selection_tool': - { - viewer.interactionMode = 'TextSelection'; - let editAnnotationToolbarElement : HTMLElement = document.getElementById('editAnnotationToolbar') as HTMLElement; - if(editAnnotationToolbarElement.style.display === "block") - editAnnotationToolbarElement.style.display="none"; - - let textSearchToolbarElement : HTMLElement = document.getElementById('textSearchToolbar') as HTMLElement; - if(textSearchToolbarElement.style.display === "block") - textSearchToolbarElement.style.display="none"; - - let signatureToolbarElement : HTMLElement = document.getElementById('SignatureToolbar') as HTMLElement; - if(signatureToolbarElement.style.display === "block") - signatureToolbarElement.style.display="none"; - - let formFieldToolbarElement : HTMLElement= document.getElementById('formFieldToolbar') as HTMLElement; - if(formFieldToolbarElement.style.display === "block") - { - formFieldToolbarElement.style.display="none"; - viewer.designerMode=false; - } - } - break; - case 'pan_tool': - { - viewer.interactionMode = 'Pan'; - let editAnnotationToolbarElement : HTMLElement = document.getElementById('editAnnotationToolbar') as HTMLElement; - if(editAnnotationToolbarElement.style.display === "block") - editAnnotationToolbarElement.style.display="none"; - - let textSearchToolbarElement : HTMLElement = document.getElementById('textSearchToolbar') as HTMLElement; - if(textSearchToolbarElement.style.display === "block") - textSearchToolbarElement.style.display="none"; - - let signatureToolbarElement : HTMLElement = document.getElementById('SignatureToolbar') as HTMLElement; - if(signatureToolbarElement.style.display === "block") - signatureToolbarElement.style.display="none"; - - let formFieldToolbarElement : HTMLElement= document.getElementById('formFieldToolbar') as HTMLElement; - if(formFieldToolbarElement.style.display === "block") - { - formFieldToolbarElement.style.display="none"; - viewer.designerMode=false; - } - } - break; - case 'find_text': - { - let editAnnotationToolbarElement : HTMLElement = document.getElementById('editAnnotationToolbar') as HTMLElement; - if(editAnnotationToolbarElement.style.display === "block") - editAnnotationToolbarElement.style.display="none"; - - let signatureToolbarElement : HTMLElement = document.getElementById('SignatureToolbar') as HTMLElement; - if(signatureToolbarElement.style.display === "block") - { - signatureToolbarElement.style.display="none"; - } - - let textSearchToolbarElement : HTMLElement= document.getElementById('textSearchToolbar') as HTMLElement; - if(textSearchToolbarElement.style.display === "block") - textSearchToolbarElement.style.display="none"; - else - textSearchToolbarElement.style.display="block"; - - let formFieldToolbarElement : HTMLElement = document.getElementById('formFieldToolbar') as HTMLElement; - if(formFieldToolbarElement.style.display === "block") - { - formFieldToolbarElement.style.display="none"; - viewer.designerMode=false; - } - break; - } - case 'print': - { - viewer.print.print(); - let editAnnotationToolbarElement : HTMLElement = document.getElementById('editAnnotationToolbar') as HTMLElement; - if(editAnnotationToolbarElement.style.display == "block") - editAnnotationToolbarElement.style.display="none"; - - let textSearchToolbarElement : HTMLElement = document.getElementById('textSearchToolbar') as HTMLElement; - if(textSearchToolbarElement.style.display == "block") - textSearchToolbarElement.style.display="none"; - - let signatureToolbarElement : HTMLElement = document.getElementById('SignatureToolbar') as HTMLElement; - if(signatureToolbarElement.style.display == "block") - signatureToolbarElement.style.display="none"; - - let formFieldToolbarElement : HTMLElement= document.getElementById('formFieldToolbar') as HTMLElement; - if(formFieldToolbarElement.style.display == "block") - { - formFieldToolbarElement.style.display="none"; - viewer.designerMode=false; - } - } - break; - case 'download': - { - let editAnnotationToolbarElement : HTMLElement = document.getElementById('editAnnotationToolbar') as HTMLElement; - if(editAnnotationToolbarElement.style.display == "block") - editAnnotationToolbarElement.style.display="none"; - - let textSearchToolbarElement : HTMLElement = document.getElementById('textSearchToolbar') as HTMLElement; - if(textSearchToolbarElement.style.display == "block") - textSearchToolbarElement.style.display="none"; - - let signatureToolbarElement : HTMLElement = document.getElementById('SignatureToolbar') as HTMLElement; - if(signatureToolbarElement.style.display == "block") - signatureToolbarElement.style.display="none"; - - let formFieldToolbarElement : HTMLElement= document.getElementById('formFieldToolbar') as HTMLElement; - if(formFieldToolbarElement.style.display == "block") - { - formFieldToolbarElement.style.display="none"; - viewer.designerMode=false; - } - viewer.download(); - } - break; - case 'highlight': - viewer.annotationModule.setAnnotationMode('Highlight'); - break; - case 'underline': - viewer.annotationModule.setAnnotationMode('Underline'); - break; - case 'strikethrough': - viewer.annotationModule.setAnnotationMode('Strikethrough'); - break; - case 'edit_annotation': - let formFieldToolbarElement : HTMLInputElement = document.getElementById('formFieldToolbar') as HTMLInputElement; - if(formFieldToolbarElement.style.display === "block") - { - formFieldToolbarElement.style.display="none"; - viewer.designerMode=false; - } - - let textSearchToolbarElement : HTMLElement = document.getElementById('textSearchToolbar') as HTMLElement; - if(textSearchToolbarElement.style.display === "block") - textSearchToolbarElement.style.display="none"; - - let signatureToolbarElement : HTMLElement = document.getElementById('SignatureToolbar') as HTMLElement; - if(signatureToolbarElement.style.display === "block") - { - signatureToolbarElement.style.display="none"; - } - - let editAnnotationToolbar = document.getElementById('editAnnotationToolbar') as HTMLInputElement; - if(formFieldToolbarElement.style.display === "block") - { - editAnnotationToolbar.style.display = 'none'; - } - else - { - editAnnotationToolbar.style.display = 'block'; - } - break; - case 'line': - viewer.annotationModule.setAnnotationMode('Line'); - break; - case 'arrow': - viewer.annotationModule.setAnnotationMode('Arrow'); - break; - case 'rectangle': - viewer.annotationModule.setAnnotationMode('Rectangle'); - break; - case 'circle': - viewer.annotationModule.setAnnotationMode('Circle'); - break; - case 'polygon': - viewer.annotationModule.setAnnotationMode('Polygon'); - break; - case 'calibrate_distance': - viewer.annotationModule.setAnnotationMode('Distance'); - break; - case 'calibrate_perimeter': - viewer.annotation.setAnnotationMode("Perimeter"); - break; - case 'calibrate_area': - viewer.annotation.setAnnotationMode("Area"); - break; - case 'calibrate_radius': - viewer.annotation.setAnnotationMode("Radius"); - break; - case 'calibrate_volume': - viewer.annotation.setAnnotationMode("Volume"); - break; - case 'freeText': - viewer.annotationModule.setAnnotationMode('FreeText'); - break; - case 'signature': - case 'formField_signature': - { - - const element : any = document.querySelector('.e-dropdown-popup'); - - if(args.item.id === "formField_signature") - { - element.style.left ="625px"; - element.style.top ="128px"; - } - else - { - element.style.left ="790px"; - element.style.top ="137px"; - } - - let textSearchToolbarElement : HTMLElement = document.getElementById('textSearchToolbar') as HTMLElement; - if(textSearchToolbarElement.style.display === "block") - { - textSearchToolbarElement.style.display="none"; - } - - let signatureToolbarElement : HTMLElement = document.getElementById('SignatureToolbar') as HTMLElement; - if(signatureToolbarElement.style.display === "block") - { - signatureToolbarElement.style.display="none"; - } - else - { - signatureToolbarElement.style.display="block"; - } - - } - break; - case 'ink': - viewer.annotationModule.setAnnotationMode('Ink'); - break; - case 'textbox': - viewer.formDesignerModule.setFormFieldMode('Textbox'); - break; - case 'password': - viewer.formDesignerModule.setFormFieldMode("Password"); - break; - case 'checkbok': - viewer.formDesignerModule.setFormFieldMode("CheckBox"); - break; - case 'radio_button': - viewer.formDesignerModule.setFormFieldMode("RadioButton"); - break; - case 'drop_down': - viewer.formDesignerModule.setFormFieldMode("DropDown"); - break; - case 'list_box': - viewer.formDesignerModule.setFormFieldMode("ListBox"); - break; - case 'add_form_field': - { - let editAnnotationToolbar = document.getElementById('editAnnotationToolbar') as HTMLInputElement; - if(editAnnotationToolbar.style.display === "block") - { - editAnnotationToolbar.style.display = 'none'; - } - - let signatureToolbarElement : HTMLElement = document.getElementById('SignatureToolbar') as HTMLElement; - if(signatureToolbarElement.style.display === "block") - { - signatureToolbarElement.style.display="none"; - } - - let textSearchToolbarElement : HTMLElement = document.getElementById('textSearchToolbar') as HTMLElement; - if(textSearchToolbarElement.style.display === "block") - { - textSearchToolbarElement.style.display="none"; - } - - let formFieldToolbarElement : HTMLInputElement = document.getElementById('formFieldToolbar') as HTMLInputElement; - if(formFieldToolbarElement.style.display === "block") - { - formFieldToolbarElement.style.display="none"; - viewer.designerMode=false; - } - else - { - formFieldToolbarElement.style.display="block"; - viewer.designerMode=true; - } - } - break; - } - } - - function readFile(e: any) { - let uploadedFile = e.target.files[0]; - let reader = new FileReader(); - reader.readAsDataURL(uploadedFile); - reader.onload = function(evt) - { - let uploadedFileUrl : string = (evt.currentTarget as any).result; - viewer.load(uploadedFileUrl,''); - viewer.downloadFileName = viewer.fileName = uploadedFile.name; - let totalPageElement: HTMLInputElement = document.getElementById('totalPage') as HTMLInputElement; - totalPageElement.textContent = 'of ' + viewer.pageCount; - } - } -} - -export default App; diff --git a/Custom Toolbar/src/index.css b/Custom Toolbar/src/index.css index ec2585e..09c995a 100644 --- a/Custom Toolbar/src/index.css +++ b/Custom Toolbar/src/index.css @@ -1,13 +1,101 @@ -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; -} +/* custom code start*/ +#magnificationToolbarItems { + position: absolute; + bottom: 66px; + display: block; + width: auto; + transform: rotate(90deg); + right: 7.5px; + z-index: 1001; + } + + #magnificationToolbar { + background: transparent; + } + + .e-pv-zoom-out-sample { + transform: rotate(-90deg); + } + + div#magnificationToolbar.e-toolbar .e-toolbar-items { + background: transparent; + padding: 2px 3px 2px 2px; + } + + #magnificationToolbar.e-toolbar .e-tbar-btn { + border-radius: 50%; + min-height: 30px; + min-width: 30px; + border: 0.5px solid #c8c8c8; + } + + #topToolbar { + top: 0px; + z-index: 1001; + } + + .e-pv-current-page-number { + width: 46px; + height: 28px; + text-align: center; + } + + .material .e-pv-current-page-number { + border-width: 1px; + } + + .e-pv-icons { + font-family: "e-pv-icons"; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + text-transform: none; + } + + .e-pdf-toolbar .e-icons::before { + font-family: 'e-pv-icons'; + } + + .e-pv-icon-search::before { + font-family: 'e-pv-icons'; + font-size: 12px; + } + + .e-pv-download-document-icon::before { + content: '\ed05'; + } + + .e-pv-print-document-icon::before { + content: '\ed08'; + } + + .e-pv-previous-page-navigation-icon::before { + content: '\ed01'; + } + + .e-pv-next-page-navigation-icon::before { + content: '\ed02'; + } + + .e-pv-zoom-out-sample::before { + content: '\ed03'; + } + + .e-pv-zoom-in-icon::before { + content: '\ed04'; + } + + .e-pv-fit-page::before { + content: '\ed12'; + } + .e-pv-open-document-icon::before { + content: '\ed13'; + } + + @font-face { + font-family: "e-pv-icons"; + font-style: normal; + font-weight: normal; + src: url(data:application/x-font-ttf;charset=utf-8;base64,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Y3VzdG9tLXRvb2xiYXJjdXN0b20tdG9vbGJhclZlcnNpb24gMS4wY3VzdG9tLXRvb2xiYXJGb250IGdlbmVyYXRlZCB1c2luZyBTeW5jZnVzaW9uIE1ldHJvIFN0dWRpb3d3dy5zeW5jZnVzaW9uLmNvbQAgAGMAdQBzAHQAbwBtAC0AdABvAG8AbABiAGEAcgBSAGUAZwB1AGwAYQByAGMAdQBzAHQAbwBtAC0AdABvAG8AbABiAGEAcgBjAHUAcwB0AG8AbQAtAHQAbwBvAGwAYgBhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAGMAdQBzAHQAbwBtAC0AdABvAG8AbABiAGEAcgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIAB1AHMAaQBuAGcAIABTAHkAbgBjAGYAdQBzAGkAbwBuACAATQBlAHQAcgBvACAAUwB0AHUAZABpAG8AdwB3AHcALgBzAHkAbgBjAGYAdQBzAGkAbwBuAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwAIVG9wLWljb24LZG93bi1hcnJvdzIKUFZfWm9vbW91dAlQVl9ab29taW4LUFZfRG93bmxvYWQLUFZfQm9va21hcmsJUFZfU2VhcmNoCFBWX1ByaW50C1BWX1ByZXZpb3VzB1BWX05leHQIUFZfQ2xvc2UMUFZfRml0VG9QYWdlB1BWX09wZW4AAA==) format('truetype'); + } \ No newline at end of file diff --git a/Custom Toolbar/src/index.js b/Custom Toolbar/src/index.js new file mode 100644 index 0000000..b3f7157 --- /dev/null +++ b/Custom Toolbar/src/index.js @@ -0,0 +1,154 @@ +import { createRoot } from 'react-dom/client'; +import './index.css'; +import * as React from 'react'; +import { PdfViewerComponent, Magnification, Navigation, LinkAnnotation, BookmarkView, + ThumbnailView, Print, TextSelection, TextSearch, Inject } from '@syncfusion/ej2-react-pdfviewer'; +import { ToolbarComponent, ItemsDirective, ItemDirective } from '@syncfusion/ej2-react-navigations'; + + +function CustomToolbar() { + let viewer; + let toolbar; + let currentPageNumber = '1'; + let fileName = ''; + function template() { + return (
of 0
); + } + function inputTemplate() { + return (
); + } + return (
+
+
+
+ { toolbar = scope; }} clicked={clickHandler.bind(this)}> + + + + + + + + + + +
+ {/* Render the PDF Viewer */} + { viewer = scope; }} enableToolbar={false} enableNavigationToolbar={false} documentLoad={documentLoaded} pageChange={onPageChange} resourceUrl="https://cdn.syncfusion.com/ej2/23.1.43/dist/ej2-pdfviewer-lib" documentPath="https://cdn.syncfusion.com/content/pdf/hive-succinctly.pdf" style={{ 'display': 'block', 'height': '640px' }}> + + + +
+ + + + + + + +
+ +
+
+
); + function onPageChange() { + currentPageNumber = viewer.currentPageNumber.toString(); + let inputElement = document.getElementById('currentPage'); + inputElement.value = currentPageNumber; + updatePageNavigation(); + } + function clickHandler(args) { + switch (args.item.id) { + case 'file_Open': + document.getElementById('fileUpload').click(); + break; + case 'previous_page': + viewer.navigation.goToPreviousPage(); + break; + case 'next_page': + viewer.navigation.goToNextPage(); + break; + case 'print': + viewer.print.print(); + break; + case 'download': + viewer.download(); + break; + case 'fit_to_page': + viewer.magnification.fitToPage(); + break; + case 'zoom_in': + viewer.magnification.zoomIn(); + break; + case 'zoom_out': + viewer.magnification.zoomOut(); + break; + } + } + function documentLoaded() { + var pageCount = document.getElementById('totalPage'); + pageCount.textContent = 'of ' + viewer.pageCount; + updatePageNavigation(); + let inputElement = document.getElementById('currentPage'); + inputElement.addEventListener('click', currentPageClicked.bind(this)); + inputElement.addEventListener('keypress', onCurrentPageBoxKeypress.bind(this)); + inputElement.value = "1"; + } + function updatePageNavigation() { + if (viewer.currentPageNumber === 1) { + toolbar.enableItems(document.getElementById('previous_page').parentElement, false); + toolbar.enableItems(document.getElementById('next_page').parentElement, true); + } + else if (viewer.currentPageNumber === viewer.pageCount) { + toolbar.enableItems(document.getElementById('previous_page').parentElement, true); + toolbar.enableItems(document.getElementById('next_page').parentElement, false); + } + else { + toolbar.enableItems(document.getElementById('previous_page').parentElement, true); + toolbar.enableItems(document.getElementById('next_page').parentElement, true); + } + } + function onCurrentPageBoxKeypress(event) { + let currentPageBox = document.getElementById('currentPage'); + if ((event.which < 48 || event.which > 57) && event.which !== 8 && event.which !== 13) { + event.preventDefault(); + return false; + } + else { + var currentPageNumber = parseInt(currentPageBox.value); + if (event.which === 13) { + if (currentPageNumber > 0 && currentPageNumber <= viewer.pageCount) { + viewer.navigation.goToPage(currentPageNumber); + } + else { + currentPageBox.value = viewer.currentPageNumber.toString(); + } + } + return true; + } + } + function currentPageClicked() { + let currentPage = document.getElementById('currentPage'); + currentPage.select(); + } + function readFile(evt) { + let uploadedFiles = evt.target.files; + let uploadedFile = uploadedFiles[0]; + fileName = uploadedFile.name; + let reader = new FileReader(); + reader.readAsDataURL(uploadedFile); + let uploadedFileName = fileName; + reader.onload = function (e) { + let uploadedFileUrl = e.currentTarget.result; + viewer.load(uploadedFileUrl, null); + viewer.downloadFileName = viewer.fileName = uploadedFileName; + var pageCount = document.getElementById('totalPage'); + pageCount.textContent = 'of ' + viewer.pageCount; + }; + } +} +export default CustomToolbar; + +const root = createRoot(document.getElementById('sample')); +root.render(); \ No newline at end of file diff --git a/Custom Toolbar/src/index.tsx b/Custom Toolbar/src/index.tsx deleted file mode 100644 index 1fee28e..0000000 --- a/Custom Toolbar/src/index.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; -import './index.css'; -import App from './App'; -import reportWebVitals from './reportWebVitals'; -import {registerLicense} from '@syncfusion/ej2-base'; -registerLicense("Mgo+DSMBMAY9C3t2V1hhQlJAfV5AQmBIYVp/TGpJfl96cVxMZVVBJAtUQF1hSn5Vd0BiXX9ccXRQRGBa") - -const root = ReactDOM.createRoot( - document.getElementById('root') as HTMLElement -); -root.render( - - - -); - -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); diff --git a/Custom Toolbar/src/react-app-env.d.ts b/Custom Toolbar/src/react-app-env.d.ts deleted file mode 100644 index 6431bc5..0000000 --- a/Custom Toolbar/src/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/Custom Toolbar/src/reportWebVitals.ts b/Custom Toolbar/src/reportWebVitals.js similarity index 75% rename from Custom Toolbar/src/reportWebVitals.ts rename to Custom Toolbar/src/reportWebVitals.js index 49a2a16..77957db 100644 --- a/Custom Toolbar/src/reportWebVitals.ts +++ b/Custom Toolbar/src/reportWebVitals.js @@ -1,15 +1,13 @@ -import { ReportHandler } from 'web-vitals'; - -const reportWebVitals = (onPerfEntry?: ReportHandler) => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; +const reportWebVitals = onPerfEntry => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/Custom Toolbar/src/setupTests.ts b/Custom Toolbar/src/setupTests.js similarity index 97% rename from Custom Toolbar/src/setupTests.ts rename to Custom Toolbar/src/setupTests.js index 8f2609b..141e479 100644 --- a/Custom Toolbar/src/setupTests.ts +++ b/Custom Toolbar/src/setupTests.js @@ -1,5 +1,5 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom'; +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/Getting Started - Server-back/.gitignore b/Getting Started - Server-back/.gitignore new file mode 100644 index 0000000..c067634 --- /dev/null +++ b/Getting Started - Server-back/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/Getting Started - Server-back/README.md b/Getting Started - Server-back/README.md new file mode 100644 index 0000000..f616c3e --- /dev/null +++ b/Getting Started - Server-back/README.md @@ -0,0 +1,70 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in your browser. + +The page will reload when you make changes.\ +You may also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can't go back!** + +If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. + +You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `npm run build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/Getting Started - Server-back/package.json b/Getting Started - Server-back/package.json new file mode 100644 index 0000000..7b095cd --- /dev/null +++ b/Getting Started - Server-back/package.json @@ -0,0 +1,39 @@ +{ + "name": "quickstart", + "version": "0.1.0", + "private": true, + "dependencies": { + "@syncfusion/ej2-react-pdfviewer": "^20.3.60", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-scripts": "5.0.1", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/Getting Started/public/favicon.ico b/Getting Started - Server-back/public/favicon.ico similarity index 100% rename from Getting Started/public/favicon.ico rename to Getting Started - Server-back/public/favicon.ico diff --git a/Getting Started - Server-back/public/index.html b/Getting Started - Server-back/public/index.html new file mode 100644 index 0000000..0dd938c --- /dev/null +++ b/Getting Started - Server-back/public/index.html @@ -0,0 +1,15 @@ + + + +Syncfusion React PDF Viewer + + + + + + +
+
Loading....
+
+ + \ No newline at end of file diff --git a/Getting Started/public/logo192.png b/Getting Started - Server-back/public/logo192.png similarity index 100% rename from Getting Started/public/logo192.png rename to Getting Started - Server-back/public/logo192.png diff --git a/Getting Started/public/logo512.png b/Getting Started - Server-back/public/logo512.png similarity index 100% rename from Getting Started/public/logo512.png rename to Getting Started - Server-back/public/logo512.png diff --git a/Getting Started - Server-back/public/manifest.json b/Getting Started - Server-back/public/manifest.json new file mode 100644 index 0000000..2f2be64 --- /dev/null +++ b/Getting Started - Server-back/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/Getting Started - Server-back/public/robots.txt b/Getting Started - Server-back/public/robots.txt new file mode 100644 index 0000000..9dd52a5 --- /dev/null +++ b/Getting Started - Server-back/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/Getting Started - Server-back/src/index.css b/Getting Started - Server-back/src/index.css new file mode 100644 index 0000000..9e44230 --- /dev/null +++ b/Getting Started - Server-back/src/index.css @@ -0,0 +1,8 @@ +@import '../node_modules/@syncfusion/ej2-base/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-buttons/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-dropdowns/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-inputs/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-navigations/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-popups/styles/material.css'; +@import '../node_modules/@syncfusion/ej2-splitbuttons/styles/material.css'; +@import "../node_modules/@syncfusion/ej2-pdfviewer/styles/material.css"; diff --git a/Getting Started - Server-back/src/index.js b/Getting Started - Server-back/src/index.js new file mode 100644 index 0000000..30dd54c --- /dev/null +++ b/Getting Started - Server-back/src/index.js @@ -0,0 +1,21 @@ +import * as ReactDOM from 'react-dom'; +import * as React from 'react'; +import './index.css'; +import { PdfViewerComponent, Toolbar, Magnification, Navigation, LinkAnnotation, BookmarkView, ThumbnailView, Print, TextSelection, Annotation, TextSearch, FormFields, FormDesigner, Inject } from '@syncfusion/ej2-react-pdfviewer'; +export function App() { +return (
+
+ + + + +
+
); +} +const root = ReactDOM.createRoot(document.getElementById('sample')); +root.render(); \ No newline at end of file diff --git a/Getting Started/src/logo.svg b/Getting Started - Server-back/src/logo.svg similarity index 100% rename from Getting Started/src/logo.svg rename to Getting Started - Server-back/src/logo.svg diff --git a/Getting Started - Server-back/src/reportWebVitals.js b/Getting Started - Server-back/src/reportWebVitals.js new file mode 100644 index 0000000..77957db --- /dev/null +++ b/Getting Started - Server-back/src/reportWebVitals.js @@ -0,0 +1,13 @@ +const reportWebVitals = onPerfEntry => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/Getting Started - Server-back/src/setupTests.js b/Getting Started - Server-back/src/setupTests.js new file mode 100644 index 0000000..141e479 --- /dev/null +++ b/Getting Started - Server-back/src/setupTests.js @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/Getting Started/.gitignore b/Getting Started - standalone/.gitignore similarity index 100% rename from Getting Started/.gitignore rename to Getting Started - standalone/.gitignore diff --git a/Getting Started/README.md b/Getting Started - standalone/README.md similarity index 100% rename from Getting Started/README.md rename to Getting Started - standalone/README.md diff --git a/Getting Started/package.json b/Getting Started - standalone/package.json similarity index 100% rename from Getting Started/package.json rename to Getting Started - standalone/package.json diff --git a/Getting Started - standalone/public/favicon.ico b/Getting Started - standalone/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/Getting Started/public/index.html b/Getting Started - standalone/public/index.html similarity index 100% rename from Getting Started/public/index.html rename to Getting Started - standalone/public/index.html diff --git a/Getting Started - standalone/public/logo192.png b/Getting Started - standalone/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/Getting Started/public/manifest.json b/Getting Started - standalone/public/manifest.json similarity index 100% rename from Getting Started/public/manifest.json rename to Getting Started - standalone/public/manifest.json diff --git a/Getting Started/public/robots.txt b/Getting Started - standalone/public/robots.txt similarity index 100% rename from Getting Started/public/robots.txt rename to Getting Started - standalone/public/robots.txt diff --git a/Getting Started/src/index.css b/Getting Started - standalone/src/index.css similarity index 100% rename from Getting Started/src/index.css rename to Getting Started - standalone/src/index.css diff --git a/Getting Started/src/index.js b/Getting Started - standalone/src/index.js similarity index 83% rename from Getting Started/src/index.js rename to Getting Started - standalone/src/index.js index ff7fee7..4d1125f 100644 --- a/Getting Started/src/index.js +++ b/Getting Started - standalone/src/index.js @@ -8,8 +8,7 @@ return (
diff --git a/Getting Started - standalone/src/logo.svg b/Getting Started - standalone/src/logo.svg new file mode 100644 index 0000000..9dfc1c0 --- /dev/null +++ b/Getting Started - standalone/src/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Getting Started/src/reportWebVitals.js b/Getting Started - standalone/src/reportWebVitals.js similarity index 100% rename from Getting Started/src/reportWebVitals.js rename to Getting Started - standalone/src/reportWebVitals.js diff --git a/Getting Started/src/setupTests.js b/Getting Started - standalone/src/setupTests.js similarity index 100% rename from Getting Started/src/setupTests.js rename to Getting Started - standalone/src/setupTests.js diff --git a/Save and Load/Load PDF file from URL/ReactClient/src/index.js b/Save and Load/Load PDF file from URL/ReactClient/src/index.js index f8f4f4a..eb26ebc 100644 --- a/Save and Load/Load PDF file from URL/ReactClient/src/index.js +++ b/Save and Load/Load PDF file from URL/ReactClient/src/index.js @@ -9,7 +9,7 @@ return (
From 34d3fa0ce4841b000f0a6fdb1480c8eee90a7946 Mon Sep 17 00:00:00 2001 From: SaravanaPriya31 Date: Tue, 28 Nov 2023 10:29:17 +0530 Subject: [PATCH 04/10] commit --- .../Flatten all annotations/Flatten annotations/src/index.js | 3 +-- .../Setting Annotation Author Name/src/index.js | 3 +-- Annotations/Import and export annotations/src/index.js | 2 +- Getting Started - Server-back/package.json | 2 +- Getting Started - Server-back/src/index.js | 1 - Getting Started - standalone/package.json | 2 +- Save and Load/Load PDF file from URL/ReactClient/package.json | 2 +- .../Load PDF file from base64 string/ReactClient/package.json | 2 +- Save and Load/Save PDF file to server/ReactClient/package.json | 2 +- Toolbar/How to hide toolbar/package.json | 2 +- 10 files changed, 9 insertions(+), 12 deletions(-) diff --git a/Annotations/Flatten all annotations/Flatten annotations/src/index.js b/Annotations/Flatten all annotations/Flatten annotations/src/index.js index c87d1c0..2242d61 100644 --- a/Annotations/Flatten all annotations/Flatten annotations/src/index.js +++ b/Annotations/Flatten all annotations/Flatten annotations/src/index.js @@ -10,8 +10,7 @@ render() { {/*Inject required dependencies*/} diff --git a/Annotations/Flatten annotation specific to user/Setting Annotation Author Name/src/index.js b/Annotations/Flatten annotation specific to user/Setting Annotation Author Name/src/index.js index 8a0523c..4e08bb2 100644 --- a/Annotations/Flatten annotation specific to user/Setting Annotation Author Name/src/index.js +++ b/Annotations/Flatten annotation specific to user/Setting Annotation Author Name/src/index.js @@ -13,8 +13,7 @@ render() { }} id="container" documentPath="PDF Succinctly.pdf" - //To set up the **server-backed PDF Viewer**, add the following 'serviceUrl'. - //serviceUrl="https://localhost:44399/pdfviewer" + serviceUrl="https://localhost:44399/pdfviewer" documentLoad={this.documentLoaded} style={{ height: '640px' }} > diff --git a/Annotations/Import and export annotations/src/index.js b/Annotations/Import and export annotations/src/index.js index 3f0c0eb..82616ec 100644 --- a/Annotations/Import and export annotations/src/index.js +++ b/Annotations/Import and export annotations/src/index.js @@ -106,7 +106,7 @@ export class App extends React.Component { documentPath="https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf" documentLoad={this.documentLoad} //To set up the **server-backed PDF Viewer**, add the following 'serviceUrl'. - //serviceUrl="https://localhost:44399/pdfviewer" + //serviceUrl="https://services.syncfusion.com/react/production/api/pdfviewer" resourceUrl="https://cdn.syncfusion.com/ej2/23.1.43/dist/ej2-pdfviewer-lib" style={{ height: '640px' }} > diff --git a/Getting Started - Server-back/package.json b/Getting Started - Server-back/package.json index 7b095cd..632d0f0 100644 --- a/Getting Started - Server-back/package.json +++ b/Getting Started - Server-back/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@syncfusion/ej2-react-pdfviewer": "^20.3.60", + "@syncfusion/ej2-react-pdfviewer": "*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/Getting Started - Server-back/src/index.js b/Getting Started - Server-back/src/index.js index 30dd54c..a497e82 100644 --- a/Getting Started - Server-back/src/index.js +++ b/Getting Started - Server-back/src/index.js @@ -8,7 +8,6 @@ return (
diff --git a/Getting Started - standalone/package.json b/Getting Started - standalone/package.json index d49a5c2..37c2995 100644 --- a/Getting Started - standalone/package.json +++ b/Getting Started - standalone/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@syncfusion/ej2-react-pdfviewer": "^20.3.60", + "@syncfusion/ej2-react-pdfviewer": "*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/Save and Load/Load PDF file from URL/ReactClient/package.json b/Save and Load/Load PDF file from URL/ReactClient/package.json index 4e3a854..632d0f0 100644 --- a/Save and Load/Load PDF file from URL/ReactClient/package.json +++ b/Save and Load/Load PDF file from URL/ReactClient/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@syncfusion/ej2-react-pdfviewer": "^21.2.3", + "@syncfusion/ej2-react-pdfviewer": "*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/Save and Load/Load PDF file from base64 string/ReactClient/package.json b/Save and Load/Load PDF file from base64 string/ReactClient/package.json index 4e3a854..632d0f0 100644 --- a/Save and Load/Load PDF file from base64 string/ReactClient/package.json +++ b/Save and Load/Load PDF file from base64 string/ReactClient/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@syncfusion/ej2-react-pdfviewer": "^21.2.3", + "@syncfusion/ej2-react-pdfviewer": "*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/Save and Load/Save PDF file to server/ReactClient/package.json b/Save and Load/Save PDF file to server/ReactClient/package.json index 4e3a854..632d0f0 100644 --- a/Save and Load/Save PDF file to server/ReactClient/package.json +++ b/Save and Load/Save PDF file to server/ReactClient/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@syncfusion/ej2-react-pdfviewer": "^21.2.3", + "@syncfusion/ej2-react-pdfviewer": "*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/Toolbar/How to hide toolbar/package.json b/Toolbar/How to hide toolbar/package.json index 7b9178d..37c2995 100644 --- a/Toolbar/How to hide toolbar/package.json +++ b/Toolbar/How to hide toolbar/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@syncfusion/ej2-react-pdfviewer": "^23.1.36", + "@syncfusion/ej2-react-pdfviewer": "*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", From 0508c7d32c870be83f8d582ad07702c1a9469170 Mon Sep 17 00:00:00 2001 From: SaravanaPriya31 Date: Thu, 30 Nov 2023 11:47:16 +0530 Subject: [PATCH 05/10] commit --- Custom Toolbar/src/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Custom Toolbar/src/index.js b/Custom Toolbar/src/index.js index b3f7157..b614f0c 100644 --- a/Custom Toolbar/src/index.js +++ b/Custom Toolbar/src/index.js @@ -35,8 +35,8 @@ function CustomToolbar() {
{/* Render the PDF Viewer */} { viewer = scope; }} enableToolbar={false} enableNavigationToolbar={false} documentLoad={documentLoaded} pageChange={onPageChange} resourceUrl="https://cdn.syncfusion.com/ej2/23.1.43/dist/ej2-pdfviewer-lib" documentPath="https://cdn.syncfusion.com/content/pdf/hive-succinctly.pdf" style={{ 'display': 'block', 'height': '640px' }}> - +
From f0e6de2176d2957e24e339067dd6c317b76959fa Mon Sep 17 00:00:00 2001 From: SaravanaPriya31 Date: Fri, 1 Dec 2023 10:09:19 +0530 Subject: [PATCH 06/10] commit --- Custom Toolbar/src/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Custom Toolbar/src/index.js b/Custom Toolbar/src/index.js index b614f0c..1d9a890 100644 --- a/Custom Toolbar/src/index.js +++ b/Custom Toolbar/src/index.js @@ -84,6 +84,8 @@ function CustomToolbar() { case 'zoom_out': viewer.magnification.zoomOut(); break; + default: + break; } } function documentLoaded() { From c62d6f831f667b92e152e15f5667c9bc35b08409 Mon Sep 17 00:00:00 2001 From: SaravanaPriya31 Date: Fri, 1 Dec 2023 14:18:39 +0530 Subject: [PATCH 07/10] commit --- How to/Get hash id from storage/package.json | 12 ++- .../public/index.html | 12 --- How to/Get hash id from storage/src/index.js | 81 +++++++------------ 3 files changed, 40 insertions(+), 65 deletions(-) diff --git a/How to/Get hash id from storage/package.json b/How to/Get hash id from storage/package.json index 1239cdb..b06a693 100644 --- a/How to/Get hash id from storage/package.json +++ b/How to/Get hash id from storage/package.json @@ -3,7 +3,17 @@ "version": "0.1.0", "private": true, "dependencies": { - "@syncfusion/ej2-react-pdfviewer": "^20.2.50", + "@syncfusion/ej2-base": "*", + "@syncfusion/ej2-pdfviewer": "*", + "@syncfusion/ej2-react-base": "*", + "@syncfusion/ej2-react-pdfviewer": "*", + "@syncfusion/ej2-navigations": "*", + "@syncfusion/ej2-react-navigations": "*", + "@syncfusion/ej2-buttons": "*", + "@syncfusion/ej2-react-buttons": "*", + "@syncfusion/ej2-lists": "*", + "@syncfusion/ej2-documenteditor": "*", + "@syncfusion/ej2-splitbuttons": "*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/How to/Get hash id from storage/public/index.html b/How to/Get hash id from storage/public/index.html index c6d6922..600abd8 100644 --- a/How to/Get hash id from storage/public/index.html +++ b/How to/Get hash id from storage/public/index.html @@ -13,18 +13,6 @@ -
- diff --git a/How to/Get hash id from storage/src/index.js b/How to/Get hash id from storage/src/index.js index 6322a4b..f2a01f1 100644 --- a/How to/Get hash id from storage/src/index.js +++ b/How to/Get hash id from storage/src/index.js @@ -1,55 +1,32 @@ +import * as ReactDOM from 'react-dom'; import * as React from 'react'; -import { createRoot } from 'react-dom/client'; -import { - PdfViewerComponent, - Toolbar, - Magnification, - Navigation, - LinkAnnotation, - BookmarkView, - ThumbnailView, - Print, - TextSelection, - Annotation, - TextSearch, - FormFields, - FormDesigner, - Inject } from '@syncfusion/ej2-react-pdfviewer'; -export class App extends React.Component{ - render() { - return ( -
-
- {/* Render the PDF Viewer */} - - {/* Inject the required services */} - - -
-
- ); - } +import { PdfViewerComponent, Toolbar, Magnification, Navigation, LinkAnnotation, BookmarkView, + ThumbnailView, Print, TextSelection, Annotation, TextSearch, Inject } from '@syncfusion/ej2-react-pdfviewer'; + +function App() { + function uniqueId() { + var viewer = document.getElementById('container').ej2_instances[0]; + var uniqueId = viewer.viewerBase.documentId + var hashId = window.sessionStorage.getItem(uniqueId+'_hashId'); + //Prints the id in the console window. + console.log(hashId); + } + return (
+
+ {/* Render the PDF Viewer */} + + + + +
+
+ ); } -const root = createRoot(document.getElementById('sample')); +const root = ReactDOM.createRoot(document.getElementById('sample')); root.render(); + From 6b2c6f9555aab2e72dcc86d8d07b315715553025 Mon Sep 17 00:00:00 2001 From: SaravanaPriya31 Date: Fri, 29 Dec 2023 15:12:47 +0530 Subject: [PATCH 08/10] commit --- Annotations/Import and export annotations/src/index.js | 2 +- Custom Toolbar/src/index.js | 2 +- Getting Started - standalone/src/index.js | 2 +- Toolbar/How to hide toolbar/src/index.js | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Annotations/Import and export annotations/src/index.js b/Annotations/Import and export annotations/src/index.js index 82616ec..b689f2b 100644 --- a/Annotations/Import and export annotations/src/index.js +++ b/Annotations/Import and export annotations/src/index.js @@ -107,7 +107,7 @@ export class App extends React.Component { documentLoad={this.documentLoad} //To set up the **server-backed PDF Viewer**, add the following 'serviceUrl'. //serviceUrl="https://services.syncfusion.com/react/production/api/pdfviewer" - resourceUrl="https://cdn.syncfusion.com/ej2/23.1.43/dist/ej2-pdfviewer-lib" + resourceUrl="https://cdn.syncfusion.com/ej2/24.1.41/dist/ej2-pdfviewer-lib" style={{ height: '640px' }} > {/* Inject the required services */} diff --git a/Custom Toolbar/src/index.js b/Custom Toolbar/src/index.js index 1d9a890..a67e8fc 100644 --- a/Custom Toolbar/src/index.js +++ b/Custom Toolbar/src/index.js @@ -34,7 +34,7 @@ function CustomToolbar() {
{/* Render the PDF Viewer */} - { viewer = scope; }} enableToolbar={false} enableNavigationToolbar={false} documentLoad={documentLoaded} pageChange={onPageChange} resourceUrl="https://cdn.syncfusion.com/ej2/23.1.43/dist/ej2-pdfviewer-lib" documentPath="https://cdn.syncfusion.com/content/pdf/hive-succinctly.pdf" style={{ 'display': 'block', 'height': '640px' }}> + { viewer = scope; }} enableToolbar={false} enableNavigationToolbar={false} documentLoad={documentLoaded} pageChange={onPageChange} resourceUrl="https://cdn.syncfusion.com/ej2/24.1.41/dist/ej2-pdfviewer-lib" documentPath="https://cdn.syncfusion.com/content/pdf/hive-succinctly.pdf" style={{ 'display': 'block', 'height': '640px' }}> diff --git a/Getting Started - standalone/src/index.js b/Getting Started - standalone/src/index.js index 4d1125f..e034451 100644 --- a/Getting Started - standalone/src/index.js +++ b/Getting Started - standalone/src/index.js @@ -8,7 +8,7 @@ return (
diff --git a/Toolbar/How to hide toolbar/src/index.js b/Toolbar/How to hide toolbar/src/index.js index b404de5..3a24ff0 100644 --- a/Toolbar/How to hide toolbar/src/index.js +++ b/Toolbar/How to hide toolbar/src/index.js @@ -14,6 +14,7 @@ export class App extends React.Component { enableToolbar ={false} //To set up the **server-backed PDF Viewer**, add the following 'serviceUrl'. // serviceUrl="https://services.syncfusion.com/react/production/api/pdfviewer" + resourceUrl="https://cdn.syncfusion.com/ej2/24.1.41/dist/ej2-pdfviewer-lib" style={{ height: '640px' } } > From 5055706c47bb780d27a091249c4a4ccc49abf265 Mon Sep 17 00:00:00 2001 From: SaravanaPriya31 Date: Fri, 29 Dec 2023 16:05:24 +0530 Subject: [PATCH 09/10] commit --- .../Web Service/Controllers/PdfViewerController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Annotations/Flatten annotation specific to user/Web Service/Controllers/PdfViewerController.cs b/Annotations/Flatten annotation specific to user/Web Service/Controllers/PdfViewerController.cs index 14c5bc6..1450292 100644 --- a/Annotations/Flatten annotation specific to user/Web Service/Controllers/PdfViewerController.cs +++ b/Annotations/Flatten annotation specific to user/Web Service/Controllers/PdfViewerController.cs @@ -297,7 +297,7 @@ public string PerformOCR(Syncfusion.Drawing.RectangleF bounds, int PageIndex, st PdfRenderer lDoc = new PdfRenderer(); var document = _hostingEnvironment.ContentRootPath; - lDoc.Load(@"Data\https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf"); + lDoc.Load(@"Data\PDF_Succinctly.pdf"); processor.Settings.Language = Languages.English; int DPI = 300; System.Drawing.Bitmap image = lDoc.ExportAsImage(PageIndex, DPI, DPI); From 85001b5ca824c635310e88b3e9a002e348ff6a4f Mon Sep 17 00:00:00 2001 From: SaravanaPriya31 Date: Fri, 5 Jan 2024 14:28:46 +0530 Subject: [PATCH 10/10] commit --- Custom Toolbar/README.md | 2 +- Custom Toolbar/package.json | 2 +- Getting Started - standalone/public/logo192.png | Bin 5347 -> 0 bytes Getting Started - standalone/public/logo512.png | Bin 9664 -> 0 bytes 4 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 Getting Started - standalone/public/logo192.png delete mode 100644 Getting Started - standalone/public/logo512.png diff --git a/Custom Toolbar/README.md b/Custom Toolbar/README.md index 58beeac..64ba69a 100644 --- a/Custom Toolbar/README.md +++ b/Custom Toolbar/README.md @@ -1,4 +1,4 @@ -# Getting Started with Create React App +# Custom Toolbar with Create React App This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). diff --git a/Custom Toolbar/package.json b/Custom Toolbar/package.json index ff5e4c4..58d8782 100644 --- a/Custom Toolbar/package.json +++ b/Custom Toolbar/package.json @@ -1,5 +1,5 @@ { - "name": "toolbar", + "name": "mycustomtoolbarapp", "version": "0.1.0", "private": true, "dependencies": { diff --git a/Getting Started - standalone/public/logo192.png b/Getting Started - standalone/public/logo192.png deleted file mode 100644 index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN