Technical FAQs

You must be running PrizmDoc Viewer version 13.10 or above in order to use this integration.

Gain Peace of Mind with GDPR Compliant Document Viewing Tool for Secure Collaboration

These days there is a heightened awareness of the risk of opportunity for a data breach or cyber attack. Whether the spike in attention came from a global pandemic, brink of international war, or an unknown hacker that set its sights on Elon Musk, there is a general consensus that our personal data is at risk at any point through a breach of security.  This becomes more potent for companies as the cost of such insecurity could potentially end its tenure.  According to an IBM Data Breach Report, 2021 had the highest average data breach cost in a 17-year history of $4.24M. Securing data and maintaining an individual’s privacy is a priority for many organizations throughout the world, but following a strict standard has only been attempted by the European Union (EU) thus far.  

The EU has taken this priority a step further than just suggesting companies and organizations increase data protection – since 2018, they’ve mandated and enforced specific requirements through the General Data Protection Regulation (GDPR). Given the broad parameters covered under GDPR compliance, ensuring the standards are met can become a time-consuming, stressful and ongoing issue if not resourced properly.  The parameters go beyond the protection of personal data and go as far as requirements, to prove security measures are set in place.  

Who Needs to Maintain GDPR Compliance?

While often only associated within the European Union, the requirements and legislation of the GDPR extend as far as all “entities who are offering goods or services to anyone residing in the EU (even if those services are provided free of cost).  Any global business either has to become compliant for all of its users/customers or be able to accurately identify EU residents and enable compliant systems to handle only that subset of the customer base.”

GDPR requires companies to know the following as related to personal data:

  • What personal data is being shared 
  • Where it is being shared 
  • How it can be deleted at a moment’s notice if necessary

The GDPR also highly encourages that an organization designates an employee to be the point of contact and in control of the data security processes and systems to maintain compliance.  A first step to having an effective process in place is choosing the right tools with security features to protect data being shared within the company.

Managing Risk through Secure Document Viewing

As risk management becomes an essential part of strategic planning, the importance of IT security and data encryption skyrockets to the top of priorities for most companies. GDPR suggests encryption as a means to manage risk in file sharing but does not outline explicit instruction.  With PrizmDoc™ Viewer, companies gain added data security, aligned with GDPR compliance, in document viewing and sharing without heavy client-side installations or downloads. 

PrizmDoc™ Viewer is created with Multi-Level Data Protection including:

  • 256-bit AES encryption 
    • (Advanced Encryption Standard) is an international standard that ensures data is encrypted/decrypted following this approved standard. It ensures high security and is adopted by the U.S. government and other intelligence organizations across the world.
  • Configurable user permissions add a strong measure of privacy and protection to document content.

A Simple Path to Secure Document Sharing

Remote work or not – collaborating on a project today means sharing documents among many colleagues to finalize a document, project, or presentation. To do that with security in mind, organizations are cobbling together tech stacks to meet their productivity needs along the way, and several different file types can come across their desks in a single day.  

PrizmDoc™ Viewer integrates into your current application to render and display a multitude of file types with high fidelity and speed.  The ease of use features include:

  • Flexible use across many platforms
  • A self-hosted version that resides on any organization’s servers
  • Empowers developers to provide their users with responsive file viewing
  • Search and redaction can be easily turned on/off

PrizmDoc Viewer is also designed to run on all devices with a zero-footprint viewer that makes it easy for employees to work where and how they wish. The white label services give an organization the flexibility to brand and customize while gaining peace of mind in data security.

Open and View an Image Securely the First Time

While documents have a range of formats from Word, PDF, spreadsheets, and more – images are often more of a culprit when it comes to difficulty viewing, let alone being able to download, edit, markup, or save information as a separate file. Workers find themselves quickly downloading a media player just to open the image.  Having multiple solutions in place is not only confusing, but it also contributes to inefficiency and human error which means added risk for images to remain secure. 

As photographs can constitute personal data under the GDPR, this means organizations must be able to quickly and easily remove all images where the individual can be identified.  

With ImageGear, an organization is able to add powerful image processing capabilities that enhance secure collaboration such as:

  • PDF manipulation that includes managing access with digital signatures for added security levels
  • The image processing library offers developers a set of methods for modifying an image including to resize, crop, merge, rotate, and flip.
  • An option to add OCR for document search and data capture support

