Technical FAQs

Question

Why, when I tried to run the SLU, do I get a ” Component ‘COMDLG32.OCX’ or one of its dependences not correctly registered” error?

Answer

This error happens if a particular deployment machine doesn’t have the COMDLG32.OCX file registered. To fix this: 1.   Install the comdlg.ocx dependency, if not available on the target machine. If the comdlg.ocx is not present on the system than it will need to be obtained from a system that has it (it should be available on your development machine in the directory mentioned in step 2). 2.   Place the file in the C:\Windows\System32 folder. (C:\Windows\SysWOW64 on a 64 bit machine) 3.   Register the DLL via the regsvr32.exe command. 4.   You should see a successful message and then be able to proceed with the licensing installation.

PrizmDoc Viewer customizing interface

As the software industry continues to transition to web-based applications and Software-as-a-Service (SaaS) solutions, developers are prioritizing flexibility more than ever. Building a unique and compelling customer experience frequently requires versatile software toolkits that are easy to customize and adapt to changing requirements.  Customizing the PrizmDoc Viewer interface makes this simple.

Accusoft’s PrizmDoc Viewer is an HTML5 viewing integration that not only provides an extensive array of viewing, conversion, and annotation features, but was also designed with customization in mind. Creative developers have several options at their disposal when they deploy this innovative solution within their applications.

PrizmDoc Viewer Interface Basics

Once PrizmDoc Viewer is integrated into an application, developers can deploy the pre-built user interface to start viewing documents and image files. Out of the box, the viewer consists of a number of components:

PrizmDoc Viewer customizing interface

  • Tab Navigation: PrizmDoc Viewer can perform a variety of different functions, such as basic viewing, annotation, and redaction. The Tab Navigation indicates which function is currently active.
  • Tab Pane: Each tabset selected in the Navigation features a specific set of tools. They can be configured to display either vertically or horizontally.
  • Status Bar: This component indicates the current page being viewed. By selecting a different page number, a user can quickly jump to another document page.
  • Dialog: Extended options and settings are displayed in this menu area.
  • Context Menu: Used primarily for markups, this menu allows users to change annotation properties.
  • Page List: The core element of the viewer control, this component is where the document or image itself is rendered for viewing.

Any of these tabs can be disabled easily by altering the configuration parameters. For example, to disable the navigation tab for redaction, the following code could be applied:

var pluginOptions = {
    uiElements: {
        redactTab: false
    }
};

Customizing the Viewer

While developers can simply deploy the viewer interface as-is, PrizmDoc Viewer provides extensive customization features that allow them to change almost every aspect of the viewing experience. The viewer’s functionality itself is built upon the Viewer API, so changing different elements of the viewing interface doesn’t alter the rendering performance or other core PrizmDoc Viewer functionality.

Here are just a few quick customization options that can be added to the viewer with minimal effort:

Custom Buttons

Adding a customized button that performs a specific task can greatly improve the viewer’s functionality for end users. Developers can quickly add custom buttons with a bit of JavaScript and uploading an SVG icon for display.

Keyboard Shortcuts

The PrizmDoc Viewer interface already supports a variety of keyboard shortcuts that allow users to easily scroll up and down the page, adjust the zoom level, and delete selected marks. Developers can alter the existing key bindings to enable new shortcuts or create their own.

Customize Style

In order to provide a consistent brand experience, many developers choose to alter the look and feel of the viewer to match the rest of their application. PrizmDoc Viewer provides extensive controls that allow them to alter image resources, colors, toolbar sizing, icons, and more.

Reorganize Menus

All of the menus and navigation elements can be adjusted based on application needs. Developers can add or remove different viewer templates that feature unique elements for specific use cases. Each template could use different styles and feature custom tabs or markup tools.

Create/Customize Mouse Tools

Unique mouse tools can be created along with a custom button within the UI, although PrizmDoc Viewer comes with a variety of predefined mouse tools that can be deployed and customized. Creating a new mouse tool is a quick two-step process that involves some JavaScript code that first defines the tool and then updates the UI to add a button for it (usually in the annotation tab pane).

Step 1

// Create the new mouse tool. var myTool = PCCViewer.MouseTools.createMouseTool(
                 "PinkLine",
                 PCCViewer.MouseTool.Type.LineAnnotation);

// Configure the tool to draw a pink (#FF69B4) line that is 10 pixel thick myTool.getTemplateMark()
    .setColor("#FF69B4")
    .setThickness(10);

Step 2

<!-- The following markup will create a button that enables use
     of the mouse tool named "PinkLine".

     The custom attributes that are used:
      \* data-pcc-mouse-tool="PinkLine" - specifies that the button selects the mouse tool named "MyLineTool"
      \* data-pcc-context-menu="false" - specifies that a context menu is not shown for this mouse tool
     -->
<button>
    data-pcc-mouse-tool="PinkLine"
    data-pcc-context-menu="false"
    class\="pcc-icon pcc-icon-annotate-line"
    title="Pink Line Tool"\></button>

