Technical FAQs

Question

How accurate is PrizmDoc Viewer’s auto-redaction process? Is there any estimate of the percentage of matches that it will fail to redact?

Answer

If you’re performing auto-redaction as described in our documentation, then all matches for the input regular expression will be redacted in the final document. However, it’s difficult to express that confidence in the form of a percentage. PrizmDoc is subjected to a suite of automatic testing to ensure that its services are behaving as intended, including redactions. We never release a new version unless it passes 100% of those tests.

That being said, the primary way that inaccuracy could enter the system is if you’re attempting to redact scanned documents that have been OCRed. In this case, it’s a matter of your OCR software’s accuracy, rather than the accuracy of PrizmDoc’s redaction process. If the searchable text of the document doesn’t accurately reflect the visible text on the page (for example, if a smudged “discovery” is incorrectly recognized as “disccvery”), then the auto-redaction will be unable to recognize it due to the incorrect input it has been given. This isn’t a problem if the documents were not OCRed.

Question

In PrizmDoc Viewer, can I delete a saved annotation collection? When I make annotations on a document, I can save them and give them a name. Then if I come back to the document later, I can access my saved annotations, add new ones, and delete individual ones, but I don’t see a way to delete the collections themselves, is this possible in PrizmDoc?

Answer

Deleting the annotation references is possible, though our Viewer sample does not have a built-in way to delete them. This is so individual users cannot delete annotations meant for a larger audience. You can add the feature to your project by using our Markup Layers API:

DELETE /MarkupLayers/u{viewingSessionId}/{layerRecordId}

Question

We are using the Webforms Samples and want to know how to enable the “Always User Raster” feature. Which file needs to be modified and how should it be modified?

Answer

In order to enable the “Always Use Raster” option for our Webforms sample, you will need to do the following:

  • Modify the Default.aspx file
  • Update the Central Configuration file

How To:

  1. In the Sample, before modifying, make a backup of the following file for safekeeping:

\Prizm\Samples\dotnet\webforms\full-viewer-sample\Default.aspx

  1. In the original file, modify the code that is located close to line 115:

\Prizm\Samples\dotnet\webforms\full-viewer-sample\Default.aspx

Line to Replace:

} else {
        sessionData.source = getDocumentSource(query.document || '');
        }

Replace with:

} else {
        sessionData.source = getDocumentSource(query.document || '');
        sessionData.render = {
          html5: {
             alwaysUseRaster: true
          }
       };
}
  1. Next, to update the Central Configuration file you will need to stop the Prizm Services.

  2. Make a backup of the prizm\prizm-services-config.yml file.

  3. Edit the .yml file and remove the leading # for the following line and add true to the array so that it looks like the following:

viewing.sessionConstraints.render.alwaysUseRaster.allowedValues:
[true, false]

  1. Restart the Prizm Services.
Question

Can European/CJK character sets be auto-redacted in PrizmDoc?

Answer

In general, if PrizmDoc is able to extract text from the document, it is able to do a redaction. There are no known issues with auto/manual redaction except OCR’d “text over image” documents. For these documents, image text may have a different location or height/width in comparison to the text recognition result included in that document as well. A redaction will be applied to the text, but the underlying text on the image can still be visible.

Question

For reporting purposes, we want to rename the markup layer JSON files to help identify which tenant made the markup. For example:

c1fea5868607402c1b664272e5b82aeb7fff7390_0_0hg91gTqSCeg_P9B2Ko7BaH-YxkaazjH.json

rename to:

accusoft_c1fea5868607402c1b664272e5b82aeb7fff7390_0_0hg91gTqSCeg_P9B2Ko7BaH-YxkaazjH.json.

Is this possible?

Answer

The actual filename for an annotation .json file contains an encrypted value of the file path and document name. This is what is used to associate the JSON markup layer file with the document.

If you make changes to the first part of the file, PrizmDoc will no longer be able to associate those markups to the actual file.

