Technical FAQs

Question

In PrizmDoc, why do I fail to load/convert Excel documents with the error “Exception from HRESULT: 0x800AC472”?

Answer

The error message Exception from HRESULT: 0x800AC472 is usually associated with a failure involving an Excel document, found in the MsOfficeConverter.log. Below are some known triggers of it:

If the user is logged in as “SYSTEM”, “LocalSystem”, or any other non-user-account variant, this will cause PrizmDoc to fail when using MSO services. This is expected behavior when working with Microsoft Office documents in PrizmDoc. Please see step 6 of the Windows Installation documentation regarding this:

http://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#windows-installation.html

“Specify the login account (account name and password) that PrizmDoc Server will run under. If you are using the Microsoft Office (MSO) Conversion add-on, please make sure that the “login account” is a real user account with Administrator rights. Running PrizmDoc under the LocalSystem user or another Microsoft Windows integrated service account is not supported for this option.”

It’s also crucial that the copy of Microsoft Office on the system has been activated. A not-licensed, not-activated, expired, or trial license will all cause Microsoft Office to not work with PrizmDoc.

More information: https://help.accusoft.com/PrizmDoc/latest/HTML/windows-requirements.html

“The installed copy of Microsoft Office must be activated in order for PrizmDoc’s Microsoft Office Conversion Service to work properly. Not licensed, not activated, an expired or trial version of Microsoft Office will not work with PrizmDoc.”

Your default printer must be the Microsoft XPS Document Writer when working with Excel documents in PrizmDoc. Specifying another printer could possibly lead to this exception.

More information: http://help.accusoft.com/PrizmDoc/latest/HTML/natively-render-mso-documents.html

“The Microsoft Office Conversion Service requires the Microsoft XPS Document Writer printer driver to be installed for the best conversion performance and rendering fidelity of MS Excel documents”

Ensure the Print Spooler service is started and the Microsoft XPS Document Writer is the default printer.

There is a known issue with version 13.3 of PrizmDoc where completely blank Excel files are not loadable in the Viewer. They will fail to load and throw the aforementioned HRESULT exception. This has been fixed in PrizmDoc version 13.6.

In short, please set up the PrizmDoc service correctly to run with a real user account, ensure the copy of Microsoft Office has been activated, and make sure the default printer is set to “Microsoft XPS Document Writer”, then restart the service. This should fix this particular issue in most cases.


For more reading on considerations that Microsoft recommends when running their client-side MSO applications on the server, see this article:

Considerations for server-side Automation of Office

Today’s organizations gather information from a variety of sources. Structured forms remain one of the most popular tools for collecting and processing data, and anyone who has filled out such a form recently has likely encountered the familiar bubbles or squares used to indicate some form of information. Whether these marks are used to identify marital status, health conditions, education level, or some other parameter, optical mark recognition plays an important role in streamlining forms processing and data capture.

What is Optical Mark Recognition?

Optical mark recognition (OMR) reads and captures data marked on a special type of document form. In most instances, this form consists of a bubble or a square that is filled in as part of a test or survey. After the form is marked, it can either be read by dedicated OMR software or fed into a physical scanner device that shines a beam of light onto the paper and then detects answers based on how much light is reflected back to an optical sensor. Older OMR scanners detected answers by measuring how much light passed through the paper itself using phototubes on the other side. Since the phototubes were very sensitive, #2 pencils often had to be used when filling out forms to ensure an accurate reading.

Today’s OMR scanners are much more accurate and versatile, capable of reading marks regardless of how they’re filled out (although they struggle if the mark is made with the same color as the printed form). More importantly, OMR software has made it possible to capture data from OMR forms without the need for any special equipment. This is especially helpful for processing forms information that exists in digital format, such as PDF files or JPEG images. 

The History of Optical Mark Recognition