Build a Customized UI

Developers may decide that the default PrizmDoc Viewer UI isn’t quite right for their application needs. In such cases, they can easily use the available components to build a customized viewing UI that is better suited to their application and end users. Creating a custom interface allows developers to strategically place menu and button elements to improve application workflows and conform to their own user experience priorities.

Embrace the Power of Flexibility

Turning to a third-party solution for an application’s viewing and imaging needs doesn’t mean a developer has to give up control over their application’s user experience. Accusoft’s PrizmDoc Viewer delivers powerful viewing, conversion, and annotation features in a fully customizable package that can be adapted to a wide range of application needs. Developers can use the available tools to craft a unique viewing experience from the ground up or utilize the built-in viewing interface to get their solution up and running quickly while putting off customization until later in their development cycle.

PrizmDoc Viewer’s versatile HTML5 rendering technology makes it an ideal integration for web-based applications that need the flexibility to adapt to changing user expectations. Thanks to those customization options, the application a developer brings to market can evolve over time to support a wide range of additional features throughout the product’s lifecycle. To experience the customizable power of PrizmDoc Viewer firsthand, download your free trial today.

Printers, scanners, and other imaging devices have long been a source of headaches and frustration for developers and users alike. All too often, multiple software tools are required to connect an application to a device and acquire image files from them. This not only slows down workflows, but also creates opportunities for human error. Files can easily be misplaced or imported using the wrong parameters under these conditions.

Thanks to ImageGear’s TWAIN scanning support, however, developers can ensure that their application makes acquiring images from compatible devices both straightforward and mistake free. 

What Is TWAIN?

Developed in 1992 by a consortium of software developers and hardware manufacturers, the TWAIN standard is a standard software protocol and API that facilitates communication between imaging devices and software applications running on a computer. The word itself refers to a famous line in the Rudyard Kipling poem “The Ballad of East and West” that reads “never the twain shall meet.” Although sometimes alleged to stand for “Technology Without An Interesting Name,” the term is not actually an acronym despite being capitalized.

The name is well chosen because the TWAIN standard helped to solve the enduring problem of getting imaging devices and computers to connect and send data between one another. Most commonly used for scanners and digital cameras, TWAIN made it possible to request an image file to be imported into an application without having to utilize additional software or input commands using the physical device.

Implementing TWAIN Scanning with ImageGear

As a versatile image processing SDK, ImageGear fully supports the TWAIN specification, which allows developers to support any TWAIN-capable device directly into their applications. In most instances, this will involve adding a “Scan” button or option somewhere in the platform’s interface so that users can quickly and easily instruct their scanner to capture an image and pass it along to the application’s storage or workflow. Developers can also use the integration to adjust device settings directly from their application, such as changing the scanning area, modifying brightness and contrast, or increasing/decreasing dots-per-inch (resolution). 

ImageGear’s TWAIN scanning feature works with three external elements to facilitate image file transfers:

  • The Device: Usually a scanner or digital camera, this is the primary imaging source. The device must be compliant with TWAIN protocol.This is typically indicated by the manufacturer.
  • Data Source: Although ImageGear’s TWAIN scanning features can connect an application to a scanner, the device still needs a software driver that allows it to communicate with the computer’s operating system.
  • Data Source Manager: The TWAIN manager software provides a universal mechanism for managing and using data sources from different device manufacturers. Developed by the TWAIN consortium, it can be downloaded for free and installed wherever the application is running.

(Both the device’s data source driver and TWAIN data source manager should be included with its installation software. They are not provided by the ImageGear SDK).

Acquiring an Image Using TWAIN Scanning

ImageGear can configure an application to gather an image or set of images from a connected device with a few simple steps.

Step 1: Open the Data Source

Developers can set the application to automatically open a default Data Source. This is typically the best choice when only one scanner is available, as is often the case in a small workplace. They can also use the Data Source Manager to provide a list of all available Data Sources and let the user select the one they need.

Step 2: Adjust Settings

ImageGear’s TWAIN scanning features allow image acquisition parameters to be set through the application. Parameters such as page count and image size can be set to a common default, but developers can also give the option to obtain the various capabilities (listed as “ScanCaps”) and display them for users to select from. ImageGear supports a wide range of TWAIN-related capabilities.

Step 3: Acquire Image

After all settings are configured, the image can be scanned and loaded into an ImGearPage Class object. When acquiring a multi-page image, ImGearPages are loaded into an ImGearDocument Class object instead.

How ImageGear TWAIN Scanning Looks in Code

As an example, here’s what the C# code may look like when using ImageGear to help an application import an image from a TWAIN Data Source:

using System;
using ImageGear.Core;
using ImageGear.TWAIN;