As a alternative, you can set up a separate PAS instance for each tenant, which will provide a different markup layer for each tenant.

Or you can programmatically handle the markups and store them specifically for each tenant. The following articles outline our Markup JSON specifications:

Question

Does viewing HTML in PrizmDoc Viewer allow JavaScript execution or local file access? Can PrizmDoc Viewer block externally-referenced content from being rendered?

Answer

When viewing HTML in PrizmDoc, JavaScript and local file access are disabled.

Additionally, you may configure the security.htmlRendering.blockExternalContent setting found in PrizmDoc’s Central Configuration file. When rendering any source document which uses HTML content, this setting controls whether or not externally-referenced content, such as images and iframes, will be blocked. This option affects any source document file type which uses HTML, including HTML, EML, and MSG.

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)

As speed and efficiency have become increasingly vital for business success, it’s hardly a surprise that organizations across many industries have turned to white labeling as a way of retaining their competitive edge. While white labeling can be found in every industry, it’s proved to be incredibly important in the technology sector, where many independent software vendors rely upon white label software to build better applications and solutions.

How Does White Labeling Work?

In many instances, organizations need to launch a product quickly and may not have expertise in some aspect of their business. A software developer that specializes in FinTech solutions for processing loan applications, for example, may have the machine learning tools to sift through documents quickly but lack the viewing and editing features that would allow users to collaborate securely and effectively.

White labeling is a process where one company purchases a product from another company and then rebrands it for their own use. For physical products, this usually means repackaging and reselling something, but with digital products, the rebranding typically involves customizing the user experience (UI) to incorporate it into an existing application. 

In the previous example, the FinTech developer might turn to a product like PrizmDoc Viewer to integrate secure viewing capabilities into their platform. Using PrizmDoc Viewer’s white label software features, the company could rebrand the UI with its own logo and terminology. The average user, then, would never know that some aspects of their FinTech solution incorporates products made by another software manufacturer.

4 Benefits of Using White Label Software

Companies of all sizes turn to white label solutions when building their applications. Here are some of the reasons why they they choose this option instead of building everything they need from scratch:

1. Rapid Deployment

One of the obvious advantages to adopting a white label software solution is the speed of deployment. Building new features within an application takes both time and developer resources. If everything needs to be coded and deployed from scratch, production timelines can quickly extend indefinitely. As deadlines are pushed back, developers may even be pulled away from working on more innovative software features to build basic functionality into their applications. This vicious cycle makes it bring a product to market in time to capitalize on opportunities.

With easy-to-integrate white label software, companies can rapidly integrate the functionality they need into their applications and dedicate more resources to the novel features that will set them apart in a crowded marketplace. The ability to deploy core capabilities quickly means that teams can get to a minimum viable product faster and bring their software to market. Since white labeling allows them to rebrand and customize their integration to match the rest of the application interface, end users still enjoy a seamless experience.

2. Proven Functionality

When production deadlines are tight, it usually doesn’t make sense to have developers spending their time building a solution that already exists as a ready-made integration. Although open-source tools can be quite attractive, they don’t always provide the robust features expected of modern applications. In many cases, development teams have to spend valuable time building upon open-source solutions just to get them to work properly within an application framework.

White label software provides proven functionality right out of the box, allowing developers to quickly integrate the features they need and get back to working on other priorities. They also offer a more specialized approach to application needs. Rather than trying to build something new or adapt a similar solution, developers can select the exact features they need, implement them, and know that they’ll work as promised. Since they’re supported products, white label software also provides more peace of mind when it comes to updates and patching vulnerabilities. 

3. Budget Friendly

Developing new software features is an expensive undertaking. It requires companies to hire developers with the right expertise, dedicate hardware and processing capabilities, and multiple rounds of testing just to get to a viable state, but the costs don’t stop there. Once new functionality is built, it will require ongoing maintenance and support to ensure that it continues to work as intended and stays secure against potential threats. Those additional costs can quickly become burdensome for a software company that simply wants to incorporate common features into their application.