One of the oldest versions of forms processing technology, OMR dates back to the use of punch cards, which were first developed in the late 1800s for use with crude “tabulating” machines. The cards typically provided simple “yes/no” information based on whether or not a hole was punched out. When fed through the tabulating machine, a hole would be registered and counted. This same basic principle would allow more complex machines to perform basic arithmetic in the early 1900s before serving as the foundation for early computer programming by mid-century. Entire computer programs were stored on stacks of punch cards, which would remain in use until well into the 1970s when more powerful machines made them obsolete.

Although OMR operates on the same principle as a punch card, it instead uses scanning technology to detect the presence of a mark made by a pencil or a pen. This form of identification was first popularized by IBM’s electrographic “mark sense” technology in the 1930s and 1940s. The concept itself was first developed by a schoolteacher named Reynold Johnson, who wanted to streamline test grading. He designed a machine that could read pencil marks on a special test paper and then tabulate the marks to generate a final score. After joining IBM in 1934, Johnson spearheaded the development of the Type 805 Test Scoring Machine, which debuted in 1938 and revolutionized test scoring in the education sector. In production until 1963, the 805 could score 800 sheets per hour when run by an experienced operator.

The 805 registered marks by using metal brushes to sense the electrical conductivity of graphite from the pencil lead. While effective, it had limitations in terms of reading speed and flexibility. When Everett Franklin Lindquist, best known as the creator of the ACT, needed a machine that could keep up with Iowa’s widespread adoption of standardized testing in the 1950s, he developed the first true optical mark reader. Patented in 1962, Lindquist’s machine detected marks by measuring how much light passed through a scoring sheet and was capable of scoring 4,000 tests per hour.

Throughout the 1960s, OMR scanning technology continued to improve and spread to a variety of industries looking for ways to rapidly process data. In education, however, the OMR market would soon be dominated by the Scantron Corporation, which was founded in 1972 to market smaller, less expensive scanners to K-12 schools and universities. After placing the scanners in educational institutions, Scantron then sold large quantities of proprietary test sheets that could be used for a variety of testing purposes. Scantron was so successful that their distinctive green and white sheets have become synonymous with OMR scanning for generations of US college students.

The next major innovation in OMR technology arrived in the early 1990s with dedicated OMR software that could replicate the drop-out capabilities of commercial scanners. Part of the reason why scanners used proprietary, pre-printed forms was so they could use colors and watermarks that would not register during scanning for more accurate reading. Thanks to OMR software, it became possible to create templated forms and then remove the form image during the reading process to ensure that only marked information remained.

Take Control of OMR Forms with Accusoft SDKs

Accusoft’s FormFix forms processing SDK features powerful production-level OMR capabilities. It not only detects the presence of check or bubble marks, but can also detect markings in form fields, which is particularly useful for determining whether or not a signature is present on a document. Capable of reading single or multiple marks at 0, 90, 180, and 270 degree orientations, FormFix can also recognize checkboxes and be programmed to accommodate a variety of bubble shapes. Its form drop-out and image cleanup features also help to ensure the highest level of accuracy during OMR reading.

For expanded forms functionality, including optical character recognition (OCR) and intelligent character recognition (ICR), developers can also turn to FormSuite for Structured Forms. Featuring a comprehensive set of forms template creation tools and data capture capabilities, FormSuite can streamline forms processing workflows and significantly reduce the costs and errors associated with manual data entry and extraction.

Find out what flexible OMR functionality can do for your application with a fully-featured trial of the FormSuite SDK. Get started with some functional sample code and explore FormFix’s features to start planning your integration.

Question

In PrizmDoc, why do I fail to load/convert Excel documents with the error “Exception from HRESULT: 0x800AC472”?

Answer

The error message Exception from HRESULT: 0x800AC472 is usually associated with a failure involving an Excel document, found in the MsOfficeConverter.log. Below are some known triggers of it:

If the user is logged in as "SYSTEM", "LocalSystem", or any other non-user-account variant, this will cause PrizmDoc to fail when using MSO services. This is expected behavior when working with Microsoft Office documents in PrizmDoc. Please see step 6 of the Windows Installation documentation regarding this:

http://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#windows-installation.html