Getting Started 

To quickly gain peace of mind with secure collaboration, contact us today

How Accusoft’s PrizmDoc Improves Upon PDF.js

The ability to view PDF files has become an essential feature for web-based applications. While dedicated desktop readers are still common, the average user justifiably expects to be able to view documents without switching between applications. Thanks to browser-based PDF libraries like PDF.js, developers can both integrate the viewing features they need and build the next generation of PDF viewing integrations.

What Is PDF.js?

An open-source JavaScript PDF library, PDF.js was originally developed by the Mozilla Foundation in 2011 to serve as the built-in PDF viewer for the Firefox web browser. At the time, web browsers depended upon separate reader applications or browser plug-ins to view PDFs.

Unfortunately, this created several security risks. External plug-ins can contain malicious code or gather data that could endanger privacy. Downloading PDFs for local viewing is also potentially hazardous because it means the file must be removed from a secure application environment.

PDF.js uses Asynchronous JavaScript and XML (Ajax) to render PDFs as an HTML5 <canvas> element directly within a web application. Since it uses JavaScript for rendering, PDF.js is compatible with all modern browsers and doesn’t require any additional plug-ins.

In addition to being integrated into Firefox, the software was also made available as open-source code. This made it possible for independent developers to expand upon the core capabilities of PDF.js in the years since its release.

Should You Build or Buy a PDF.js Viewer?

The open-source availability of the PDF.js library makes it an attractive solution for software teams looking to add native viewing functionality to their applications. As with many open-source frameworks, however, developers may quickly run up against a few complications when building out a viewing solution from scratch.

Out-of-the-box, PDF.js consists of three basic layers:

  • Core Layer: The heart of the JavaScript PDF library, this layer parses and interprets binary instructions from the file itself.
  • Display Layer: This interface handles the actual rendering of the PDF into a <canvas> element.
  • Viewer Layer: The primary viewing interface that allows users to view and interact with the document.

While the core and display layers can handle most documents, PDF.js doesn’t support the full PDF specification and sometimes struggles with rendering lengthy, complex, or image-heavy files. Overall performance is often on the slow side, and the way text is rendered makes text search somewhat unreliable.

More importantly, PDF.js lacks out-of-the-box mobile support. The included viewer doesn’t provide essential mobile UI features like pinch-to-zoom. It also doesn’t respond dynamically to mobile screens to ensure that menus and tools remain usable on all devices.

Any developer looking to add PDF viewing and editing capabilities to their web applications using PDF.js will need to solve these core issues. While features like responsive, mobile-friendly viewing may have been less important when PDF.js first released in 2011, they are considered essential by most users today. Unfortunately, building out these capabilities takes time and resources, which is something that few development teams have in abundance.

Integrating a ready-made viewer that combines the solid foundation of PDF.js with the innovative features users expect allows developers to quickly meet their project needs without pulling attention away from key aspects of their application.

Integrate PDF Solutions with Accusoft

While PDF.js has long served as an adequate open-source PDF viewing solution for web applications, today’s average user simply requires more functionality than PDF.js can provide on its own. For developers who lack the time, resources, or expertise necessary to build those additional features, Accusoft can help.

For over 30 years, Accusoft has helped organizations add essential features like viewing, file conversion, document assembly, and image compression to their applications through an innovative line of SDKs and APIs. 

Our document lifecycle technologies are backed by multiple patents and have been incorporated successfully into a wide range of applications. Accusoft’s dedicated engineers provide ongoing support and work closely with customers to implement their specific use cases, ensuring that their software platform is delivering the best possible experience.

To learn more about PDF viewing and editing solutions from Accusoft, talk to one of our technology experts today.

 

Enterprises are continuously engaged in a process of evaluating their operations to identify opportunities for improvement. When one of the world’s leading mortgage lenders took a closer look at how it was handling documents to process applications, it quickly recognized the need to implement a solution that would allow them to scale capacity and enable faster loan processing. The company’s diversified businesses included banking, capital markets, and insurance, all of which combined to handle more than $1 trillion in mortgages, with nearly $2 billion in new loans each day.