With white label software, companies can have all the benefits of third party support without compromising their user experience. White label API solutions integrate seamlessly into an application and the company can turn to the vendor for support when something goes wrong or when new features are needed. Eliminating ongoing maintenance from the budget means that teams can spend more of their resources on delivering a better overall product to their customers. 

4. Flexible Scalability

Software applications often change significantly throughout their lifecycle. What begins as a small program with only a few features can scale very quickly into an enterprise-grade workhorse that must meet the needs of multiple departments. Having a solution in place that can grow and change along with business needs is vital for organizations looking to retain their flexibility.

Customizable white label software makes it easy for companies to grow their applications along with their business. They can begin with a modest feature set and then implement additional tools as needed as user needs change over time. This versatility also frees up developers to build innovative solutions that may require features that are not being used in an existing application, but could easily be enabled when the time comes. Having flexible, scalable white-label technology built into a platform early on opens up a wide range of possibilities for future development.

The Behind-the-Scenes Ingredient to Your Application’s Success

As a software manufacturer specializing in API technologies for document processing, conversion, and automation, Accusoft has spent many years building solutions that work “under the hood” to enhance our customers’ applications. That’s why the PrizmDoc Suite of products incorporates white label software features to help them blend seamlessly into your existing platform. Whether you’re looking to add new capabilities or need to incorporate functionality quickly to get your products to market faster, our flexible integrations can help solve your document management challenges on your terms. Talk to our team today to find out which solution is right for you.

Question

We are using PrizmDoc and may be adding more end users, so we wanted to verify whether there is a limit to the number of viewing sessions that can be active at one time.

Answer

PrizmDoc does not specifically limit the number of viewing sessions that can be active at any given time. However, when opening a viewing session with a document, a conversion does take place. The number of conversions that can be handled simultaneously is based on the hardware constraints of your server.

Various factors, such as the size of documents, the number of conversions, and the hardware being utilized may impact the performance of your PrizmDoc server.

We provide server sizing and performance documentation that is designed to provide guidance and approximate server size based on the number of conversions you plan to do per minute.

Please refer to our documentation page:

https://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#prizmdoc-server-sizing-servers.html

Question

We want to use one PAS instance for multiple customers while ensuring their calls and data are separated so that other customers cannot access them. Is there a way PrizmDoc can accomplish this?

Answer

How To:

Use the following steps to set up the multi-tenancy feature:

  1. Add a new line inside of /usr/share/prizm/pas/pcc.nix.yml (Linux) or C:\Prizm\pas\pcc.win.yml (Windows) in the following format:

undocumentedFeature.multiTenancy: “enabled”

  1. After enabling this feature, all requests to PAS must include the header accusoft-tenant-id. The following shows an example request for creating a new viewing session:
POST /ViewingSession HTTP/1.1
Host: localhost:3000
Content-Type: application/json
accusoft-tenant-id: myUniqueTenantId
cache-control: no-cache
Postman-Token: 5edd698a-5e4f-46d2-b93a-42cc57371dce
  {
  "source": {
  "type": "document",
  "fileName": "1040ez.pdf"
   }
  }

NOTE: All Tenant Ids are converted to lowercase and must be unique between tenants. This means that in terms of the application both “MyTenant” and “mytenant” are equivalent and would be able to see the same files. Tenant Ids are not generated for the application and must be generated and handled by the integration components. Tenant Ids are also strictly alphanumeric at this time.

File storage including Documents, markupXml, formDefinitions and markupLayerRecords will now be appended with the
{tenantId} as shown in the above example with a Documents configuration of /usr/share/prizm/Samples/Documents. The request would attempt to create a viewing session from the following file: /usr/share/prizm/Samples/Documents/myuniquetenantid/1040ez.pdf

