AVAILABLE NOW: Spring 2025 Release
By Roger Dunham | 2025 May 23
7 min
Tags
webviewer
Summary: Apryse offers powerful tools for working with documents across web, server, and desktop environments. This article explains the differences between WebViewer (a versatile JavaScript SDK), WebViewer Server (a performance-boosting backend), and PDFViewCtrl (a desktop-focused viewer), helping you choose the right solution for your app development needs.
Apryse is a company with an impressive pedigree – with a history dating back more than 25 years. This has allowed it to build up a formidable level of experience in working with PDFs and other document types.
Apryse SDKs are now available for Server, Web and Mobile (as well as document generation using Fluent).
As a developer you may have tried Googling the phrase “View PDF Apryse” and been a little confused by the range of results that were returned.
In this article, we will look at things with the word “View” in their names – since each one has its own niche within the Apryse ecosystem.
WebViewer is a JavaScript library - the Apryse Web SDK - for viewing, annotating, and editing PDFs, Office Documents, images, videos, and other formats. It is essentially the JavaScript port of the Apryse server SDK and uses WASM to parse/render files in the browser client-side.
Initially, it just offered PDF functionality (including on-the-fly conversion of many types of documents into PDF). Over the last few years, though, it has been expanded to support first PDF-editing, then DOCX viewing and editing, and now spreadsheet viewing (with spreadsheet editing becoming available in a few weeks’ time).
WebViewer isn’t just powerful. It’s also easy to get working with - you just need to create a DOM element within the HTML of your app, then construct a WebViewer and mount it onto that element.
Once instantiated, you can then interact with documents in a huge range of ways. With just a few lines of code you can get access to a wide range of functionality – saving you months of coding work to get to the same point – and allowing you to get to market faster.
The functionality available is far from trivial though – for example you can use WebViewer as a “one-stop shop” to create a workflow where users can generate documents from templates, edit them, then digitally sign them using a certificate. That’s way better than needing to have licenses from multiple vendors to achieve the same results.
Figure 1 - WebViewer offers a wealth of document processing functionality.
It is a truly awesome piece of technology.
The user interface that people work with when using WebViewer is often thought of as just being a part of WebViewer, but in fact it is an entirely separate component.
While a default UI is shipped with WebViewer, you could create something else entirely to do that. We’ll look at how to do that in a moment.
First though, let’s look at the default WebViewer UI. It’s the essential and intuitive visual component that provides the link between the functionality of the Apryse Web SDK and the user. Furthermore, the default WebViewer UI is WCAG2.1 AA compliant, so if your app is used in locations where accessibility is a requirement (for example most of Europe from 28th June 2025) then it’s an ideal solution for you.
Figure 2 - The Default WCAG2.1 compliant WebViewer UI.
It is also extremely customizable - with a “Modular UI” that allows you to quickly and simply change the appearance of the UI with very little code.
Figure 3 - A modified version of WebViewer UI - two lines of code and a config file and you can change the look and feel entirely.
While the default UI is hugely powerful, if you need something entirely new then we still have your back. WebViewer UI is an open source user interface – so you can fork the code if you wish and make whatever additional changes you require. You have complete control over the appearance of the UI.
WebViewer offers a vast range of functionality straight out of the box. However, handling some formats (e.g. CAD files) is not directly supported. Furthermore, complex documents that require extensive processing might result in slow rendering on low-end mobile devices.
To work around this, WebViewer Server is available to offer a better user experience. Internally it uses Java code running on an Apache Tomcat server to handle requests from WebViewer to the Apryse SDK. Since it can be installed on a powerful server machine, it allows complex processing to be performed efficiently, with the resulting document being returned to WebViewer for display.
Furthermore, you can even set up load balancing to share WebViewer server requests over multiple instances - offering scalable, responsive viewing compatibility to your users. Ideal when you have developed a runaway successful app!
Figure 4 - WebViewer displaying a CAD drawing after it has been preprocessed by WebViewer Server.
WebViewer Server is easy to set up – you can deploy it on your own Tomcat server to AWS or Azure, or else use the prebuilt Linux based Docker container on any system that supports Docker.
While WebViewer Server is easy to use, you may decide that you want to create your own custom server that acts as an interface between WebViewer and the Apryse SDK. This gives you complete control over how your data is handled.
It’s beyond the scope of this article, so check out how to set up a custom server for WebViewer.
The final part of the Apryse ecosystem that includes the word ‘View” is the “PDF View Control”. Unlike the other things that we have looked at, this is not targeted at Web based solutions - instead it is aimed at desktop apps.
The Apryse server SDK is normally thought of as just a system that offers support for document processing. It certainly does that - offering a huge range of functionality: editing, document manipulation (splitting, merging, page deletion and insertion, page rotation and so on), data extraction, and document generation from templates, to name just a few.
The SDK does more than just work with documents though – it also offers a mechanism via the PDFViewCtrl that allows PDFs to be viewed directly within a C++ or .NET desktop app, without the need to render in a browser.
Using PDFViewCtrl is one way of quickly adding support for PDF viewing (and annotation!) into a desktop app.
Figure 5 - The WPF example using PDFViewCtrl. A great solution for adding PDF viewing to an existing desktop application.
Note that PDFViewCtrl is only available in some SDK downloads. It is not available for .NET core, but it is available for .NET 4.5.1 and onwards. It is also available for C++, but only within a dedicated (not the standard C++) download. Please contact the support team via our Discord channel if you need access to that download.
If you need to add PDF viewing functionality to a desktop app, then PDFViewCtrl is one way to do so. However, you might also want to look at using WebViewer. While WebViewer is usually considered to be just for Web, it can be embedded within an Electron or Tauri app to offer a cross-platform desktop solution.
In addition to being able to work with PDFs (which PDFViewCtrl offers), you will also then be able to view and edit docx files, and view the contents of Spreadsheet cells, and their formulas.
Figure 6 - WebViewer running within a Tauri Desktop App. In this example, offering cross-platform Spreadsheet support.
We started this article with a Google search about “Viewing” PDFs.
But we have seen that the Apryse Web and Server SDKs offer much more functionality than just “Viewing”. We’ve only scratched the surface in this article, so check out the wealth of documentation available on the Apryse website.
But why not get yourself a trial license key and try things for yourself? If you have any questions, then please reach out to us on our Discord channel.
And, finally, next time you’re entering a query into Google, you might like to try “how can the Apryse SDK save me money when working with documents?” We have some great answers.
Tags
webviewer
Roger Dunham
Share this post
PRODUCTS
Platform Integrations
End User Applications
Popular Content