Overview

For many years, the lender had processed applications by hand, entering information from paper and electronic forms into a mortgage processing application. While users had to thumb through paper documents, electronic loan documents were made available through a content management system and a dual-monitor workstation. One screen contained the loan processing application and a list of electronic loan documents. The other screen displayed the selected document and allowed the user to browse its contents. 

In examining their loan purchasing process, the lender discovered that while it took 7-9 days to close a paper document loan, electronic documents closed in just 4-5 days. Unfortunately, the legacy content management system limited scalability and performance, and a grossly underpowered document viewing application further impacted user productivity. The potential revenue gain in expanding their use of electronic documents was enormous – in terms of enhanced efficiency alone. To retain their competitive edge in a challenging market, the lender made the decision to replace their legacy CMS with an enterprise solution.

Challenges

But in order to realize the full productivity potential of the new enterprise CMS system, the lender also needed to upgrade its client document viewing application. The new viewer needed to provide reliable viewing for various types of electronic forms, including scanned documents, faxes, and emails in TIFF, JPEG, and PDF formats. To meet productivity demands, the first page of each document had to be accessed within two seconds. The technology also had to be entirely web-based since no documents could be stored on a client’s desktop or hard drive due to compliance constraints. From a user experience standpoint, the viewing solution also needed to provide scalable thumbnail rendering, accommodate mouse and keyboard navigation with “hot keys,” and be able to meet rigorous load-testing requirements. 

After a thorough review of available options, the lender selected Accusoft’s PrizmDoc® for Java, formerly VirtualViewer®, HTML5 viewing technology to address its complex functionality and security requirements. Critically, PrizmDoc® for Java supported the lender’s required document set of PDF, TIFF, and JPEG, as well as AFP, PCL, MS Office, and many other important business document formats, which provided the growing lender with additional flexibility for future expansion. The viewer also delivered a variety of thumbnail features, including page rotation sync, full panel view, and adjustable size options. PrizmDoc® for Java’s configurable user interface would also make it easy to implement navigation options and hot keys that enhanced productivity. 

The lender had little time to dedicate to the integration with its new enterprise CMS solution, especially since much of the integration time would be taken up by the load-testing process. Fortunately, PrizmDoc® for Java’s intuitive API made it easy to incorporate the product seamlessly while leaving plenty of time for load testing. 

Results

Replacing their legacy content management system and integrating Accusoft’s powerful PrizmDoc® for Java high-speed HTML5 viewer enabled the lender to achieve its desired performance standards. Because PrizmDoc® for Java is completely web-based and requires no software to be installed on the client’s desktop, the lender could easily roll out a scalable solution that met critical security and business continuity objectives within a single, high-speed viewing application. 

The viewer’s server component renders and delivers individual pages to the client quickly and seamlessly, well within the lender’s required sub-two-second access requirements, even when accessing large, multi-page loan documents in various geographical locations. PrizmDoc®for Java now helps to increase the mortgage lender’s productivity by allowing users to access, view, annotate, and manipulate loan documents on the fly without ever touching the client’s local hard drive.

As a result, the lender can now import daily peak loads of more than half a million documents and deliver them to users across the enterprise in under two seconds, improving their overall mortgage processing time by more than 40 percent.

About Accusoft

Founded in 1991, Accusoft is a software development company specializing in content processing, conversion, and automation solutions. From out-of-the-box and configurable applications to APIs built for developers, Accusoft software enables users to solve their most complex workflow challenges and gain insights from content in any format, on any device. Backed by 40 patents, the company’s flagship products, including Dcoubee, PrizmDoc Viewer, and ImageGear, are designed to improve productivity, provide actionable data, and deliver results that matter. The Accusoft team is dedicated to continuous innovation through customer-centric product development, new version release, and a passion for understanding industry trends that drive consumer demand. Visit us at www.accusoft.com. 

Question

Why am I unable to see the full menu bar with annotation and eSignature options?

Answer

These features are part of our Professional version. If you would like to evaluate the full feature set, please submit a request for a trial key here.

Question

I want to load an HTML document in PrizmDoc with UTF-8 encoding. Can this be done automatically in the product?

Answer

Currently, no. We have a parameter for .txt files which does that (detailed here), but this “textFileEncoding” intentionally only works for .txt, not .html files. There is a feature request for this:

https://ideas.accusoft.com/ideas/PDV-I-546

In the meantime, this can be fixed manually by adding charset = “utf-8” to the meta tag of the HTML document. One POC way this might be done programmatically is below in Python 3.7 (need obvious polishing like checking for the tag already existing, multiple “meta” tags, etc):

with open(filename, "r") as file:
    content = file.read()

index = content.find("meta") + len("meta")

new_content = content[:index] + " charset=\"utf-8\" " + content[index:]

with open(filename, "w") as file:
    file.write(new_content)

TAMPA, Fla. –  TEAM Informatics is developing a new product called M-Connect, which leverages Accusoft’s PrizmDoc Viewer. M-Connect extends and enhances the capabilities of the M-Files Intelligent Information Management platform.

As part of M-Connect’s functionality, TEAM Informatics needed to provide the ability for users to access, view, collaborate, and search information within different document formats. They needed to control access to the documents, audit changes, and support a wide range of file formats in a web interface.

“Accusoft has been a true partner through several TEAM product development initiatives,” said Volker Schaberg, Chief Operating Officer at TEAM Informatics. “PrizmDoc Viewer does a great job of delivering this vital viewer functionality.”

TEAM Informatics has been a partner of M-Files for a number of years and has developed several add-ons and includes these in many successful customer deployments globally.

“Accusoft is proud to partner with TEAM Informatics. We’re happy to integrate our HTML5 document viewer into M-Connect to help M-Files users around the world,” comments Megan Brooks, VP of Marketing at Accusoft.

Together, the partners plan to launch M-Connect July 8, 2020.

About TEAM Informatics: 

TEAM is a global System Integrator, specializing in Intelligent Information Management (IIM) systems. Established more than 20 years ago and operating in the USA, UK, Australia and New Zealand, TEAM has deep and broad expertise in IIM, offering Advisory, Implementation and Managed Support Services. TEAM has also built a suite of content services that extend these platforms to produce unique solutions such as automatic redaction, auto-classification, eSignature, and records management. Partnerships with M-Files, Oracle, Syl Search, Elasticsearch, HelloSign and many more bring TEAM to the forefront of an all-in-one enterprise content solution provider. Find out more at www.teamim.com.

About Accusoft: 

Founded in 1991, Accusoft is a software development company specializing in content processing, conversion, and automation solutions. From out-of-the-box and configurable applications to APIs built for developers, Accusoft software enables users to solve their most complex workflow challenges and gain insights from content in any format, on any device. Backed by 40 patents, the company’s flagship products, including OnTask, PrizmDoc™ Viewer, and ImageGear, are designed to improve productivity, provide actionable data, and deliver results that matter. The Accusoft team is dedicated to continuous innovation through customer-centric product development, new version release, and a passion for understanding industry trends that drive consumer demand. Visit us at www.accusoft.com.

Question

I would like to be able to query my PrizmDoc Server for all documents currently in a state of processing. I want to be able to do this to determine if a document is “hanging” during conversion, to determine my system’s efficiency (My RAM and CPU are at X% with ten documents converting), or for other tasks. This is currently possible for individual processes if you know the process ID. Is this possible for all processes?

Answer

The current version of PrizmDoc does not have an API to determine if any file is currently converting on PrizmDoc Server. PrizmDoc provides viewingPackageCreator, contentConverter, redactionCreator, and markupBurner APIs that report the status of a specific process, and whether it is in progress or not. However, it is currently necessary to know a specific processId to obtain that information.

There is an active Feature Request for this item available for viewing here.

Question

By default, in the PrizmDoc Viewer, links are highlighted and underlined in blue. To follow links within a document, the user needs to click the link, wait for the floating popup to appear showing the link’s target URL, and then click that to actually follow the link. Is there a way to make this a single-click process and skip the floating popup?

Answer

The desired one-click functionality can be achieved by modifying the viewer.js source file:

Inspect around line ~9457; you’ll find the following else if block:

    } else if (ev.targetType === "documentHyperlink") {
        hyperlinkMenuHandler(ev, "view");
    }

This line of code executes when the user clicks on a link displayed within the Viewer. The call to hyperlinkMenuHandler is responsible for displaying the floating popup. If you’d like to immediately open the link in a new window/tab instead, replace the contents of the “if else” block with a call to window.open:

    } else if (ev.targetType === "documentHyperlink") {
        window.open(ev.hyperlink.href, '_blank');
    }

This will allow hyperlinks that appear in the Viewer to be followed in a new window/tab with a single-click.

Question

Can I host multiple PrizmDoc viewers on a single page?

Answer

It is possible to host multiple viewers on a single page. The following example leverages Bootstrap’s tab implementation:

<!DOCTYPE html>

<html lang="en">
<head>
    <!-- Metadata -->
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
    <meta name="description" content="" />

    <!-- Title -->
    <title>AccuSample</title>

    <!-- Libraries -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/css/bootstrap.min.css">

    <!-- PrizmCSS -->
    <link rel="stylesheet" href="https://pcc-demos.accusoft.com/static/viewer-latest/css/viewercontrol.css">
    <link rel="stylesheet" href="https://pcc-demos.accusoft.com/static/viewer-latest/css/viewer.css">

    <!-- Inline Stylesheet -->
    <style>
        body {
            overflow-y: hidden;
        }
        #viewer1, #viewer2 {
            height: calc(100vh - 3em);
            width: 100%;
        }
    </style>

</head>
<body>
    <!-- #main -->
    <main class="container">
        <ul class="nav nav-tabs" role="tablist">
            <li class="nav-item">
                <a class="nav-link active" id="viewer1-tab" data-toggle="tab" href="#viewer1">Viewer 1</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" id="viewer2-tab" data-toggle="tab" href="#viewer2">Viewer 2</a>
            </li>
        </ul>

        <div class="tab-content">
            <div class="tab-pane fade show active" id="viewer1" role="tabpanel">
                <div id="viewer1">
                </div>
            </div>
            <div class="tab-pane fade" id="viewer2" role="tabpanel">
                <div id="viewer2">
                </div>
            </div>
        </div>
    </main>

    <!-- Libraries -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.1/umd/popper.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

    <!-- PrizmJS -->
    <script src="https://api.accusoft.com/v1/docstore/viewer/assets/classic/bundle.js"></script>
    <script src="https://pcc-demos.accusoft.com/static/viewer-latest/js/jquery.hotkeys.min.js"></script>
    <script src="https://pcc-demos.accusoft.com/static/viewer-latest/js/viewercontrol.js"></script>
    <script src="https://pcc-demos.accusoft.com/static/viewer-latest/js/viewer.js"></script>

    <!-- Inline Script -->
    <script>
        var viewingSessionId1;
        var viewerControl1;
        var viewingSessionId2;
        var viewerControl2;

        $(document).ready(function() {
            $.ajax({
                "type": "post",
                "url": "https://api.accusoft.com/PAS/V1/ViewingSession",
                "headers": {
                    "acs-api-key": ""
                },
                "data": JSON.stringify({
                    "source": {
                        "type": "url",
                        "url": ""
                    }
                })
            }).done(function(response) {
                viewingSessionId1 = response["viewingSessionId"];

                // Initialize viewer
                viewerControl1 = $("#viewer1").pccViewer({ 
                    documentID: viewingSessionId1,
                    imageHandlerUrl: "https://api.accusoft.com/v2/viewers/proxy",
                    language: languageItems,
                    template: htmlTemplates
                }).viewerControl;
            });

            $.ajax({
                "type": "post",
                "url": "https://api.accusoft.com/PAS/V1/ViewingSession",
                "headers": {
                    "acs-api-key": ""
                },
                "data": JSON.stringify({
                    "source": {
                        "type": "url",
                        "url": ""
                    }
                })
            }).done(function(response) {
                viewingSessionId2 = response["viewingSessionId"];

                // Initialize viewer
                viewerControl2 = $("#viewer2").pccViewer({ 
                    documentID: viewingSessionId2,
                    imageHandlerUrl: "https://api.accusoft.com/v2/viewers/proxy",
                    language: languageItems,
                    template: htmlTemplates
                }).viewerControl;
            });
        });
    </script>
</body>
</html>