"Specify the login account (account name and password) that PrizmDoc Server will run under. If you are using the Microsoft Office (MSO) Conversion add-on, please make sure that the "login account" is a real user account with Administrator rights. Running PrizmDoc under the LocalSystem user or another Microsoft Windows integrated service account is not supported for this option."

It’s also crucial that the copy of Microsoft Office on the system has been activated. A not-licensed, not-activated, expired, or trial license will all cause Microsoft Office to not work with PrizmDoc.

More information: https://help.accusoft.com/PrizmDoc/latest/HTML/windows-requirements.html

"The installed copy of Microsoft Office must be activated in order for PrizmDoc’s Microsoft Office Conversion Service to work properly. Not licensed, not activated, an expired or trial version of Microsoft Office will not work with PrizmDoc."

Your default printer must be the Microsoft XPS Document Writer when working with Excel documents in PrizmDoc. Specifying another printer could possibly lead to this exception.

More information: http://help.accusoft.com/PrizmDoc/latest/HTML/natively-render-mso-documents.html

"The Microsoft Office Conversion Service requires the Microsoft XPS Document Writer printer driver to be installed for the best conversion performance and rendering fidelity of MS Excel documents"

Ensure the Print Spooler service is started and the Microsoft XPS Document Writer is the default printer.

There is a known issue with version 13.3 of PrizmDoc where completely blank Excel files are not loadable in the Viewer. They will fail to load and throw the aforementioned HRESULT exception. This has been fixed in PrizmDoc version 13.6.

In short, please set up the PrizmDoc service correctly to run with a real user account, ensure the copy of Microsoft Office has been activated, and make sure the default printer is set to "Microsoft XPS Document Writer", then restart the service. This should fix this particular issue in most cases.


For more reading on considerations that Microsoft recommends when running their client-side MSO applications on the server, see this article:

Considerations for server-side Automation of Office

Question

In PrizmDoc, why can’t I delete a full page redaction? The menu pops up for a rectangle redaction, so why not for a full page?

Answer

First, some terminology for PrizmDoc Viewer menus:

Traditionally, when you right click on a page, application, etc. the menu that pops up is called the “context menu”. However, in PrizmDoc, we refer to that menu as the Immediate Actions Menu, and there is a larger box that appears off to the side that we call the Context Menu

This functionality is viewable in the demo linked below. When you create a full page redaction and right-click on it, you get the Immediate Actions Menu. When you create a rectangle redaction and left- or right-click on it, off to the side you’ll see the Context Menu, and can delete it using either that menu or the “delete” key.

https://www.accusoft.com/demos/redaction-demo/

When you make a full page redaction, the only way to delete it is by using the delete button in the Immediate Actions Menu. You cannot click on it and press “delete”, and you cannot delete it via our Context Menu. This is currently a design feature being discussed below at the time of writing:

https://ideas.accusoft.com/ideas/PDEN-I-512

By default, the parameter immediateActionMenuMode is set to off, which disables the menu. If you are having trouble getting this menu to open in your application, you may need to set it to be on when you have a redaction on the page. You can read more about enabling and disabling this feature here.

Question

What is the absolute bare minimum I need to use PrizmDoc Cloud?

Answer

This will allow you to load a document via a URL using PrizmDoc Cloud. Just include your PrizmDoc Cloud API key in the POST request headers.

Please note: This is purely intended as a proof-of-concept. You should never include your API key in your client-side Javascript.

<!DOCTYPE html>

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

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

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

    <!-- PrizmDoc CSS -->
    <link rel="stylesheet" href="https://raw.githack.com/Accusoft/hello-prizmdoc-viewer-with-nodejs-and-html/master/public/viewer-assets/css/viewercontrol.css">
    <link rel="stylesheet" href="https://raw.githack.com/Accusoft/hello-prizmdoc-viewer-with-nodejs-and-html/master/public/viewer-assets/css/viewer.css">

    <!-- Inline Stylesheet -->
    <style></style>