public ImGearPage AcquireImage(IntPtr Handle)
{
    ImGearPage igPage = null;
    ImGearTWAIN igTWAIN = new ImGearTWAIN();

    igTWAIN.WindowHandle = Handle;
    igTWAIN.UseUI = true;

    try
    {
        // Open the data source selection dialog
        igTWAIN.OpenSource(String.Empty);

        // Initialize the scanning
        igPage = igTWAIN.AcquireToPage();
    } 

    catch(ImGearException e)
    {
        // Handle the exception ...
    }

    finally
    {
        if(igTWAIN.DataSourceManagerOpen == true)
        {
            igTWAIN.CloseSource();
        }
    }

    return igPage;
}

Expand Your Application’s TWAIN Support with ImageGear

Accusoft’s ImageGear SDK provides comprehensive support for a broad range of TWAIN devices, which makes it easier than ever for developers to control the scanning process directly from their applications. Integrating TWAIN scanning can streamline workflows and significantly improve the software user experience by completely eliminating the need to turn to external programs for image acquisition. ImageGear is fully compatible with multiple generations of the TWAIN standard, including TWAIN v1.6, v1.7, v1.8, v1.9, and v2.4.

In addition to TWAIN scanning support, ImageGear provides powerful image and document processing capabilities that can transform your application workflows. With extensive file conversion and compression features, it’s the best way to quickly integrate content management features into your platform. To get a glimpse of what ImageGear can do for your .NET application, download a free trial today and start building.

PrizmDoc Viewer HTML5

Adding viewing and document conversion capabilities to an application can be a daunting task, especially when a development team is facing resource constraints and a tight schedule. That’s why many developers turn to API-based viewing integrations like Accusoft PrizmDoc Viewer instead of building those features from the ground up. By leveraging the versatile power of HTML5 viewing, they can quickly expand software capabilities without having to rethink the basic framework of their products.

What’s Under the Hood of PrizmDoc Viewer?

To understand how PrizmDoc Viewer goes about rendering documents in a web application, it’s helpful to take a closer look at its underlying architecture. There are two primary components that work in concert with the application’s web server: the HTML5 viewer and the backend.

The HTML5 viewer is integrated to run in the browser, typically via a web page or portal that serves as the front-facing aspect of the application. This is where document content is rendered as SVG elements. Since the viewer uses HTML5 to display content, it isn’t dependent upon any specific word processing software or imaging program.

Most of the heavy lifting is handled by the PrizmDoc Viewer backend, which consists of the PrizmDoc Server and PrizmDoc Application Services (PAS). PrizmDoc Server is the core computing component. It performs the actual conversion process to convert document pages to SVG, but it doesn’t have any permanent storage. Converted content and annotation markups are instead stored in PAS. The PAS component primarily handles long-term storage and hands files off to the server for conversion or processing. 

Critically, PAS also has privileged access to other storage locations used by the application, such as file systems or databases. This allows it to easily retrieve source documents and hand off tasks to the server.

The Role of the Web Application

The web application server sits between the HTML5 viewer component and the backend component. It functions as a reverse proxy that relays requests between the two, passing content requests from the viewer to the backend and then delivering converted SVG content from the backend to the viewer.

PrizmDoc Viewer doesn’t actually work with the source documents in the application’s storage. They remain safely unaltered while the backend generates a converted version for viewing and annotation. The web application typically only makes REST API calls to PAS. Background conversion that doesn’t involve the viewer, however, can be performed by making a direct call to PrizmDoc Server.

Making the HTML5 Magic Happen: Viewing a Document

When the web application has to open a stored document for viewing, each component of PrizmDoc Viewer plays a special role in the process. Everything begins with the web application sending a request to PAS to create a new viewing session. How this session is created depends upon how the backend is deployed. In most cases, it will be self-hosted as part of an on-premises deployment or through PrizmDoc Cloud services.

Once that session is created, PAS generates a new viewing session ID and passes it back to the application. All of this happens before any conversion or viewing begins, but the application can begin rendering to the HTML5 viewer by configuring it to use the viewing session ID. This brings up the viewing UI immediately, which will ultimately save time as the document is prepared.

The web application then uploads a copy of the source document to PAS, which can be in any number of formats supported by PrizmDoc Viewer. As soon as PAS receives the document, it begins handing off pages to PrizmDoc Server for conversion to SVG. Since pages are converted one at a time, PrizmDoc Viewer is able to open and view documents in the browser before the entire file is converted. That means less time is spent waiting around for large documents to be prepared for viewing.

As soon as the HTML5 viewer loads in the browser, it begins proxying requests to PAS through the web application for the first pages of content. Once the converted SVG content is available, PAS hands it back to the web application, which then passes it along to the HTML5 viewer, which displays that content in the browser. Additional pages are delivered as they’re ready, and the viewer may make subsequent requests as the user continues to interact with the document.

While the viewing process involves several steps, it is typically performed so quickly that the end user doesn’t experience any significant delays. Larger documents may take more time to render as SVG content, but even in these cases, PrizmDoc Server’s ability to render and deliver each page to the HTML5 viewer as it becomes available allows users to begin viewing documents within their browser right away.

Enhance Application Viewing Performance with PrizmDoc Viewer

