diff --git a/How to/Extract Text Option/.gitignore b/How to/Extract Text Option/.gitignore new file mode 100644 index 0000000..403adbc --- /dev/null +++ b/How to/Extract Text Option/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules +/dist + + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/How to/Extract Text Option/README.md b/How to/Extract Text Option/README.md new file mode 100644 index 0000000..2e03b1c --- /dev/null +++ b/How to/Extract Text Option/README.md @@ -0,0 +1,24 @@ +# textsearch + +## Project setup +``` +npm install +``` + +### Compiles and hot-reloads for development +``` +npm run serve +``` + +### Compiles and minifies for production +``` +npm run build +``` + +### Lints and fixes files +``` +npm run lint +``` + +### Customize configuration +See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/How to/Extract Text Option/babel.config.js b/How to/Extract Text Option/babel.config.js new file mode 100644 index 0000000..e955840 --- /dev/null +++ b/How to/Extract Text Option/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/cli-plugin-babel/preset' + ] +} diff --git a/How to/Extract Text Option/jsconfig.json b/How to/Extract Text Option/jsconfig.json new file mode 100644 index 0000000..4aafc5f --- /dev/null +++ b/How to/Extract Text Option/jsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "esnext", + "baseUrl": "./", + "moduleResolution": "node", + "paths": { + "@/*": [ + "src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + } +} diff --git a/How to/Extract Text Option/package.json b/How to/Extract Text Option/package.json new file mode 100644 index 0000000..54932f8 --- /dev/null +++ b/How to/Extract Text Option/package.json @@ -0,0 +1,49 @@ +{ + "name": "textsearch", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "lint": "vue-cli-service lint" + }, + "dependencies": { + "@syncfusion/ej2-vue-pdfviewer": "*", + "core-js": "^3.8.3", + "vue": "^3.2.13", + "buffer": "^6.0.3", + "crypto-browserify": "^3.12.0", + "stream-browserify": "^3.0.0", + "util": "^0.12.5", + "vm-browserify": "^1.1.2" + }, + "devDependencies": { + "@babel/core": "^7.12.16", + "@babel/eslint-parser": "^7.12.16", + "@vue/cli-plugin-babel": "~5.0.0", + "@vue/cli-plugin-eslint": "~5.0.0", + "@vue/cli-service": "~5.0.0", + "eslint": "^7.32.0", + "eslint-plugin-vue": "^8.0.3" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "@babel/eslint-parser" + }, + "rules": {} + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not dead", + "not ie 11" + ] +} diff --git a/How to/Extract Text Option/public/favicon.ico b/How to/Extract Text Option/public/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/How to/Extract Text Option/public/favicon.ico differ diff --git a/How to/Extract Text Option/public/index.html b/How to/Extract Text Option/public/index.html new file mode 100644 index 0000000..661d3ff --- /dev/null +++ b/How to/Extract Text Option/public/index.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html lang=""> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width,initial-scale=1.0"> + <link rel="icon" href="<%= BASE_URL %>favicon.ico"> + <title><%= htmlWebpackPlugin.options.title %></title> + </head> + <body> + <noscript> + <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> + </noscript> + <br><br><br> + <div id="app"></div> + <!-- built files will be auto injected --> + </body> +</html> diff --git a/How to/Extract Text Option/src/App.vue b/How to/Extract Text Option/src/App.vue new file mode 100644 index 0000000..0e0c1b3 --- /dev/null +++ b/How to/Extract Text Option/src/App.vue @@ -0,0 +1,65 @@ +<template> + <div id="app"> + <ejs-pdfviewer + id="pdfViewer" + ref="pdfviewer" + :documentPath="documentPath" + :extractTextOption="extractTextOption" + :resourceUrl="resourceUrl" + style="height: 640px;" + > + </ejs-pdfviewer> + </div> +</template> + +<script> +import { + PdfViewerComponent, + Toolbar, + Magnification, + Navigation, + Annotation, + TextSelection, + TextSearch, + FormFields, + FormDesigner, + PageOrganizer, +} from '@syncfusion/ej2-vue-pdfviewer'; + +export default { + name: 'App', + components: { + 'ejs-pdfviewer': PdfViewerComponent, + }, + data() { + return { + documentPath:'https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf', + resourceUrl: 'https://cdn.syncfusion.com/ej2/29.1.33/dist/ej2-pdfviewer-lib', + extractTextOption: 'None', // Options: 'None', 'TextOnly', 'BoundsOnly', 'TextAndBounds' + }; + }, + provide: { + PdfViewer: [ + Toolbar, + Magnification, + Navigation, + Annotation, + TextSelection, + TextSearch, + FormFields, + FormDesigner, + PageOrganizer, + ], + }, +}; +</script> +<style> +@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-vue-pdfviewer/styles/material.css"; +</style> diff --git a/How to/Extract Text Option/src/assets/logo.png b/How to/Extract Text Option/src/assets/logo.png new file mode 100644 index 0000000..f3d2503 Binary files /dev/null and b/How to/Extract Text Option/src/assets/logo.png differ diff --git a/How to/Extract Text Option/src/main.js b/How to/Extract Text Option/src/main.js new file mode 100644 index 0000000..01433bc --- /dev/null +++ b/How to/Extract Text Option/src/main.js @@ -0,0 +1,4 @@ +import { createApp } from 'vue' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/How to/Extract Text Option/vue.config.js b/How to/Extract Text Option/vue.config.js new file mode 100644 index 0000000..910e297 --- /dev/null +++ b/How to/Extract Text Option/vue.config.js @@ -0,0 +1,4 @@ +const { defineConfig } = require('@vue/cli-service') +module.exports = defineConfig({ + transpileDependencies: true +}) diff --git a/How to/Extract Text/.gitignore b/How to/Extract Text/.gitignore new file mode 100644 index 0000000..403adbc --- /dev/null +++ b/How to/Extract Text/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules +/dist + + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/How to/Extract Text/README.md b/How to/Extract Text/README.md new file mode 100644 index 0000000..2e03b1c --- /dev/null +++ b/How to/Extract Text/README.md @@ -0,0 +1,24 @@ +# textsearch + +## Project setup +``` +npm install +``` + +### Compiles and hot-reloads for development +``` +npm run serve +``` + +### Compiles and minifies for production +``` +npm run build +``` + +### Lints and fixes files +``` +npm run lint +``` + +### Customize configuration +See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/How to/Extract Text/babel.config.js b/How to/Extract Text/babel.config.js new file mode 100644 index 0000000..e955840 --- /dev/null +++ b/How to/Extract Text/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/cli-plugin-babel/preset' + ] +} diff --git a/How to/Extract Text/jsconfig.json b/How to/Extract Text/jsconfig.json new file mode 100644 index 0000000..4aafc5f --- /dev/null +++ b/How to/Extract Text/jsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "esnext", + "baseUrl": "./", + "moduleResolution": "node", + "paths": { + "@/*": [ + "src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + } +} diff --git a/How to/Extract Text/package.json b/How to/Extract Text/package.json new file mode 100644 index 0000000..54932f8 --- /dev/null +++ b/How to/Extract Text/package.json @@ -0,0 +1,49 @@ +{ + "name": "textsearch", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "lint": "vue-cli-service lint" + }, + "dependencies": { + "@syncfusion/ej2-vue-pdfviewer": "*", + "core-js": "^3.8.3", + "vue": "^3.2.13", + "buffer": "^6.0.3", + "crypto-browserify": "^3.12.0", + "stream-browserify": "^3.0.0", + "util": "^0.12.5", + "vm-browserify": "^1.1.2" + }, + "devDependencies": { + "@babel/core": "^7.12.16", + "@babel/eslint-parser": "^7.12.16", + "@vue/cli-plugin-babel": "~5.0.0", + "@vue/cli-plugin-eslint": "~5.0.0", + "@vue/cli-service": "~5.0.0", + "eslint": "^7.32.0", + "eslint-plugin-vue": "^8.0.3" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "@babel/eslint-parser" + }, + "rules": {} + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not dead", + "not ie 11" + ] +} diff --git a/How to/Extract Text/public/favicon.ico b/How to/Extract Text/public/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/How to/Extract Text/public/favicon.ico differ diff --git a/How to/Extract Text/public/index.html b/How to/Extract Text/public/index.html new file mode 100644 index 0000000..661d3ff --- /dev/null +++ b/How to/Extract Text/public/index.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html lang=""> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width,initial-scale=1.0"> + <link rel="icon" href="<%= BASE_URL %>favicon.ico"> + <title><%= htmlWebpackPlugin.options.title %></title> + </head> + <body> + <noscript> + <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> + </noscript> + <br><br><br> + <div id="app"></div> + <!-- built files will be auto injected --> + </body> +</html> diff --git a/How to/Extract Text/src/App.vue b/How to/Extract Text/src/App.vue new file mode 100644 index 0000000..871ae20 --- /dev/null +++ b/How to/Extract Text/src/App.vue @@ -0,0 +1,86 @@ +<template> + <div id="app"> + <button v-on:click="extractText">extractText</button> + <button v-on:click="extractsText">extractsText</button> + <ejs-pdfviewer + id="pdfViewer" + ref="pdfviewer" + :documentPath="documentPath" + :resourceUrl="resourceUrl" + style="height: 640px;" + > + </ejs-pdfviewer> + </div> +</template> + +<script> +import { + PdfViewerComponent, + Toolbar, + Magnification, + Navigation, + Annotation, + TextSelection, + TextSearch, + FormFields, + FormDesigner, + PageOrganizer, +} from '@syncfusion/ej2-vue-pdfviewer'; + +export default { + name: 'App', + components: { + 'ejs-pdfviewer': PdfViewerComponent, + }, + data() { + return { + documentPath: 'https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf', + resourceUrl: 'https://cdn.syncfusion.com/ej2/29.1.33/dist/ej2-pdfviewer-lib' + }; + }, + provide: { + PdfViewer: [ + Toolbar, + Magnification, + Navigation, + Annotation, + TextSelection, + TextSearch, + FormFields, + FormDesigner, + PageOrganizer, + ], + }, + methods: { + extractText() { + if (this.$refs.pdfviewer) { + const viewer = this.$refs.pdfviewer.ej2Instances; + viewer.extractText(1, 'TextOnly').then((val) => { + console.log('Extracted Text from Page 1:'); + console.log(val); + }); + } + }, + extractsText() { + if (this.$refs.pdfviewer) { + const viewer = this.$refs.pdfviewer.ej2Instances; + viewer.extractText(0, 2, 'TextOnly').then((val) => { + console.log('Extracted Text from Pages 0 to 2:'); + console.log(val); + }); + } + } + } +}; +</script> + +<style> +@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-vue-pdfviewer/styles/material.css"; +</style> diff --git a/How to/Extract Text/src/assets/logo.png b/How to/Extract Text/src/assets/logo.png new file mode 100644 index 0000000..f3d2503 Binary files /dev/null and b/How to/Extract Text/src/assets/logo.png differ diff --git a/How to/Extract Text/src/main.js b/How to/Extract Text/src/main.js new file mode 100644 index 0000000..01433bc --- /dev/null +++ b/How to/Extract Text/src/main.js @@ -0,0 +1,4 @@ +import { createApp } from 'vue' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/How to/Extract Text/vue.config.js b/How to/Extract Text/vue.config.js new file mode 100644 index 0000000..910e297 --- /dev/null +++ b/How to/Extract Text/vue.config.js @@ -0,0 +1,4 @@ +const { defineConfig } = require('@vue/cli-service') +module.exports = defineConfig({ + transpileDependencies: true +}) diff --git a/How to/Find Text Async/.gitignore b/How to/Find Text Async/.gitignore new file mode 100644 index 0000000..403adbc --- /dev/null +++ b/How to/Find Text Async/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules +/dist + + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/How to/Find Text Async/README.md b/How to/Find Text Async/README.md new file mode 100644 index 0000000..2e03b1c --- /dev/null +++ b/How to/Find Text Async/README.md @@ -0,0 +1,24 @@ +# textsearch + +## Project setup +``` +npm install +``` + +### Compiles and hot-reloads for development +``` +npm run serve +``` + +### Compiles and minifies for production +``` +npm run build +``` + +### Lints and fixes files +``` +npm run lint +``` + +### Customize configuration +See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/How to/Find Text Async/babel.config.js b/How to/Find Text Async/babel.config.js new file mode 100644 index 0000000..e955840 --- /dev/null +++ b/How to/Find Text Async/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/cli-plugin-babel/preset' + ] +} diff --git a/How to/Find Text Async/jsconfig.json b/How to/Find Text Async/jsconfig.json new file mode 100644 index 0000000..4aafc5f --- /dev/null +++ b/How to/Find Text Async/jsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "esnext", + "baseUrl": "./", + "moduleResolution": "node", + "paths": { + "@/*": [ + "src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + } +} diff --git a/How to/Find Text Async/package.json b/How to/Find Text Async/package.json new file mode 100644 index 0000000..54932f8 --- /dev/null +++ b/How to/Find Text Async/package.json @@ -0,0 +1,49 @@ +{ + "name": "textsearch", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "lint": "vue-cli-service lint" + }, + "dependencies": { + "@syncfusion/ej2-vue-pdfviewer": "*", + "core-js": "^3.8.3", + "vue": "^3.2.13", + "buffer": "^6.0.3", + "crypto-browserify": "^3.12.0", + "stream-browserify": "^3.0.0", + "util": "^0.12.5", + "vm-browserify": "^1.1.2" + }, + "devDependencies": { + "@babel/core": "^7.12.16", + "@babel/eslint-parser": "^7.12.16", + "@vue/cli-plugin-babel": "~5.0.0", + "@vue/cli-plugin-eslint": "~5.0.0", + "@vue/cli-service": "~5.0.0", + "eslint": "^7.32.0", + "eslint-plugin-vue": "^8.0.3" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "@babel/eslint-parser" + }, + "rules": {} + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not dead", + "not ie 11" + ] +} diff --git a/How to/Find Text Async/public/favicon.ico b/How to/Find Text Async/public/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/How to/Find Text Async/public/favicon.ico differ diff --git a/How to/Find Text Async/public/index.html b/How to/Find Text Async/public/index.html new file mode 100644 index 0000000..661d3ff --- /dev/null +++ b/How to/Find Text Async/public/index.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html lang=""> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width,initial-scale=1.0"> + <link rel="icon" href="<%= BASE_URL %>favicon.ico"> + <title><%= htmlWebpackPlugin.options.title %></title> + </head> + <body> + <noscript> + <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> + </noscript> + <br><br><br> + <div id="app"></div> + <!-- built files will be auto injected --> + </body> +</html> diff --git a/How to/Find Text Async/src/App.vue b/How to/Find Text Async/src/App.vue new file mode 100644 index 0000000..9d94ba6 --- /dev/null +++ b/How to/Find Text Async/src/App.vue @@ -0,0 +1,62 @@ +<template> + <div id="app"> + <button v-on:click="findText">findText</button> + <button v-on:click="findTexts">findTexts</button> + <ejs-pdfviewer + id="pdfViewer" + ref="pdfviewer" + :documentPath="documentPath" + :resourceUrl="resourceUrl"> + </ejs-pdfviewer> + </div> +</template> + +<script> +import {PdfViewerComponent, Toolbar, Magnification, Navigation, LinkAnnotation, BookmarkView, ThumbnailView, Print, TextSelection, TextSearch, Annotation, FormFields, FormDesigner } from '@syncfusion/ej2-vue-pdfviewer'; + +export default { + name: 'app', + components: { + 'ejs-pdfviewer': PdfViewerComponent, + }, + data() { + return { + documentPath: "https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf", + resourceUrl: "https://cdn.syncfusion.com/ej2/29.1.33/dist/ej2-pdfviewer-lib" + }; + }, + provide: { + PdfViewer: [ + Toolbar, Magnification, Navigation, LinkAnnotation, BookmarkView, + ThumbnailView, Print, TextSelection, TextSearch, Annotation, FormFields, FormDesigner + ] + }, + methods: { + // Search for a single string 'pdf' with a case-insensitive search across all pages + findText() { + const viewer = this.$refs.pdfviewer.ej2Instances; + viewer.textSearchModule.findTextAsync('pdf', false).then(res => { + console.log(res); + }); + }, + // Search for multiple strings ['pdf', 'the'] with a case-insensitive search across all pages + findTexts() { + const viewer = this.$refs.pdfviewer.ej2Instances; + viewer.textSearchModule.findTextAsync(['pdf', 'the'], false).then(res => { + console.log(res); + }); + } + } +}; +</script> + +<style> +@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-vue-pdfviewer/styles/material.css"; +</style> diff --git a/How to/Find Text Async/src/assets/logo.png b/How to/Find Text Async/src/assets/logo.png new file mode 100644 index 0000000..f3d2503 Binary files /dev/null and b/How to/Find Text Async/src/assets/logo.png differ diff --git a/How to/Find Text Async/src/main.js b/How to/Find Text Async/src/main.js new file mode 100644 index 0000000..01433bc --- /dev/null +++ b/How to/Find Text Async/src/main.js @@ -0,0 +1,4 @@ +import { createApp } from 'vue' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/How to/Find Text Async/vue.config.js b/How to/Find Text Async/vue.config.js new file mode 100644 index 0000000..910e297 --- /dev/null +++ b/How to/Find Text Async/vue.config.js @@ -0,0 +1,4 @@ +const { defineConfig } = require('@vue/cli-service') +module.exports = defineConfig({ + transpileDependencies: true +})