</head>
<body>

    <!-- #viewer -->
    <div id="viewer" class="pccv pcc-full-screen"></div>

    <!-- Libraries -->
    <script src="https://raw.githack.com/Accusoft/hello-prizmdoc-viewer-with-nodejs-and-html/master/public/viewer-assets/js/jquery-3.4.1.min.js"></script>
    <script src="https://raw.githack.com/Accusoft/hello-prizmdoc-viewer-with-nodejs-and-html/master/public/viewer-assets/js/jquery.hotkeys.min.js"></script>
    <script src="https://raw.githack.com/Accusoft/hello-prizmdoc-viewer-with-nodejs-and-html/master/public/viewer-assets/js/underscore.min.js"></script>

    <!-- PrizmDoc JS -->
    <script src="https://raw.githack.com/Accusoft/hello-prizmdoc-viewer-with-nodejs-and-html/master/public/viewer-assets/js/viewercontrol.js"></script>
    <script src="https://raw.githack.com/Accusoft/hello-prizmdoc-viewer-with-nodejs-and-html/master/public/viewer-assets/js/viewer.js"></script>
    <script src="https://raw.githack.com/Accusoft/hello-prizmdoc-viewer-with-nodejs-and-html/master/public/viewer-assets/js/viewerCustomizations.js"></script>

    <!-- Inline Script -->
    <script>

        let viewingSessionId;
        let viewerControl;

        $(document).ready(function() {
            $.ajax({
                "type": "POST",
                "url": "https://api.accusoft.com/prizmdoc/ViewingSession",
                "headers": {
                    "acs-api-key": "4lTamQVZmrkqZhH8cZhdu7L0xyhUa3gorcaCFQpA_zmuowZs4zoF39V4IckpnVW_"
                },
                "data": JSON.stringify({
                    "source": {
                        "type": "url",
                        "url": "https://www.usability.gov/sites/default/files/creating-wireframes.pdf"
                    }
                })
            }).done(function(response) {
                PCCViewer.Ajax.setHeaders({
                    "acs-api-key": "4lTamQVZmrkqZhH8cZhdu7L0xyhUa3gorcaCFQpA_zmuowZs4zoF39V4IckpnVW_"
                });

                viewingSessionId = response["viewingSessionId"];

                // Initialize viewer
                viewerControl = $("#viewer").pccViewer({ 
                    "documentID": viewingSessionId,
                    "imageHandlerUrl": "https://api.accusoft.com/prizmdoc",
                    "language": viewerCustomizations.languages["en-US"],
                    "template": viewerCustomizations.template,
                    "icons": viewerCustomizations.icons,
                    "annotationsMode": "LayeredAnnotations"
                }).viewerControl;

                viewerControl.on("ViewerReady", function() {
                    console.log("Ready!");
                });
            });
        });

    </script>

</body>
</html>
Question

How can I annotate or redact search results within PrizmDoc? What annotation or redaction types are supported? How can I change the properties of the created marks?

Answer

You can annotate or redact search results using the addMarkFromSearchResult() function from ViewerControl. This function creates a new mark of a specific type and adds it to the location where the specified search result is.

The addMarkFromSearchResult() supports mark types: TextSelectionRedaction, HighlightAnnotation, StrikethroughAnnotation and TextHyperlinkAnnotation.

The addMarkFromSearchResult() function takes two arguments: searchResult and markType. The searchResult is the search result that you want to annotate/redact and markType is the type of mark that will be created.

To perform a search and redact the search results, use the following example:

var requestObject = PCCViewer.search('Con');
 var marks = [];
 var mark;
 requestObject.on(PCCViewer.EventType.SearchCompleted, function (event) {
     var searchResults = event.completedSearchResults;
     for (var i = 0; i < searchResults.length; i++) {
         mark = viewer.viewerControl.addMarkFromSearchResult(searchResults[i], PCCViewer.Mark.Type.TextSelectionRedaction);
         marks.push(mark);
     }
 });

To create a different annotation type from a search result you would change the second argument to the different type. For example, if you wanted a textHyperLinkAnnotation you could do the following:

mark = viewer.viewerControl.addMarkFromSearchResult(result, PCCViewer.Mark.Type.TextHyperlinkAnnotation);

