Isaac Maw
Technical Content Creator
Published March 11, 2026
Updated March 11, 2026
4 min
Isaac Maw
Technical Content Creator

Summary: With the Apryse Server SDK, you can build powerful PDF viewing capabilities directly into your C++ Windows application with no external dependencies. In this article, we explore key considerations, important features and how to get started, including C++ sample code.
Building PDF viewing capability directly into your C++ application with an SDK allows full control over your data, with no external dependencies. In addition, Apryse SDK offers full UI customizability, allowing the PDF viewer experience to fit seamlessly into your brand and application styling.

Compared to API services, SDKs offer greater data security and privacy, more consistent performance and more licensing options to fit your needs.
The Apryse SDK comes with a powerful high-level class called PDFViewCtrl that allows users to easily display PDF documents in their application. This class wraps around all the document processing lower-level details that are required when displaying a PDF document.
Interested in other approaches? Check out WebViewer, WebViewer Server, and PDFViewCtrl – What’s the Difference?
Unlike a text file which contains machine-readable text data (such as ASCII, for example) a PDF document is designed for display and to be readable by humans, not machines. Under the hood, a PDF contains cos objects.
In many ways, cos is to PDF what XML is to SVG (Scalable Vector Graphics). The cos object system provides the low-level object types and file structure used in PDF files. PDF documents are graphs of cos objects. Cos objects can represent document components such as bookmarks, pages, fonts, and annotations, etc.
To display a PDF document, PDFviewCtrl handles a number of viewing operations including rendering, caching, high level zoom rendering and layout modes.
Viewing represents reading a document and displaying it as the author intended. Through the process of rasterization, it can take document data and convert it into pixels that come together to be rendered on a display.
To find out more about how developers can control rendering, caching and layout modes, visit the PDFViewCtrl Methods page in the Apryse API documentation. If you have any questions, you can chat with us on Discord.
For PDF Viewing, Apryse SDK offers the following benefits:
In addition to these included features, you can extend your document capabilities with other features of the Server SDK, such as PDF editing, conversion, annotations and redaction. Remember, your trial key includes access to all SDK add-ons. Visit the capabilities page to learn more.
Handling large files can be a laggy, buggy mess unless your PDF viewer solution has the features to handle them. Apryse SDK uses streaming, memory-sensible techniques, structural parsing, and infrastructure tuning for optimal performance. The Server SDK also includes display-list caching, speeding up viewing of complex documents
Check out our Showcase to see how Apryse SDK handles large files.
With sensitive documents in play, security compliance is an important consideration when choosing a PDF viewer SDK. Apryse provides document security features such as permissions, encryption, and secure digital signatures. In addition, Apryse is SOC2 Type II certified, so you can trust that Apryse continually safeguards our SDKs against cybersecurity vulnerabilities, meeting global standards.
To get started with Apryse SDK for PDF viewing, you’ll need to install the Apryse Server SDK. Follow the instructions in our documentation to get your trial key, download the package for Windows, and initialize the SDK in your application.
PDFViewCtrl is included in the core Server SDK, and doesn’t require additional modules.
A more detailed, full sample code for PDFViewCTRL is available here: https://docs.apryse.com/core/samples/pdfviewsimpletest
Apryse Server SDK offers the robust, powerful tools you need to enable not only PDF viewing, but even more document processing capabilities to scale your application, including PDF editing, Office viewing and editing, conversion, document generation and more. Visit our capabilities page to learn what else the Server SDK can do, and contact us or join our discord channel if you have any questions.
Q: What's the best PDF Viewer for confidential and sensitive data?
A: Because an SDK adds functionality to your application with no external dependencies, it's preferable from a security and privacy perspective, especially compared to API services where your documents go to a third-party server. In addition, Apryse SDK offers document security capabilities such as encryption, password protection and permissions control.
Q: Does Apryse SDK support viewing other file types besides PDF?
A: Yes, Apryse SDK supports viewing of DOCX, Spreadsheets, and over 100+ file formats. Visit the documentation for the latest list.
Q: What about PDF Viewing for web apps?
A: For web applications, check out WebViewer, the JavaScript document SDK that runs inside all major browsers.
// define pointer for view controller
std::auto_ptr<PDF::PDFViewCtrl> view;
// create a view controller,
// passing in the platform specific window handle and the current HINSTANCE for windows
view = std::auto_ptr<pdftron::PDF::PDFViewCtrl>(new pdftron::PDF::PDFViewCtrl(parent_hwnd, hinstance));
// create a doc instance
std::auto_ptr<PDF::PDFDoc> doc(new PDF::PDFDoc(filename));
// set doc to the view
view->SetDoc(*doc);