As an API-based HTML5 viewing solution, PrizmDoc Viewer can be integrated into most web-based applications to support a broad range of file formats. Developers can use its annotation, redaction, document comparison, and conversion capabilities to deliver a full range of document management tools within their software platforms rather than having to build them from scratch.

To see how PrizmDoc Viewer will function in your application environment, sign up for a free evaluation trial. We provide ready-to-run Docker images in addition to installers for Windows and Linux. 

 

Seventy-six percent of companies surveyed plan to prioritize machine learning (ML) and artificial intelligence (AI) deployments in 2021. Despite increased uptake, however, there is still a great deal of confusion surrounding these advanced concepts. In order to understand how organizations hope to leverage ML and AI in their technology initiatives, it’s helpful to take a step back and examine how they work and how they differ from each other.

What Is Machine Learning?

Machine learning uses statistics-driven algorithms to find patterns in massive amounts of data. These algorithms are designed to improve over time as they process more data to enable more accurate outputs. Machine learning is widely used to produce predictive recommendations — companies such as Google, Netflix, and Facebook collect data about user behaviors and feed it into machine learning algorithms which then produce targeted search results, movie recommendations, or advertisements. 

The key to machine learning success is data. The more data available to ML algorithms — and the higher-quality this data — the better they’ll be able to identify patterns in current datasets and apply them to new data sources.

Most machine learning methodologies fall under one of two broad categories:

  • Supervised Learning: Developers classify and label data to guide the algorithm’s inputs and outputs to ensure specific patterns are recognized. This method is time and resource intensive because it requires data scientists to capture, control, and curate data sources.
  • Unsupervised Learning: This approach provides ML algorithms with unlabeled and unclassified data and allows them to identify patterns based on unique data characteristics. Developers don’t interfere with the learning and pattern recognition process, instead evaluating the outputs for accuracy and modifying code as needed.

Why Does Machine Learning Matter?

Machine learning helps organizations leverage the massive amounts of data they’ve accumulated. This information is drawn from a variety of sources, including disparate forms and documents, data produced through customer transactions and service calls, and the ongoing operational data produced by staff as they interact with IT resources.

Thanks to both the rapid uptake of cloud computing and availability of large-scale data collection and analysis tools, these data volumes are increasing exponentially. As a result, aggregate assessment is now critical — companies need a way to rapidly and reliably derive patterns from available data, and apply these patterns to predictive action.

This is the evolving role of machine learning. By creating, testing, and deploying ML algorithms capable of rapid pattern analysis and application it’s possible for companies to benefit from this continual data influx rather than being constrained by the bounds of traditional data evaluation. To facilitate this process, many next-generation software tools and services are either equipped with built-in ML frameworks or are capable of interfacing with them.

Key Machine Learning Applications

The applications of machine learning are vast, but they tend to produce the best results when paired with existing processes that supplement human efforts or automate low-value, but labor-intensive, functions in the workplace. In effect, it has the potential to do almost anything a human mind can do, given enough time. 

Improved Data Capture

Capturing data from internal documents and customer-submitted forms can be cumbersome and time-consuming. It can also lead to wasted time and effort if data is incorrectly entered, duplicated, or accidentally deleted. By pairing machine learning tools with forms processing solutions like Accusoft’s FormSuite for Structured Forms, developers can build applications that identify, collect, and capture key data more efficiently and accurately. For example, a robot process automation (RPA) bot can be set up to receive extracted form data from FormSuite and then populate that information into the appropriate fields within an application. This not only accelerates forms processing workflows, but also greatly reduces the risk of data entry error. Properly implemented, automated data capture can act as a springboard for improved data insight and decision-making thanks to improved accuracy and consistency. 

Streamlined Content Creation

By combining machine learning algorithms and data sources with document editing tools, it’s possible to streamline key processes such as the creation of complex, compliance-bound content. One in-practice example is the use of Accusoft’s PrizmDoc Editor within the LegalSifter contract review and creation platform. By pairing its AI technology with PrizmDoc Editor’s document assembly capabilities, LegalSifter was able to quickly locate repetitive clauses and suggest replacements to create an automated contract creation experience for end users. 

What Is AI, and How Does It Relate to Machine Learning?

The terms artificial intelligence and machine learning are closely related and often used interchangeably, but they’re not identical.

Artificial intelligence refers to technologies that are capable of performing tasks like photo recognition or data pattern analysis with similar (or better) outcomes than human beings. Machine learning refers to the creation, testing, and refinement of the algorithms needed to support AI tools. In many ways, then, ML functions as a distinct process that helps make AI possible.

As noted by Toward Data Science, it often helps to think of AI, machine learning, and deep learning like a set of concentric rings. The smallest, inner ring is deep learning, which helps inform the middle ring of machine learning by providing layered neural network structures that improve the process of pattern recognition. The final, outside ring is AI, which depends on both deep and machine learning to deliver real-world results. 

