Some test text!
Mendix / Guides / Get Started
Welcome to the Apryse installation guide for the WebViewer Component in Mendix. This guide will help you install a free trial of WebViewer into Mendix. It will WebViewer Widget and When your evaluation is done, you can purchase a license key to remove the watermark from all documents and deploy to a production environment.
Your free trial includes unlimited trial usage and support from solution engineers.
Before you begin, make sure you have installed Node.js in your development environment.
Note: If you have downloaded the WebViewer widget from Mendix MarketPlace, you can just download the latest version of the /lib/
folder and copy it into the widgets
folder.
Open Mendix Studio Pro and create a new project by selecting File > New Project from the top menu bar, and choose the Blank app.
After creating a new app or inside of the existing app, navigate to the root directory and create a new folder called CustomWidgets/WebViewer
and checkout the contents from this sample inside.
By default, Mendix projects are stored in:
C:\Users\$your_username\Documents\Mendix\
In the terminal or command line, navigate to CustomWidgets/WebViewer
and run:
npm install
After the command completes, run:
npm run dev
This will contiuously make a build of the Mendix Web Widget with WebViewer as the code changes and copy it into the app widget folder. It will be complete when you see something like this in your terminal:
bundles C:\Users\$your_username\Documents\Mendix\MyApp\CustomWidget\WebViewer\src\WebViewer.tsx → dist/tmp/widgets/pdftron/webviewer/WebViewer.js...
LiveReload enabled
created dist/tmp/widgets/pdftron/webviewer/WebViewer.js in 37.1s
bundles C:\Users\$your_username\Documents\Mendix\MyApp\CustomWidget\WebViewer\src\WebViewer.tsx → dist/tmp/widgets/pdftron/webviewer/WebViewer.mjs...
LiveReload enabled on port 35730
created dist/tmp/widgets/pdftron/webviewer/WebViewer.mjs in 2s
bundles C:\Users\$your_username\Documents\Mendix\MyApp\CustomWidget\WebViewer\src\WebViewer.editorPreview.tsx → dist/tmp/widgets/WebViewer.editorPreview.js...
created dist/tmp/widgets/WebViewer.editorPreview.js in 1.3s
[2022-07-05 13:23:22] waiting for changes...
Next, we must copy the static lib assets required for WebViewer to run. The files are located in CustomWidgets/WebViewer/node_modules/@pdftron/webviewer/public
and must be moved into a location that will be served and publicly accessible.
We can place it into theme/resources
. Create a new folder called lib
and place the contents from node_modules/@pdftron/webviewer/public
there.
theme/resources should have a directory structure like so:
/path/to/your/mendix/app/theme/resources
└───lib
├───core
└───ui
Beginning with Mendix 9, the theme/resources
path is no longer valid. As such, please move the resources to respective folders for web and mobile. For example, for web it will look like this:
/path/to/your/mendix/app/theme/web/resources
└───lib
├───core
└───ui
In your Mendix toolbox, you should see the WebViewer widget near the very bottom.
We can bind WebViewer to an attribute to dynamically change documents. In the following example, we will add widgets to allow users to provide a document URL which make WebViewer load the new document.
WebViewer can now load the URL that is passed through the text box! When the URL and Attribute are used, Attribute takes priority. How does it work on the WebViewer side?
useEffect(() => {if (instance && props.value !== "") {instance.loadDocument(props.value);}
}, [props.value]);
In the code snippet, we are listening for any of the changes in props and then calling loadDocument API to load a new document. You can connect it with your existing flows or pass URLs from your file storage. Make sure you have the CORS configured in case you run into any errors.
You can now customize the widget by checking out other guides we have available. Perform your customizations inside of src/components/PDFViewer.tsx. Do not forget to run npm run dev within the Widget's console or terminal and update the files in your App by pressing F4, or from the top menu bar selecting Project > Synchronize Project Directory.
Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales