Technical FAQs

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>
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.

TOTVS Fluig, a leading business management systems provider, improved document viewing by integrating Accusoft’s PrizmDoc solution, addressing challenges with Microsoft Office files. PrizmDoc offered advanced features like text search and annotation. Transitioning to an Accusoft cloud environment ensured scalability and compliance. With PrizmDoc, TOTVS Fluig efficiently handles millions of viewing requests, focusing on core products while relying on Accusoft. Their partnership promises future growth and innovation.

Automated data capture tools are an essential feature of today’s business applications. Without the ability to quickly extract information from incoming forms and documents, organizations will struggle to keep their records, databases, and customer-facing software up-to-date. While software SDKs like Accusoft’s SmartZone can deliver powerful optical character recognition (OCR) and intelligent character recognition (ICR) to help applications accurately capture the information they need, these tools were not designed to operate in isolation. To get the best performance out of them, they need to be incorporated into a comprehensive and well-designed forms processing workflow.

Building an Efficient and Effective Forms Processing Workflow

Although data capture is often the primary objective of forms processing, a number of elements need to be in place for an application to be able to deploy SmartZone’s powerful OCR/ICR functionality. The first step involves the creation of form templates that can be used both for identifying incoming scanned forms and for defining field regions on the page from which data can be extracted. Building this library of templates provides a road map of sorts for the recognition process.

After form images are acquired, either from pre-existing digital documents or newly scanned images, they may need to be enhanced or cleaned up to ensure the best recognition results. Operations such as binarization, despeckling, deskewing, and line removal can all improve the data capture process, especially in the case of scanned documents. Older documents frequently include a great deal of image noise when scanned into digital format, which can make it difficult for an OCR/ICR engine to properly segment and read characters cleanly.

Once a form image has undergone enhancement, it can be matched and aligned with the correct template to ensure that the SmartZone recognition engine will be able to obtain a clean field clip. Scanned images can be overlaid via an alignment algorithm that performs minor adjustments to match it exactly with the correct template. This step is crucial because the data capture process is set up to read the field areas identified by the template rather than recalibrating for each form. If the alignment is off, the engine will not get a clean read of the characters, which could result in inaccurate recognition results.

After the form is identified and aligned, additional enhancement and cleanup operations can be performed on the specific areas of the form that contain information to be extracted. This typically means individual field areas where text or other characters have been entered. The locations to be cleaned up can be designated during the template creation process when data extraction zones are defined. In some instances, a processing workflow may skip the initial full-page enhancement and instead only perform clean-up on areas where data capture will be carried out. This approach is often more efficient from a processing standpoint, especially when targeted, zonal recognition is being applied.

Form image dropout can also be performed at this stage, which involves the removal of image content like signature lines, text field boxes, comb lines, or other extraneous guiding content. Here again, proper form alignment is crucial. If the form is slightly “off” from the template, valuable character content could be removed, making accurate recognition much more difficult. Good form dropout tools should also be able to reconstruct characters that lose pixel data during the dropout process, which is common for characters that have an element that overlaps form lines (such as the lower half of a “j” or a “y,” which might otherwise be read as an “i” or a “v” if not repaired prior to recognition).

SmartZone’s Role in the Recognition Phase of Application Workflows

After a form is acquired, enhanced, identified, and aligned, it can be passed along to the next stage of the workflow for text recognition using SmartZone OCR/ICR. There are a few options that can be selected at this point to help improve recognition accuracy and faster data capture performance.

1. Select Character Sets

SmartZone supports a wide variety of languages and alphanumeric character sets. Realistically, only a few of these sets will need to be used at any one time. Selecting only the sets needed for a particular form will improve recognition accuracy and speed. For instance, there’s no need to have support of Cyrillic languages (like Russian or Greek) enabled if all of the forms being processed are in English.

2. Designate Field Types

SmartZone can designate the expected format of text found in specific fields on a template. Rather than reading each field out of context and extracting the contents without knowing whether or not it’s been filled in correctly, field types can be set to values such as date, email, currency, phone number, or Social Security Number. Regular expressions can also be established for more customizable results. If the character content of the field doesn’t match the designated field type, SmartZone will immediately return an exception and move on rather than trying to recognize and extract the incorrect data. Setting this parameter can greatly improve both accuracy and speed.

3. Set Minimum Character Confidence

Every character SmartZone reads is assigned a confidence value, which reflects the OCR/ICR engine’s assessment of its recognition accuracy. A lower value means that there is a higher likelihood that a character was incorrectly identified. Setting a minimum character confidence value ensures that any character result below that value will be rejected and replaced with a designated rejection character. In practice, this control is used to determine which characters require a manual review following recognition. Setting a high confidence value will ensure higher recognition accuracy, but will likely lead to more exceptions that need to be reviewed by a human.

SmartZone Recognition Results

After character recognition is performed, results can be returned for the character, text line, or text block level. This data can then be passed along to the next stage of a business workflow or used to populate databases connected to the application. Operation instructions, identification, and image areas defined can be transferred to other components for additional forms processing or stored in memory for later access using SmartZone’s Read From Stream or Write From Stream functions.

Getting Started with SmartZone

With support for both OCR and ICR data capture, Accusoft’s SmartZone SDK can serve a vital role in high-performance forms processing applications. The powerful OCR engine can recognize multiple languages, including select Asian, African, and Indian characters. Capable of performing full page or zonal text extraction, SmartZone also includes a variety of customization features that can improve accuracy and recognition speed. Learn more about this versatile SDK’s features and use cases in our product fact sheet.

 

PII Detection and Redaction

The landscape of legal content management is undergoing a transformative change, thanks to advancements in artificial intelligence (AI). Legal entities, burdened by the immense volumes of sensitive data they handle daily, are finding respite in AI-driven solutions for managing Personally Identifiable Information (PII).

By leveraging the innovative benefits of AI-enabled integrations, Independent Software Vendors (ISVs) can improve the case management, eDiscovery, and practice management software solutions they provide to law firms by securely identifying and redacting PII more efficiently than ever.

Navigating the Data Deluge with AI

Legal practices are inundated with vast quantities of PII, encompassing sensitive documents, client records, and case-related information. The manual management and protection of such extensive and intricate data pose a significant challenge.

AI technology is revolutionizing this process by automating the identification and categorization of PII within large datasets. This minimizes the risk of oversight or human error. Machine learning algorithms, integral to these AI systems, adapt to evolving data structures, ensuring comprehensive and up-to-date protection.

Ensuring Compliance with AI

Software applications used in the legal sector are tightly bound by various data protection regulations. Ensuring adherence to these complex and ever-evolving regulations is a daunting task for legal professionals.

AI solutions are adept at automating compliance checks, significantly reducing the burden on legal practices. These tools assist in adhering to the specific requirements of different data protection regulations, minimizing the risk of legal repercussions.

Revolutionizing Document Review and Redaction with AI

The manual review and redaction of sensitive information in legal documents are not only error-prone but also extremely time-consuming.

AI-powered tools are transforming this landscape by automatically identifying and redacting PII. This not only enhances accuracy and efficiency but also maintains the confidentiality of sensitive information.

Introducing PrizmDoc’s AI Capabilities

As we look towards the future, it’s exciting to introduce PrizmDoc’s new AI capabilities in identifying and flagging PII within documents. PrizmDoc’s AI stands out in its ability to identify sensitive or non-compliant content. Its functionality, accessible via APIs, enables the creation of workflow automations that are both efficient and secure.

Moreover, PrizmDoc offers user interface tools that extend AI functionality to end-users, making it more accessible and practical in everyday legal practice.

The Multifold Benefits of PrizmDoc AI for PII

Incorporating PrizmDoc’s AI capabilities into legal content management systems can lead to a multitude of benefits:

  • Reduced bottlenecks and faster decision-making processes.
  • Improved efficiency in handling and managing legal documents.
  • Enhanced data security, protecting sensitive client information.
  • Improved compliance with regulatory standards.
  • Overall enhancement in the quality and reliability of legal services.

The integration of AI in legal content management, especially with tools like PrizmDoc, is not just a step toward innovation; it’s a leap toward a more efficient, secure, and compliant legal practice. As technology continues to evolve, it’s clear that AI will play a crucial role in shaping the future of legal data management.

Emerging legal technology
 

Ongoing Legal Digital Transformation

There are many challenges facing the legal industry that legal tech and new emerging legal technology can help solve, but getting firms to adopt new technology to address these challenges can be a hurdle.  But the most recent challenge within the eDiscovery process is compounding them all. 

The Arrival of New eDiscovery Challenges

The change to a remote/hybrid work environment starting in 2020 during the worldwide COVID pandemic transformed the working world. Even while some companies have returned to the physical workspace, hybrid and fully remote working conditions continue to exist. This means that the collaborative working social platforms and mobile apps we all used to communicate and work with (Teams, Slack, Zoom, Webex, WhatsApp, Google Meet, etc.) are here to stay. 

Regardless of whether employees are in-office, hybrid, or working remotely, using these collaborative working social platforms has become the new norm. This has had profound effects on legal firms performing eDiscovery, most of whom still depend on tools and review processes designed for standard digital documents (such as .doc, .xlxs, .ppt, etc), paper documents, and email. The process of collecting, viewing, searching, redacting, and collaborating across traditional documents and emails has pivoted, and firms are responsible for including the digitized content from these collaborative working social platforms in their eDiscovery.

Compounding the Problem

Processing this new collaborative working social content is a big enough challenge on its own. Unfortunately, many in the legal industry weren’t fully optimized with their digital transformation by adopting previously available legal tech. While some traditional eDiscovery tools have reached maturity and are being utilized by firms, many slower-to-adopt firms are still fighting internally to have legal tech implemented.

How can firms (both early adopters and those still in the digital transformation process) prepare for eDiscovery across these new platforms filled with chat streams, emojis, and video recordings?

Enter Third-Party Software Integrations

Legal tech independent software vendors (ISVs) can be assured that there is technology available that can support their eDiscovery across these collaborative working social platforms. But better still, they don’t need to build a solution from scratch. 

Readily available and easy to adopt, third-party software integrations allow ISVs to add the capabilities they need without disrupting development timelines or building features from scratch. The ability to view, search, annotate, and redact content within documents securely inside an existing application without sacrificing everyday functionality is powerful.

Take on Your eDiscovery Challenges with Accusoft

Accusoft software integrations help legal tech ISVs build a more productive process for case review and eDiscovery. With unique technology that enables easy digital document processing, manual processes like search and redaction are no longer labor-intensive. Accusoft’s digital document lifecycle technologies streamline collaboration and information-sharing while keeping files secure and original metadata intact.

Looking specifically to address the new challenges of processing new collaborative working platform content within your eDiscovery process? Accusoft’s solutions can not only view these new collaborative platform transcript file types (including JSON, VTT, DOCX) but also search, redact, and offer secure collaboration directly inside your application.

To learn more about how Accusoft integrations can support your legal digital transformation and eDiscovery challenges, talk to one of our technology experts today.

_ _ _

For more information on Accusoft’s software integrations for eDiscovery, case, and practice management applications, visit our Legal industries page.

 

Question

When printing in PrizmDoc, the bottom of my document is being cut off. Why is this happening?

When I download the document as PDF, I do not lose parts of the document. However, if I print the document to PDF, I lose some data off the very bottom (maybe an inch or so).

Answer

In PrizmDoc, the page is to "fit to width" onto the paper by design. The bottom of the page will be cut off in cases where the length of the page extends further than the length of the paper. If you’re printing with Letter size paper (the default), it presumes a document that measures 8.50 by 11.00 inches. Suppose your document measures 8.50 x 13.00 inches. That additional 2 inches will be cut off during printing. This is why you may lose parts of the document while printing, but not if you download the document since it’s downloading the document as-is.  

To prevent this from happening, select a paper size large enough for your document (in the viewer print dialog and the system print dialog). Using the previous 8.50 x 13.00 inch example, you can select "Legal" size paper, which measures 8.50 x 14.00 inches, and would be long enough to support that document.

You could also modify your viewer to add a custom paper size if this fits your use case. Below is some sample code demonstrating this in our Viewer sample. You would need to enter your own custom paper sizes.

https://www.accusoft.com/code-examples/printing-custom-paper-sizes/

Changes to printTemplate.html:

    /*custom */
    .portrait .custom.page { width: 11in; height: 11in; margin: 0 auto !important; }
    .portrait .custom.pageIE { width: 9.5in; height: 9.5in; margin: 0 auto !important; }
    .portrait .custom.pageSafari { width: 8.9in; height: 8.9in; margin: 0 auto !important; }
    .portrait .custom.nomargins { width: 11in !important; height: 11in !important; }
    /* even without margins, Safari enforces the printer's non-printable area */
    .portrait .custom.nomargins.pageSafari { width: 9.32in !important; height: 9.32in !important; }
    
    .landscape .custom.page { height: 11in; width: 11in; margin: 0 auto !important; }
    .landscape .custom.pageIE { height: 9.05in; width: 9.05in; margin: 0 auto !important; }
    .landscape .custom.pageSafari { height: 8.4in; width: 8.4in; margin: 0 auto !important; }
    .landscape .custom.nomargins { height: 11in !important; width: 11in !important; }
    .landscape .custom.nomargins.pageSafari { height: 9.32in !important; width: 9.32in !important; }
    /*custom end*/

Changes to printOverlayTemplate.html (last line "Custom" is the only change):

    <select data-pcc-select="paperSize" class="pcc-print-select">
        <!-- US and International-->
        <option value="letter"><%= paperSizes.letter %></option>
        <option value="legal"><%= paperSizes.legal %></option>
        <option value="tabloid"><%= paperSizes.tabloid %></option>
        <option value="foolscap"><%= paperSizes.foolscap %></option>
        <!-- A formats-->
        <option value="a3"><%= paperSizes.a3 %></option>
        <option value="a4"><%= paperSizes.a4 %></option>
        <option value="a5"><%= paperSizes.a5 %></option>
        <!-- Architectural-->
        <option value="a6"><%= paperSizes.a6 %></option>
        <option value="a"><%= paperSizes.a %></option>
        <option value="b"><%= paperSizes.b %></option>
        <option value="c"><%= paperSizes.c %></option>
        <option value="d"><%= paperSizes.d %></option>
        <option value="e"><%= paperSizes.e %></option>
        <option value="e1"><%= paperSizes.e1 %></option>
            
        <option value="custom">Custom</option>
    </select>

Additionally, if you would like to change the default selected page size you can add selected to it as follows:

<option value=\"a4\" selected><%= paperSizes.a4 %></option>
Question

I know the coordinates and dimensions of the content I would like to highlight, but the highlight annotation only works on text. Is there a way to create an annotation that highlights a specific area of a document?

Answer

The best way to do this would be to create a yellow rectangle annotation with 50% opacity (these are the same default values used by the text highlight annotation). The code below demonstrates how to do this in the viewer:

//Create a new rectangle annotation
var rectangleMark = viewer.viewerControl.addMark(1,  PCCViewer.Mark.Type.RectangleAnnotation);
//Set the coordinates and dimensions of the annotation
rectangleMark.setRectangle({x: 100, y:  100,  width : 200, height: 200});
//Set fillcolor to yellow
rectangleMark.setFillColor("#FFFF00");
//Remove the border
rectangleMark.setBorderColor("transparent");
//Set opacity to 50%
rectangleMark.setOpacity(127);


TAMPA, Fla. –  Accusoft is proud to announce its new VP of Sales, Greg Barker. This leadership shift in the sales team will empower Accusoft to focus on new growth strategies. 

As Vice President of Sales, Greg will lead Accusoft’s sales, support, and customer success teams, while driving strong top and bottom line impacts across the organization. 

“As a growing company in Tampa Bay, we need a sales leader that can set a growth strategy to propel us forward,” says Jack Berlin, CEO of Accusoft. “We are excited to announce that Greg Barker will now be leading the sales team with a new forward-thinking strategy that strengthens our approach and empowers our sales professionals to excel.”

Greg Barker has held executive roles at Greenway Health, Kelly Services, and most notably, Oracle. As Vice President of Oracle’s Industry Business Unit, Greg was responsible for Oracle’s go-to-market strategy and mergers-and-acquisitions across their entire product portfolio. Prior to joining Oracle, Greg served in the United States Air Force for 10 years, where he ended his military career working in the intelligence community at the Pentagon. Greg holds a BS in Computer and Information Sciences from the University of Maryland.

To learn more about Accusoft’s management team, please visit our website at accusoft.com/management-team.

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.