Artificial intelligence tools can be broken down into two basic types:

  • Generalized AI: These tools are capable of solving problems bounded by a clear set of rules. Using the ML algorithms that underpin the larger AI structure, general AI applications can act on stimuli — such as a security alert from an IT network — and respond appropriately by creating and logging reports or looping in human agents. 
  • Narrow AI: These solutions are designed to solve specific, small-scale tasks. Building on the security example from above, a narrow AI application might see tools responding to specific threat events such as DDoS or ransomware attacks by deploying targeted, defensive responses that close active sessions, capture attack data, and prevent future connections from the same IP address. 

In practice, narrow AI tools can outperform their human counterparts in completing specific tasks, but are unable to translate this expertise into applicable action at scale. General tools come closer to mimicking human intelligence but are still a long way from replicating the depth and breadth of human thinking.

Limitations of AI

Much has been made about the potential of AI technologies to take the place of human staff, leading to a generalized sense of worry about the future of these tools at scale. Recent research, however, found that substantial confusion remains around not only the deployment of AI but the definition itself. In fact, one study found that 40 percent of AI startups in Europe were not actually using AI. In some cases, increasing market interest in AI tools encouraged the use of this term to help startups capture attention, in much the same way that rapid cloud adoption spurred the creation of a host of “cloud” companies that offered nothing of the sort.

Uncertainty around AI itself, however, also plays a role in this disconnect. Given the massive potential of AI to help companies solve both specific and generalized problems, the term can be applied in almost any context and made to fit almost any description.

Unlocking the Future

After spending many years confined to research projects and future-focused technology articles, both machine learning and artificial intelligence are making their way into the applications and software companies are deploying every day. As developers look ahead to building the next generation of technology solutions, they must not only think about how they can better leverage ML and AI principles, but also how to implement features that take advantage of them.

Accusoft’s collection of versatile SDK and API integrations deliver powerful viewing and image processing capabilities that help applications streamline workflows and enhance productivity. To learn more about how Accusoft can help you enhance the workflow in your machine learning or artificial intelligence projects, contact us today.

.net document viewer

Adding document viewing features to an application can be a challenge. Although there are many open source options available, finding a suitable ASP.NET document viewer or .NET image viewer that provides the right level of flexibility and functionality often requires a more specialized solution. Fortunately, .NET developers have good options when the time comes to integrate document viewing into their software, which helps them to focus on other application features.

The API Document Solution

Rather than building a dedicated viewer within their .NET application, many developers instead turn to an HTML5 viewer integration that uses REST APIs for their document needs. Since these viewers work within the web browser and can support any programming language, they provide the right balance of versatility and performance for most software applications. An HTML5 document viewer ensures a consistent viewing experience across multiple software platforms and browsers used within an enterprise environment.

Of course, if all an application needed to do was view files, it could simply use one of many open-source solutions. The problem is that these viewers typically only view one type of file, which means that the application also needs the ability to convert files into different formats. Depending upon the library in question, this could quickly escalate into a code-heavy solution that bogs down application performance and introduces multiple security vulnerabilities. If poor conversion tools are put in place, there’s also a strong likelihood that documents will not render accurately.

An HTML5 viewer with the right APIs can easily overcome these document management challenges for a .NET application. Conversion, annotation, comparison, and redaction features can all be integrated as part of a comprehensive viewing framework that doesn’t require developers to build anything from scratch or rely upon intrusive plugins that create risky dependencies.

How Accusoft APIs Enhance Your .NET Application

Accusoft’s PrizmDoc Viewer was designed to provide a broad range of document processing capabilities in addition to its core HTML5 viewing features. Once integrated into a .NET application, it allows developers to deploy REST API calls to convert files into new formats, split and merge documents, create page thumbnails, markup documents, and perform high-volume text searches. As an HTML5 viewer, PrizmDoc Viewer can deliver all of that functionality right within the browser rather than resorting to external applications.

The primary advantage of REST APIs is that they can be used from any programming language, so they don’t have to be custom-built to serve as an ASP.NET document viewer. That versatility does come with a tradeoff, however. Processes like uploading files, converting them, and then downloading outputs all require a series of HTTP requests. While this isn’t a particularly difficult process, it is slightly more resource-intensive than a solution built using the same programming language as the application. 

That’s why we developed a .NET SDK library that wraps around the server-related functions of PrizmDoc Viewer. Available for both .NET Core and .NET Framework, this SDK library wraps around the server’s REST APIs to make it easier to utilize server functionality in .NET applications.

For .NET developers looking for a better way to view and process documents, the PrizmDoc .NET SDK can help them access conversion, redaction, and annotation features without compromising the performance of their .NET applications.

Getting Started with PrizmDoc .NET SDK

In order to implement the .NET wrapper, developers just need to follow a few simple steps. 

1. Gain Access to a PrizmDoc Server Deployment

There are two ways to access PrizmDoc Server, which will allow you to carry out a variety of document processing functions. You can host a server on-premises as part of a PrizmDoc Viewer integration or sign up for a PrizmDoc Cloud account to use Accusoft’s cloud-hosted deployment.

