Technical FAQs

Question

After searching a document, an error icon appears in the search results panel. Clicking on it displays the following error message: “x page(s) cannot be searched.” Why does this occur and how can I find out which specific pages couldn’t be searched?

Answer

When the PrizmDoc Viewer text-service cannot find any text for a given page in the document, it provides an array of all the pages without text in the response from searchTask results.

In short, the document is fine and simply contains pages without text. If you look at the pagesWithoutText array contained within the response data from searchTasks, you’ll see something like this:

[0, 1, 7, 17, 43, 45, 65, 67, 77, 79,…]

The values reported are pages that do not contain any text but instead are either blank or contain an image. This data can then be used to inform the user of how many pages are not searchable.

Question

How can I tell which server has the cache for a specific document in a clustered PrizmDoc environment?

Answer

When a document is viewed, it creates a Viewing Session ID. That Viewing Session ID has information regarding which server in the cluster is doing the work, however, it is encoded and cannot be read directly.

In order to determine which PrizmDoc cluster server is doing the work for a specific document in a specific viewing session, you can do a text search for the Viewing Session ID in the plb.sep_multi.log on all servers. Only one server in the cluster will be a match for that Viewing Session ID.

PDF viewers

Few file formats are as widely recognized and used as PDF. In fact, PDFs have become so commonplace that it’s hard to imagine a time when they didn’t exist. Most users don’t even give them much thought, knowing that all they need to do is click on the file and trust that their PDF file viewer will be able to open and render it accurately. But things weren’t always quite so simple before PDF viewers.

Origins of PDF

It’s easy to take document viewing and printing for granted today, but to understand the development of the PDF format, it’s important to look back at the document challenges facing organizations in the early 1990s. Businesses, government agencies, and universities were already using local area networks to share digital documents, but there was no guarantee that a document would display the same way on every machine. In addition to multiple competing word processor formats (such as Microsoft Word and Corel WordPerfect), there was no reliable way of viewing files containing images or other layout elements across different software and operating systems.

Around that time, Adobe co-founder John Warnock became focused on the idea of creating a standardized document format that would work across all operating systems and effectively function like digital paper. The primary goal was to ensure that the document contents would look the same no matter where they were viewed. That meant solving complex challenges like replacing unsupported fonts without distorting the document’s layout and distilling graphic parameters to flatten the file so it would load within seconds instead of minutes.

Adobe released the first version of the Portable Document Format (PDF) in 1993, but it would take some time for the format to catch on. “The world didn’t get it,” Warnock recalled in a 2010 interview. “They didn’t understand how important sending documents around electronically was going to be.”

The early years were rocky, largely because PDF was just slightly ahead of its time. Early PDFs had limited functionality and were slightly too large to be sent quickly over the early internet connections. That began to change in 1996, however, when the Internal Revenue Service (IRS) used PDFs to provide downloadable tax return forms and instructions online. The IRS also started using PDF files to digitize their internal document processes, largely phasing out their reliance upon paper documents for auditing. This adoption convinced many hesitant organizations that if the format was good enough for the IRS, then it was good enough for them as well.

The Growth of PDF File Viewers

In the years following the introduction of PDF as an open format, a unique “freemium” model emerged that helped to promote its use across a variety of industries. While developers sold software that could be used to create, convert, edit, and secure PDFs, they also offered more streamlined PDF file viewers for free. This ensured that anyone could easily open and view PDF files no matter what kind of computer or operating system they were using. 

Although early readers were offered as separate software applications, they quickly became available as libraries that could be integrated into an existing application. By integrating a PDF file viewer directly into an application, developers could provide secure PDF support without having to rely upon any external software.

Today, there are multiple PDF file viewers available, which often makes it difficult to identify the one that provides the right combination of rendering performance and security for a particular industry’s needs.

The Rendering Challenge

Rendering a PDF file accurately is a deceptively complex task because not every file is constructed in the same way. In fact, prior to the PDF standard being taken over by the International Standards Organization (ISO) in 2007, Adobe’s documentation surrounding the format was rather infamously vague, resulting in the creation of poorly optimized PDFs that third party readers had difficulty viewing properly. Some PDF file viewers address this challenge by adding new code to accommodate known issues, but this has the unpleasant side effect of giving the reader a larger footprint and potentially impacting performance.

This challenge has become even more complex in recent years given the popularity of mobile devices. Effective PDF file viewers must be able to deliver a responsive viewing experience that can adjust their user interface (UI) to different sizes and types of screens.

The Security Challenge