Changing the properties of the mark is fairly straightforward. To set the fill color and the URL string in the TextHyperlinkAnnotation, you would add this after creating the mark:

mark.setHref("https://www.accusoft.com");
mark.setFillColor("#FF0000");

More information on mark types and their properties can be found in our documentation here.

 

Curious about how to use PrizmDoc with Node.JS and React? You’ve found the right video! Watch as a Technical Support Rep takes you through the PrizmDoc Node.JS and React GitHub sample.

For additional information, please visit PrizmDoc!  To learn more about Accusoft, please visit www.Accusoft.com.

Question

With a fully-running PrizmDoc environment (version prior to v10.5), I’m noticing times where the system becomes unresponsive. That is, at some point, it no longer processes requests being made to the backend and I have to restart PrizmDoc in order to alleviate it. What could be causing this?

Answer

Prior to version 10.5, PrizmDoc used ProxyServer as its image processing system. Our Development Team eventually began seeing that the ProxyServer exhibited architectural problems that lead to a multitude of issues, such as unresponsiveness.

Starting in version 10.5, the Development Team created the Prizm Content Connect Imaging Service (PCCIS), which is far more stable.

To resolve this issue we suggest upgrading to the latest revision of PrizmDoc. Please see the product page for more information found here: https://www.accusoft.com/products/prizmdoc/overview/

TAMPA, Fla. – On September 22, 2020, Accusoft announced its latest SDK, ImageGear PDF. This integration enables developers to add a variety of PDF functionalities into an application.

“We are proud to add ImageGear PDF as the latest addition to our product portfolio,” says Jack Berlin, CEO of Accusoft. “We recognized a need in the market for a more robust PDF solution that developers could use to enhance their products. Using our proprietary technology, I knew we could bridge that gap.”

ImageGear PDF gives end-users the ability to merge multiple PDFs, split a PDF into multiple PDFs, rearrange pages within a PDF, add pages or remove pages in a PDF, and more. The SDK adds programmatic annotation capabilities as well as compression, signature, comparison, and data capture.

“ImageGear PDF is a great tool for developers looking to enhance their application,” says Mark Hansen, Sr. Product Manager of SDKs. “Accusoft has a variety of different PDF solutions, but we wanted to add a more robust SDK that solves PDF pain points more efficiently.”

ImageGear PDF is available with an optical character recognition (OCR) add-on feature, which programmers can use to search for specific characters within a document, highlight different sections, and markup the output for easier viewing and collaboration. To learn more about ImageGear PDF, please visit our website at accusoft.com/products/imagegear-collection/imagegear-pdf/.

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.

On March 10, 2021, Accusoft announced the arrival of the free-to-use Accusoft PDF Viewer, the latest addition to its family of PDF solutions. An entirely client-side integration with no complicated server dependencies, this lightweight JavaScript PDF viewer also features a responsive UI for out-of-the-box mobile support.

“We’re excited to offer this free version of the Accusoft PDF Viewer to developers,” says Jack Berlin, CEO of Accusoft. “Our team worked hard to build a viewer that’s a step above what you can get from open source offerings. We think it’s going to solve a lot of the problems developers typically encounter with existing PDF libraries.”

Accusoft PDF Viewer integrates into an application quickly and easily with just a few snippets of code. It runs entirely within the browser to deliver an optimized viewing experience across all devices. The intuitive UI controls allow users to zoom, pan, jump to page, navigate thumbnails, and pinch-to-zoom on mobile screens with ease. And thanks to lightning fast full-text search, locating essential information is easier than ever.

“Accusoft PDF Viewer is great for developers because it allows them to maintain complete control over documents without having to set up any cumbersome server infrastructure,” says Mark Hansen, Product Manager. “Having a responsive UI that adapts to mobile displays will also increase their flexibility tremendously.”

The free version of Accusoft PDF Viewer allows developers to quickly add powerful viewing capabilities to their web applications. We’re currently working on additional features (such as annotation and eSignature) that will be included in an upgraded paid version.

To learn more about Accusoft PDF Viewer or download it for a first-hand look, please visit our website.

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.