Join us for an engaging webinar, as we unravel the potential of AI for revolutionizing document management.
Watch Now
Enable your employees to remain productive throughout the document management process.
Read More
Learn how SmartZone uses a regular expression engine integrated into the recognition engine to achieve the best possible accuracy on data that can be defined by a regular expression.
Docubee is an intelligent contact automation platform built to help your team success
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?
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.
searchTask
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:
pagesWithoutText
searchTasks
[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.
Where does PrizmDoc store E-Signatures and how can I retrieve them?
PrizmDoc does not store E-Signatures on the server. However, PrizmDoc does store them in the browser’s local storage so that an end user can use the same signature across multiple documents and multiple sessions within the same browser.
In the Viewer Sample, end users are able to save their individual signatures for their own record using the “Download Signature” button under the Manage E-Signatures menu. This will download a plain-text JSON file of the selected signature.
In the E-Signing Sample, if you want to retrieve the E-Signature from your own browser, you can open the developer tools (F12 on Chrome), go to the application tab, select local storage, and inside you can find the JSON of the E-Signature in the value of pccvEsignSignatures.
pccvEsignSignatures
In PrizmDoc, my document appears to be small on the page relative to the viewer. How can I fix this?
By default, PrizmDoc renders a PDF file according to the MediaBox, which is normally the same as CropBox, though sometimes this is not the case. The larger area you see in the PrizmDoc Viewer is the size of the MediaBox. Please note that the product provides the fileTypes.pdf.pageBoundaries control option (or useCropBox in the older versions) to change the default behavior. Try setting the option to cropBox in the Central Configuration File in order to get the PDF content rendered according to the CropBox. You can read more about configuring image frame rendering in our documentation here.
fileTypes.pdf.pageBoundaries
useCropBox
cropBox
For additional reading, see 7.7.3.3 on “User Space” of Adobe’s PDF 1.7 specification:
https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf
Note: In some older versions of PrizmDoc, there exists an issue where setting the pageBoundaries field to cropBox can cause light blurring/distorting on the page. This issue was addressed in version 13.4.
pageBoundaries
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?
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/
In PrizmDoc, why do I fail to load/convert Excel documents with the error “Exception from HRESULT: 0x800AC472”?
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:
Exception from HRESULT: 0x800AC472
MsOfficeConverter.log
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.
HRESULT
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
Why am I seeing requests sent through pcc.ashx when they shouldn’t be?
The default option for the imageHandlerUrl is pcc.ashx so if, for instance, you misspelled imageHandlerUrl or in some other way do not have the setting properly implemented, you will see requests sent through pcc.ashx.
imageHandlerUrl
This has been seen when trying to set up the pas-service reverse proxy redirect for Prizm Application Services (PAS).
A sample implementation of this setting can be found in the viewer.js around line 288.
viewer.js
options.imageHandlerUrl = options.imageHandlerUrl || "../pcc.ashx";
Can I host multiple PrizmDoc viewers on a single page?
It is possible to host multiple viewers on a single page. The following example leverages Bootstrap’s tab implementation:
<!DOCTYPE html> <html lang="en"> <head> <!-- Metadata --> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /> <meta name="description" content="" /> <!-- Title --> <title>AccuSample</title> <!-- Libraries --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/css/bootstrap.min.css"> <!-- PrizmCSS --> <link rel="stylesheet" href="https://pcc-demos.accusoft.com/static/viewer-latest/css/viewercontrol.css"> <link rel="stylesheet" href="https://pcc-demos.accusoft.com/static/viewer-latest/css/viewer.css"> <!-- Inline Stylesheet --> <style> body { overflow-y: hidden; } #viewer1, #viewer2 { height: calc(100vh - 3em); width: 100%; } </style> </head> <body> <!-- #main --> <main class="container"> <ul class="nav nav-tabs" role="tablist"> <li class="nav-item"> <a class="nav-link active" id="viewer1-tab" data-toggle="tab" href="#viewer1">Viewer 1</a> </li> <li class="nav-item"> <a class="nav-link" id="viewer2-tab" data-toggle="tab" href="#viewer2">Viewer 2</a> </li> </ul> <div class="tab-content"> <div class="tab-pane fade show active" id="viewer1" role="tabpanel"> <div id="viewer1"> </div> </div> <div class="tab-pane fade" id="viewer2" role="tabpanel"> <div id="viewer2"> </div> </div> </div> </main> <!-- Libraries --> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.1/umd/popper.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/js/bootstrap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> <!-- PrizmJS --> <script src="https://api.accusoft.com/v1/docstore/viewer/assets/classic/bundle.js"></script> <script src="https://pcc-demos.accusoft.com/static/viewer-latest/js/jquery.hotkeys.min.js"></script> <script src="https://pcc-demos.accusoft.com/static/viewer-latest/js/viewercontrol.js"></script> <script src="https://pcc-demos.accusoft.com/static/viewer-latest/js/viewer.js"></script> <!-- Inline Script --> <script> var viewingSessionId1; var viewerControl1; var viewingSessionId2; var viewerControl2; $(document).ready(function() { $.ajax({ "type": "post", "url": "https://api.accusoft.com/PAS/V1/ViewingSession", "headers": { "acs-api-key": "" }, "data": JSON.stringify({ "source": { "type": "url", "url": "" } }) }).done(function(response) { viewingSessionId1 = response["viewingSessionId"]; // Initialize viewer viewerControl1 = $("#viewer1").pccViewer({ documentID: viewingSessionId1, imageHandlerUrl: "https://api.accusoft.com/v2/viewers/proxy", language: languageItems, template: htmlTemplates }).viewerControl; }); $.ajax({ "type": "post", "url": "https://api.accusoft.com/PAS/V1/ViewingSession", "headers": { "acs-api-key": "" }, "data": JSON.stringify({ "source": { "type": "url", "url": "" } }) }).done(function(response) { viewingSessionId2 = response["viewingSessionId"]; // Initialize viewer viewerControl2 = $("#viewer2").pccViewer({ documentID: viewingSessionId2, imageHandlerUrl: "https://api.accusoft.com/v2/viewers/proxy", language: languageItems, template: htmlTemplates }).viewerControl; }); }); </script> </body> </html>
What browsers does PrizmDoc support?
Please refer to our latest documentation for the most up-to-date list of supported browsers:
For documentation on older versions of PrizmDoc, please see our documentation archive.
What are the absolute essentials for embedding the PrizmDoc Viewer into my web page/application?
Viewer API (viewercontrol.js)
The Viewer API is the base building block of the Viewer. We ensure that API changes are backward compatible with point releases (for example, PrizmDoc v13.5 → PrizmDoc v13.6) and will not introduce breaking changes unless critical. With major releases we also endeavor to ensure backward compatibility with previous releases of the Viewer API.
HTML Templates (viewerCustomization.js) and CSS (viewercontrol.css, viewer.css)
The Viewer that is shipped with the product will be maintained and enhanced from release to release. The Viewer HTML and CSS markup will change with each release. Once you have begun to modify your markup, it is recommended that you consider subsequent PrizmDoc releases as sample code, in which you would evaluate product changes and choose to incorporate all or parts of those changes into your customization.
JavaScript files (viewer.js)
The Viewer JavaScript that lies above the Viewer API is unobfuscated and open for customization. While we expect many developer needs will be satisfied through configuration parameters and minor HTML or styling changes, some developers will desire to modify viewer.js for more advanced customization. You should carefully consider your development and ongoing maintenance strategy to ensure that future releases of PrizmDoc are easy to integrate into your customizations. We cannot guarantee backward compatibility of viewer.js in future releases as it is central to the functionality of the Viewer.
For information on integrating PrizmDoc Viewer, see the Getting Started section of the documentation.
For more in depth customization, see the PrizmDoc Customization section of the documentation.
Can I run PrizmDoc Viewer in a Windows Docker container?
No, you cannot run PrizmDoc Viewer in a Windows Docker container. This is because Windows Docker containers do not provide the full environment that a Virtual Machine or regular Windows system install provides.
However, this is not the same thing as using a Windows system as a Docker Host, which actually can run PrizmDoc Viewer in a Linux Docker container.
Does viewing HTML in PrizmDoc Viewer allow JavaScript execution or local file access? Can PrizmDoc Viewer block externally-referenced content from being rendered?
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.
security.htmlRendering.blockExternalContent