Security has always been an important consideration for PDF file viewers, but it has become a much more prominent concern since the first virus capable of embedding itself in PDF files was uncovered in 2001. Unfortunately, security vulnerabilities continue to be a problem with third party PDF readers, as evidenced by the multiple vulnerabilities discovered in Adobe’s PDF products in 2020. While developers have more PDF file viewers to choose from than ever before, finding a solution that doesn’t introduce security risks has become a high priority when building a new application.

One of the best solutions for resolving security challenges is to build PDF capabilities directly into their already secure applications. Viewing or creating a PDF file in an external program, such as third party software or even within a web browser, introduces a potential functionality and control gap. It’s difficult to control what can be done with a PDF once it travels outside the confines of a secure application environment, allowing it to be downloaded, viewed, and potentially altered. With PDFs set to continue as the de facto standard for digital documents, it makes more sense than ever for developers to give their applications the ability to manage those files natively, without having to interface with external software dependencies.

Find the PDF File Viewer That’s Best for You

Developers have many choices when it comes to integrating PDF viewing capabilities, which is why Accusoft has developed a broad range of PDF integrations to address every potential use case. Our Accusoft PDF Viewer delivers a high-speed, lightweight JavaScript library that offers out-of-the-box mobile support and requires only a few lines of code to install. Available as a free-to-use integration, it’s the fastest way to add dynamic PDF viewing capabilities to your application without any configuration headaches. 

If your application needs more than just support for PDF viewing, PrizmDoc Viewer provides production-scale annotation, redaction, and conversion for multiple file types. As an HTML5 viewer, PrizmDoc Viewer easily integrates into applications to create a secure environment for documents and images. Try it today using an online demo or download a free trial to see how PrizmDoc Viewer can transform the way your application handles and views documents. 

OCR vs ICR

The days of manually transcribing scanned documents into an editable, digital document are thankfully long behind most organizations. Error-prone manual processes have largely given way to automated document and forms processing technology that can turn scanned documents into a more manageable form with a much higher degree of accuracy. 

Much of transition was made possible by the proliferation of optical character recognition (OCR) and intelligent character recognition (ICR). While they perform very similar tasks, there are some key differences between them that developers need to keep in mind as they build their document and form processing applications.

How Does Character Recognition Technology Work?

Character recognition technology allows computer software to read and recognize text contained in an image and then convert it into a document that can be searched or edited. Since the process involves something that humans can do quite easily (namely, reading text), it’s easy to assume that this would be a rather trivial task for a computer to accomplish.

In reality, getting a computer program to correctly identify text and convert it into editable format is an incredibly complex challenge complicated by a wide range of variables. The problem is that when a computer examines an image, it doesn’t see people, backgrounds, or text as distinct images, but rather as a pattern of pixels. Character recognition technology helps computers distinguish text by telling them what patterns to look for.

Unfortunately, even this isn’t as straightforward as it sounds. That’s because there are so many different text fonts that depict the same characters in different ways. For example, a computer must be able to recognize that each of the following characters is an “a”:

When humans read text, they have a mental concept of what the letter “a” looks like, but that concept is incredibly flexible and can easily accommodate a broad range of variations. Computers, however, require precision. Programmers must provide them with clear parameters that help them to navigate unexpected variations and identify characters accurately.

Pattern Recognition

The earliest versions of character recognition developed in the 1960s relied on pattern recognition techniques, which scanned images and searched for pixel patterns that matched a backlog of font characters stored in memory. Once those patterns were located, the software could translate the characters into searchable, editable text in a document format. Unfortunately, the patterns had to be an exact pixel match, which severely limited how broadly the technology could be applied.

One of the first specialized fonts developed to facilitate pattern recognition was OCR-A. A simple monospace font (meaning that each character has the same width), OCR-A was used on bank checks to help banks quickly scan them electronically. Although pattern recognition libraries expanded over the years to incorporate common print fonts like Times New Roman and Arial, this still presented serious limitations, especially as the variety of fonts continued to grow. With one popular font finding website indexing more than 775,000 available fonts in 2021, pattern recognition needed to be supplemented by another approach to character recognition.

Feature Detection

Also known as feature extraction, feature detection focuses on the component elements of printed characters rather than looking at the character as a whole. Where pattern recognition tries to match characters to known libraries, this approach looks for very specific features that distinguish one character from another. A character that features two angular lines that come to a point and are crossed by a horizontal line in the middle, for instance, is almost always an “A,” regardless of the font used. Feature detection focuses on these qualities, which allows it to identify a character even the program has never encountered a particular font before. As the printed examples above demonstrate, however, this approach needs to take several ways of rendering the character “A” into consideration when setting parameters.

Most character recognition software tools utilize feature detection because it offers far more flexibility than pattern recognition. This is especially valuable for reading document images with faded ink or some degradation that could prevent an exact pattern match. Feature detection provides enough flexibility for a program to be able to identify characters under less than ideal circumstances, which is important for any application that has to deal with scanned images.