2. Add the PrizmDoc Server .NET SDK Package

Next, download the free, open source .NET SDK library from NuGet or GitHub and add it to your application project.

dotnet add package Accusoft.PrizmDocServerSDK

 

3. Create a new PrizmDocServerClient

Once the .NET wrapper is in place, it’s time to construct a new PrizmDocServerClient and connect it to the server.

For a self-hosted PrizmDoc Server that’s part of a PrizmDoc Viewer deployment, the base URL is all that’s needed:

var prizmDocServer = new PrizmDocServerClient("http://localhost:18681");

 

If the you’re using PrizmDoc Cloud, you’ll need to provide the base URL along with your API key:  

var prizmDocServer = new PrizmDocServerClient("https://api.accusoft.com", "YOUR_API_KEY");

 

4. Begin Document Processing

Now that everything is in place, you can start processing and viewing documents within your .NET application. Our How To Guides provide some examples of common use cases, and you can also turn to the API Reference for additional guidance and information.

Get the Document Viewing Features Your .NET Application Needs

Accusoft’s PrizmDoc Viewer delivers the versatile HTML5 viewing capabilities that can set your .NET application apart from the competition. Thanks to the PrizmDoc Server .NET SDK wrapper, you can leverage the power of our REST APIs without needing to build out a customized viewing solution from the ground up.

Find out how easily you can manage your document needs with PrizmDoc Viewer’s browser-based functionality today. Sign up for a free trial to test our HTML5-powered viewer in your .NET environment.

document redaction

Many professionals in highly regulated industries like legal, healthcare, and government handle a myriad of cases, contracts, and forms. However, collaborating on documents comes with a risk. Sharing personally identifiable information (PII) with the wrong person can cause chaos and even result in a lawsuit. That’s why redaction is so paramount to collaboration in so many industries. Where manual paper processes once required a permanent marker, digital solutions now offer redaction capabilities that work even better. 

Redaction removes key pieces of information — including sentences, images, and even entire pages — while leaving the bulk of the document’s text intact. Although many tools now empower organizations to “burn in” data redaction so it can’t be removed, they don’t allow users to indicate multiple reasons for redaction. 

Many solutions offer a coding system that enables users to tag a piece of redacted information with a single reason code that signifies why the data was hidden. However, they lack the ability to add those reasons while you are redacting, which could save time and effort. Just think of how large some of these files could be, and how manually adding comments throughout the document could take hours after you’ve already finished reviewing the content.

This creates additional pressure from viewers to understand the purpose of redaction, and potential reporting issues if the reason for redaction isn’t properly recorded. Solutions that permit the addition of redaction reasons can help defend key data and close this communications gap.


The Freedom of Information Act (FOIA) and Secure Data Sharing

As noted by CNN, government documents are often partially redacted to obscure personal data such as social security numbers or military information related to intelligence data gathering and applications. Consider a U.S. intelligence agency report made public by FOIA request. 

While the Freedom of Information Act forms a critical part of open, effective democracy, data in the report that suddenly becomes public domain — such as the names of confidential sources or the methods used to obtain information about foreign government actions — could jeopardize both the ability of the agency to do its job and put human lives at risk.

Most government redactions expire and are automatically declassified after 50 years, but agencies can also obtain permission for special exemptions which prevent the redaction from being removed. For example, redaction reason 3.3(h)(1)(a) is used to protect the identity of a classified human intelligence source and is exempt from automatic expiration.

There are currently nine FOIA exemptions that are withheld from public release and protected from disclosure. When a portion of a record is withheld from public release, an exemption code may be found listed in the margin. The Federal Bureau of Investigation’s list below showcases what exemption codes are subject to FOIA data withholding:

  • (b)(1) (A) Specifically authorized under criteria by an executive order to be kept secret in the interest of national defense or foreign policy and (B) are in fact properly classified to such Executive Order #12958 (3/25/03).
  • (b)(2) Related solely to the internal personnel rules and practices of an agency.
  • (b)(3) Specifically exempted from disclosure by statute (other than section 552b of this title), provided that such statute (A) requires that the matters be withheld from the public in such a manner as to leave no discretion on issue or (B) establishes particular criteria for withholding or refers to particular types of matters to be withheld.
  • (b)(4) Trade secrets and commercial or financial information obtained from a person and privileged or confidential.
  • (b)(5) Inter-agency or intra-agency memorandums or letters that would not be available by law to a party other than an agency in litigation with the agency.
  • (b)(6) Personnel and medical files and similar files, the disclosure of which would constitute a clearly unwarranted invasion of personal privacy.
  • (b)(7) Records or information compiled for law enforcement purposes, but only to the extent that the production of such law enforcement records or information:
  • A. Could reasonably be expected to interfere with enforcement proceedings;
  • B. Would deprive a person of a right to a fair trial or an impartial adjudication;
  • C. Could reasonably be expected to constitute an unwarranted invasion of personal privacy;
  • D. Could reasonably be expected to disclose the identity of confidential source, including a state, local, or foreign agency or authority or any private institution that furnished information on a confidential basis, and, in the case of a record or information compiled by a criminal law enforcement authority in the course of a criminal investigation or by an agency conducting a lawful national security intelligence investigation, information furnished by a confidential source;
  • E. Would disclose techniques and procedures for law enforcement investigations or prosecutions or would disclose guidelines for law enforcement investigations or prosecutions if such disclosure could reasonably be expected to risk circumvention of the law, or;
  • F. Could reasonably be expected to endanger the life or physical safety or any individual.
  • (b)(8) Contained in or related to examination, operating, or condition reports prepared by, on behalf of, or for the use of an agency responsible for the regulation or supervision of financial institutions.
  • (b)(9) Geological and geophysical information and data, including maps concerning wells.