Viewing Package data stored in the database will have the tenantId included in the composite index as well as include an accusoftTenantId column.

Question

When doing a text search in a document in PrizmDoc, the highlight color for the search results is a light blue background. Is there a way to change the highlight color for search results in the PrizmDoc Viewer?

Answer

You can change the highlight color specifically in the PrizmDoc Viewer file viewer.js file located in the viewer-assets\js folder of your project/application.

You will need to locate 2 instances of the search term “highlightColor: undefined” in the code block below located close to line 4400. The actual line number will vary depending on the version of viewer.js you are using. You can replace “undefined” with a hexadecimal color value which you can look up from the following site: https://htmlcolorcodes.com/

// This is a request for a new searchQuery triggered by the search input field.
// Generate new search terms, and save them globally.
prevMatchingOptions = _.clone(matchingOptions);

if (matchingOptions.exactPhrase) {
    // We need to match the exact string, as is
    if (queryString.length) {
        searchTerms.push({
            searchTerm: queryString,
            highlightColor: undefined,
            searchTermIsRegex: false,
            contextPadding: 25,
            matchingOptions: matchingOptions
        });
    }
} else {
    // Split up multiple words in the string into separate search term objects
    var queryArr = queryString.split(' ');
    queryArr = _.unique(queryArr);
    _.forEach(queryArr, function(query){
        if (query.length) {
            searchTerms.push({
                searchTerm: query,
                highlightColor: undefined,
                searchTermIsRegex: false,
                contextPadding: 25,
                matchingOptions: matchingOptions
            });
        }
    });
}         

Accusoft’s FormSuite for Structured Forms is a powerful SDK that allows you to integrate character recognition, form identification, document cleanup, and data capture capabilities into your software applications. You can set up unique form templates based on your processing needs and then design customized output architecture to extract data for delivery to a database or other downstream applications, helping you get to production faster or bring a new level of functionality to your legacy systems.

Setting all of that functionality up, however, can be a daunting task, especially if you’re working with a wide variety of form types. That’s why our FormSuite enablement services team is available to help you implement the features you need to ensure lasting results. Whether you’re facing bandwidth constraints or lack the resources to build expertise quickly, our FormSuite experts bridge the gap to make your project a success. Our enablement services team takes a five step approach to every engagement.

The Accusoft Approach to Enablement Services

Step 1: Thorough Architecture Review

We start by conducting a top to bottom analysis of your production or operational environment. Our review not only evaluates your system architecture and data workflow, but also breaks down the details of your potential use cases and existing work samples. 

Step 2: Identifying the Right Fit

Next, we determine the best FormSuite options based on your unique requirements and build you a custom enablement plan that will equip you with the instruction and assistance you need for a successful implementation.

Step 3: Training Your Team

Armed with information about your application’s specific requirements, we develop a customized training program to give your team a solid foundation for future development and ongoing maintenance. From guidance on form template creation and image enhancement to working with the forms API, we provide you with targeted guidance designed to help you solve potential challenges unique to your application environment.

Step 4: Implementation Support

Once the training is complete, you’ll have the foundational knowledge required to build the forms processing workflows your application requires. Our FormSuite experts remain on call to answer your questions so you can achieve your integration faster and ensure that you’re processing forms accurately.

Step 5: Preparing for Long-Term Success

Our enablement services prepare you to manage your implementation over the long term. We not only show you how to maintain the current environment, but also identify potential opportunities to deploy new features as your application scales in the future.

Keep the Partnership Going

Following your integration, we also provide ongoing support options to our customers whether or not they’ve utilized our enablement services. You get free Upgrade Support for 90 days after initial purchase, which includes email support and product upgrades. After that period, you can extend Upgrade Support, or elect to transition to our Standard Support or Priority Support annual plans.

To learn more about FormSuite for Structured Forms enablement services, talk to one of our solutions engineers. We’re ready to help you get your integration started!