OCR vs ICR: What’s the Difference?

Optical character recognition (OCR) is typically understood to apply to any recognition technology that reads machine printed text. A classic OCR use case would involve reading the image of a printed document, such as a book page, newspaper clipping, or a legal contract, and then translating the characters into a separate file that could be searched and edited with a document viewer or word processor. It’s also incredibly useful for automating forms processing. By zonally applying the OCR engine to form fields, information can be quickly extracted and entered elsewhere, such as a spreadsheet or database.

When it comes to form fields, however, information is frequently entered by hand rather than typed. Reading hand-printed text adds another layer of complexity to character recognition. The range of more than 700,000 printed font types is insignificant compared to the near infinite variations in hand-printed characters. Not only must the recognition software account for stylistic variations, but also the type of writing implement used, the quality of the paper, mistakes, steadiness of hand, and smudges or running ink.

Intelligent character recognition (ICR) utilizes constantly updating algorithms to gather more data about variations in hand-printed characters to identify them more accurately. Developed in the early 1990s to help automate forms processing, ICR makes it possible to translate manually entered information into text that can be easily read, searched, and edited. It is most effective when used to read characters that are clearly separated into individual areas or zones, such as fixed fields used on many structured forms.

Both OCR and ICR can be set up to read multiple languages, although limiting the range of expected characters to fewer languages will result in more optimal recognition results. Critically, ICR does not read cursive handwriting because it must still be able to evaluate each individual character. With cursive handwriting, it’s not always clear where one character ends and another begins, and the individual variations from one sample to another are even greater than with hand-printed text. Intelligent word recognition (IWR) is a newer technology that focuses on reading an entire word in context rather than identifying individual characters.

To learn more about how OCR vs ICR technology and how they can transform your application when it comes to managing documents and automated forms processing, download our whitepaper on the topic today.

Question

How do I use a Network Drive path for Image and ART storage in my ImageGear .NET web application?

Answer

In an ImageGear .NET web application, you have to define the location of the images and annotations directory in the storageRootPath and artStorageRootPath configuration property.
In the current version of ImageGear .NET, the storageRootPath and artStorageRootPath do not work with a network drive path \\SERVER-NAME\sharefilename.

The workaround for this would be to create a Symbolic link from a local directory to the network drive directory.

  • To create a symbolic link: Open “Command Prompt” as Administrator and type in > mklink /d "local path" \\SERVER-NAME\sharefilename
  • Pass in the path of the symbolic link as image or art storage root path in your web.config: storageRootPath="local path" artStorageRootPath="local path"

By default, the Cells Server will use internal storage which is only suitable for evaluation and development. When deploying to a production environment, best results come from configuring the server to use enterprise level storage (S3) versus filesystem.

Question

How do I use a Network Drive path for Image and ART storage in my ImageGear .NET web application?

Answer

In an ImageGear .NET web application, you have to define the location of the images and annotations directory in the storageRootPath and artStorageRootPath configuration property.
In the current version of ImageGear .NET, the storageRootPath and artStorageRootPath do not work with a network drive path \\SERVER-NAME\sharefilename.

The workaround for this would be to create a Symbolic link from a local directory to the network drive directory.

  • To create a symbolic link: Open “Command Prompt” as Administrator and type in > mklink /d "local path" \\SERVER-NAME\sharefilename
  • Pass in the path of the symbolic link as image or art storage root path in your web.config: storageRootPath="local path" artStorageRootPath="local path"
Question

We are interested to know how well the cloud offering
scales. For example, can we process thousands of transactions per second? Is there a limit to the number of transactions that we can use
concurrently?

Answer

The limitation will vary depending on the size of the documents and the type of work being performed on them.

PrizmDoc Cloud utilizes AWS servers to scale our services as demand increases, and we do currently rate limit total requests which should not exceed 100 requests within an eight second window. The window is rechecked every four seconds to determine if the rate limit is still in excess.

Question

Can I use all of the features and configuration options in PrizmDoc Cloud-Hosted that I can in PrizmDoc Self-Hosted?

Answer

Currently, PrizmDoc Cloud does not allow for editing the server central configuration parameters, but the defaults have been set to allow for more complex documents that might otherwise fail in order to account for the lack of ability to modify these options.

Question

With PrizmDoc Viewer (Self-Hosted), you need to purchase specific licenses to include certain functionality such as OCR, MSO, etc. With this in mind, are all features of PrizmDoc Cloud included with transaction and subscription purchases?

Answer

All features that PrizmDoc Cloud has to offer are available with either transaction or subscription purchases.