Given these extensive reasons, we can start to understand how there might be reason to include multiple FOIA exemption codes for one piece of redacted information.


Regulatory Compliance & Document Security

For many organizations, adding redaction reasons to shared or publicly-available documents isn’t mandatory, but it can help reduce the risk of both legal and compliance challenges. 

Consider a redacted court document shared as part of an eDiscovery process. Without a custom redaction reason, other parties may challenge the necessity of your redaction, especially if no contextual evidence indicates its necessity. 

Compliance audits also pose a potential problem. If years or even decades-old documents don’t contain redaction reasons — and the originals aren’t easily located — your organization could face increased regulatory oversight.

Take for example the healthcare industry. There are several clinical studies that require peer review. To keep biases at bay and personal information secure, redaction is critical to the adjudication process. Think about a clinical trial that has specific events related to a test subject. That test subject has participated in a trial for an incentive. 

However, that person did not agree to share his or her personal information with a broad audience. Once the panel of experts reviews the results of a clinical trial, the research goes on public record. It’s crucial to protect the participants involved and their PII to ensure that no harm comes to them.

Many document viewing tools make it possible to add single redaction reasons to released documents, but what happens if your organization is dealing with multiple data types? Look for a solution that enables you to add multiple redaction reasons or codes to clarify your intent and keep data secure.

Many organizations utilize spreadsheets to track data and perform complex calculations. Since spreadsheets offer substantial flexibility, it’s not uncommon for a single organization to use them in a variety of ways. For instance, one department might use them for budgeting while another deploys them for risk assessment. Although they can handle complex calculations, spreadsheets are relatively easy to set up and don’t require the same programming knowledge as more specialized solutions. That accessibility has led many organizations to simply convert Excel to web applications using API integrations rather than building new functionality from scratch.

Why You Should Convert Excel Files to Web Applications

Consumers often turn to financial and insurance companies looking for simple answers to simple questions: 

  • How many payments will it take to eliminate my debt?
  • Will adding another person to my insurance policy change my rate?
  • What will the monthly payments on my loan cost based on different interest rates?

To answer questions like these, someone in the organization typically enters the customer’s data into a premade spreadsheet, applies a few conditions using preset formulas, and shares the result. This process could be significantly streamlined by making these calculations readily available as a web application to anyone who visits the firm’s website, allowing both prospective and current customers to get answers quickly while also freeing up time for employees to work on more high-value tasks.

Unfortunately, building a secure, functional web application takes up valuable development resources. A developer could easily spend weeks converting complex spreadsheet formulas into a fully-functional application that integrates into the website or larger platform seamlessly. Even worse, if anything about those formulas were to change (as is often the case with financial and insurance formulas), more development resources will need to be pulled away from existing projects to make the updates.

By converting Excel files to web applications, firms can avoid these problems and provide clients with ready access to the calculations they need. FinTech and InsurTech developers can accommodate this need by building integrations into their solutions that allow users to easily upload and share spreadsheets entirely within an application and without any Microsoft Word dependencies. This bypasses the time-consuming build process and makes it much easier to update the formulas as needed.

Keeping Your Spreadsheets Secure

Of course, making spreadsheets readily available as web applications presents a few important security challenges. Many of the calculations running inside an organization’s spreadsheets are proprietary or contain hidden data that needs to remain private for various confidentiality reasons. That’s why companies are hesitant to simply send copies of their internal spreadsheets to customers or vendors. If those Excel files are made accessible online, there’s an obvious risk that someone could download a copy for themselves or access valuable private intellectual property.

Incidentally, this is also the reason why many firms struggle with sharing spreadsheets even in a collaborative environment. Not only are .XLSX files among the most commonly used file extensions by malware, but granting cloud providers or email servers access to spreadsheets represents too great a security risk for companies in heavily regulated industries.

By converting Excel to web applications, however, organizations can maintain strict access and visibility controls over their spreadsheet files. A good spreadsheet viewer integration will allow users to determine what people see when they use the application and also what information they can access. Formulas and calculations that contain vital intellectual property can be hidden completely. Visitors can be restricted to only editing cells that apply to their information, allowing them to use the spreadsheet without breaking or altering its functionality.

Sharing controls can also restrict what can be downloaded locally. A visitor may need to download or print a copy of their calculations, but they don’t need to download a fully functional copy of the spreadsheet file. Even in a collaborative environment, allowing people to download and edit copies of a spreadsheet can introduce significant version confusion. By keeping everything safely within the confines of the organization’s larger web application, essential data remains as secure and up-to-date as possible.

Other Reasons to Convert Excel to Web Applications

The versatility of spreadsheets allows people to adapt them to a variety of uses. In addition to more traditional budgeting and adjustment tasks, they can also be used for things like calculating survey results, analyzing resource usage, or estimating server uptime. Adding customizable calculators that provide quick results to a website experience can provide customers with important information and keep them engaged. 

Rather than building a specialized app or plug-in for every one of these calculators, organizations can simply use a spreadsheet viewer integration to quickly create one without any specialized coding or development knowledge. When the integration is set up within their solution, they can even customize it to match their branding and make it look more like a designed application than a simple spreadsheet.

Explore the Potential of Spreadsheet Integration with PrizmDoc Cells

Accusoft’s PrizmDoc Cells was originally designed to help our clients securely view and share XLSX files without any third party dependencies, but it’s increasingly being used to help improve customer experiences across a variety of applications. Get a hands-on experience with this API-driven integration to explore the potential of converting your Excel files to web applications. For a more detailed overview of what you can do with PrizmDoc Cells, sign up for a free trial.

Question

My document appears to be loading incorrectly. Are there any troubleshooting steps that I can take?

Answer

First, confirm that this is a document-specific issue by trying other documents of the same file type or documents of the same file type with similar size characteristics and content.

Second, if the document is a Microsoft Office document and you are using LibreOffice as your backend renderer, you can compare the way that the document displays in PrizmDoc against the way the document displays in the copy of LibreOffice shipped with PrizmDoc (C:\Prizm\libreoffice\program\soffice.exe on Windows, /usr/share/prizm/libreoffice/program/soffice on Linux). To inquire about the Microsoft Office renderer plugin, which may resolve office document rendering issues, send an email to sales@accusoft.com.

Third, reach out to a support technician at support@accusoft.com, as they will be able to quickly test how the document renders in the latest version of PrizmDoc, and consult the product engineers in the event that there is a rendering issue.

Have the following information handy, as it will help the support technician better assist you:

  • What version of PrizmDoc are you using?

  • What operating system are you using?

    • If Windows, are you using the LibreOffice or Microsoft Office backend renderer?
  • A PDF export or a screenshot of what you see in PrizmDoc, compared to a screenshot of how the document looks in its native file type viewer.

  • Log files that include the processing of the incorrectly loading document.

  • Any changes that you may have made to the PrizmDoc configuration files.

Question

Can PrizmDoc handle password-protected files, such as PDFs or Excel files?
How would a user specify a password for a particular document?

Answer

It is possible to specify the password for a password-protected document when creating a viewing session in PrizmDoc. When sending a request to create a viewing session, you’ll use the password field in the request body to specify the password. For example…

POST http://localhost:3000/ViewingSession
Content-Type: application/json
{
    "source": {
        "type": "url",
        "url": "https://www.usability.gov/sites/default/files/creating-wireframes.pdf"
    },
    "password": "hunter2"
}

(Replace "hunter2" with the actual password)

Please note that even if a file needs a password and is not provided one (or is provided one that’s incorrect), the viewing session should still be created successfully. The easiest method to determine whether the password is needed/correct is to make a call to get the page. You can do this by making a GET request to the GetPage route using the viewingSessionId created earlier, like so…

GET pas_base_url/Page/q/0?DocumentID=u{viewingSessionId}

…be sure to replace pas_base_url with the root of your Prizm Application Services (PAS) instance (usually this is http://localhost:3000) and replace {viewingSessionId} with the actual value for viewingSessionId created in the previous step.

The above call will return 200 OK if the page load is successful. If a password is required/incorrect, you should see a return status code 480. There will be additional response headers called accusoft-status-number and accusoft-status-message, which should be 4001 and "Document requires a password", respectively.

You can see the above in greater detail in the product documentation here.

You can use this information to re-create a viewing session with the correct password.

Currently, there is a feature request planned for a potential future release of PrizmDoc to prompt the user for a password if one is required.

Question

What file types are supported by Accusoft PDF Viewer?

Answer

The viewer currently supports only PDF file formats based on the PDF32000 specification. If you need more wide ranging document support our PrizmDoc Server platform can help!

Question

Some of our users using Google Chrome have been reporting that PDF document loading and page rendering is extraordinarily slow. This is making the workflow unusable. What could have caused this issue to start occurring?

Answer

An issue was discovered in Google Chrome 71 that was causing this issue. The issue was resolved in Google Chrome 72 (released in Jan 2019).

If you are experiencing this PDF loading issue with PrizmDoc, and you are using the Google Chrome browser, please verify that you are using the latest stable version here:
https://www.google.com/chrome/