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
We are trying to create new viewing packages, however, in the [prizmdoc_process] table we see the process is 100% complete. However, the error code field indicates an Internal Error.
The document does not display in the viewing session and gives a 480 error. The following error code is:
{errorCode: “ViewingPackageNotUsable”}
What might be the issue?
When creating viewing packages, the PrizmDoc Application Services (PAS) uses the PrizmDoc Server to do the conversion work. In order for the viewing package to be created successfully, the PrizmDoc Server needs to be licensed and healthy.
If you see an error “ViewingPackageNotUsable” this can be related to the PrizmDoc Server either not being healthy or specifically not being licensed.
To verify the PrizmDoc Server status and if it is licensed, you can run the following command on the PrizmDoc Server in a web browser:
http://localhost:18681/admin
With PrizmDoc, how can I hide a predefined search if there are no results?
The predefined search option does not support that functionality, but you can instead perform a server-side search, and then activate the search panel if there are results to show:
var viewer; var viewingSessionId = <%= viewingSessionId %>; var fixedSearchTerm = "the"; var pasUrl = "/pas"; var viewerReady = false; var searchReady = false; var searchDisplayed = false; function displaySearchIfNeeded() { // The search is only displayed once the viewer is ready, and once our preliminary server-side search comes back positive. if (viewerReady && searchReady && !searchDisplayed) { searchDisplayed = true; $("[data-pcc-search=\"input\"]").val(fixedSearchTerm); $("[data-pcc-search=\"submit\"]").click(); } } function sendSearchPost() { $.ajax({ "method": "POST", "url": pasUrl + "/v2/viewingSessions/" + viewingSessionId + "/searchTasks", "data": JSON.stringify({ "input": { "searchTerms": [ { "type": "simple", "pattern": fixedSearchTerm, "caseSensitive": false, "termId": "0" } ] } }), "contentType": "application/json", "success": function(response) { $.ajax({ "url": pasUrl + "/v2/searchTasks/" + response["processId"] + "/results?limit=1", "success": function(response) { if (response.results.length !== 0) { searchReady = true; displaySearchIfNeeded(); } }, }); }, "error": function(jqXHR, textStatus, errorThrown) { if (jqXHR.status === 480) { setTimeout(sendSearchPost, 2000); } } }); }; setTimeout(sendSearchPost, 500); $(document).ready(function() { // Since we are no longer restricted to a predefined search, we can load the viewer ASAP. viewer = $("#viewer").pccViewer({ "documentID": viewingSessionId, "imageHandlerUrl": "/pas", "language": viewerCustomizations.languages["en-US"], "template": viewerCustomizations.template, "icons": viewerCustomizations.icons }); viewer.viewerControl.on("ViewerReady", function(event) { viewerReady = true; displaySearchIfNeeded(); }); });
When viewing documents within the PrizmDoc Viewer using a particular browser, we are seeing garbage text. Viewing the same document with other browsers shows the text properly. What could be causing this to occur?
There are two possible causes for this in Internet Explorer 11 and you can check the settings below to potentially fix the issue:
In Internet Explorer 11 settings, ensure the Font Download option is enabled:
Disable the “Turn off Data URI” support setting:
In Internet Explorer 11 settings, ensure Ignore font styles specified in webpages is not checked.
Ignore font styles specified in webpages
In Chrome this is a bug that was found about 3 years ago and fixed in Chrome Canary, but not in Chrome Stable at the time:
https://productforums.google.com/forum/#!msg/chrome/rpmz56gnFKc/nPLtsbYZBwAJ
This may be why Chrome is having problems. Consider either updating Chrome Stable to the latest version or testing in Chrome Canary to see if that fixes the garbage character issues with that browser.
In Mozilla Firefox there is a setting you can enable which could resolve this problem in that browser:
If I upload an HTML document to PrizmDoc that has image tags in it, will those images be rendered in the Viewer or will only the text be displayed?
What if the image tags are referencing local images?
When loading an HTML file, PrizmDoc will render image tags that are sourced from publicly accessible URLs. The relative links may not render though, as it’s likely that the source will not be found.
In PrizmDoc 13.2, a server-side configuration option called:
security.htmlRendering.blockExternalContent
was introduced to control whether or not externally-referenced HTML content will be blocked.
See the release notes for more information.
Why am I experiencing poor zoom or layout experience on mobile devices when pinching and navigating?
For the best mobile experience make sure and include the following meta tag in the head section of the document containing the viewer:
<metacontent="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"name="viewport"/>
When using Content Conversion Services, what are the supported input formats that it takes for conversion?
When using Content Conversion Services, you can input any image and document source type that PrizmDoc supports.
Here’s a link to the Content Conversion Services API for more information.
What’s the difference between a Viewing Session and a Viewing Package?
Viewing sessions require source information for the document that you want to view. There are 3 types of sources to choose from: File, URL, and viewing package.
A viewing package is a file you want to view that is stored in its already “converted state”, which we call “pre-conversion”. This is different than a file or URL because these sources are converted and set in a temporary cache folder for use until the cache is cleared out.
Viewing package information can be set to never expire which is useful if you have documents that will be viewed over and over again by many clients. This allows the server not to have to convert the file every time and increases performance.
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?
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 }); } }); }
How does the PrizmDoc print function work exactly?
Every page of the specified print range is being loaded and sent to the printer. This occurs in an iframe separate from what is shown in the Viewer so the user does not actually see this happening.
The actual method being used is one of the following, depending on the browser:
_iframe.contentWindow.document.execCommand('print', false, null);
_iframe.contentWindow.print();
When selecting download and including annotations, the resulting PDF does not include the comments. How can we obtain the file as a PDF with the annotation comments included?
By design, when using the download button, the comments to the annotations are not included in the download.
Workaround
When viewing an Excel document with hidden content in the viewer, the content remains visible when otherwise expected to remain hidden. Is this intended behavior?
Short answer: Yes.
Currently, both PrizmDoc Cloud and PrizmDoc Viewer (Self-Hosted) are configured to render hidden content by default, so this is expected behavior.
For PrizmDoc Viewer (Self-Hosted) users, this rendering behavior is configurable using the central configuration file.
The file paths for the central configuration file are:
Simply add/modify the following parameter:
fileTypes.excel.renderHiddenContent: false
Setting the render option to false will hide content as expected, whereas true will render it.
false
true
In some other viewers, there are highlights or markers that appear on the UI to indicate that annotations are available for a given page or document. Is there a way to implement this in PrizmDoc?
Sure can, you just need to make a MarkupLayerRecords request to determine if there are marks that pertain to the given Viewing Session. Keep in mind that documents don’t really have a specific set of annotations associated with them though — Markup IDs do, and you can specify any Markup ID you want when you create a viewing session:
MarkupLayerRecords
// Add rules to your CSS for the following classes. // The actual style information can be whatever you like. // // .mark-indicator { // background-color: gold !important; // } // // .marked-page-indicator { // background-color: gold !important; // } let pasUrl = "http://localhost/pas-service"; // Example PAS proxy URL let viewingSessionId = <%= viewingSessionId %>; // Example viewingSessionId let thumbnailButton = $(".pcc-icon-thumbnails"); let pageIndicatorsAdded = false; let thumbnailsClicked = false; let marksRetrieved = false; let markedPages = {}; async function addPageIndicators() { console.log("Attempting to add page indicators..."); if (thumbnailsClicked && marksRetrieved && !pageIndicatorsAdded) { console.log("Conditions met."); let wrappers = $(".pccThumbnailWrapper"); wrappers.each(function(index, wrapper) { if (markedPages[index]) { $(wrapper).addClass("marked-page-indicator"); } }); pageIndicatorsAdded = true; } else { console.log("Conditions not met"); } } thumbnailButton.click(function() { console.log("Thumbnails button clicked."); thumbnailsClicked = true; addPageIndicators(); }); async function apiCall(type, url, body = {}) { return await $.ajax({ "type": type, "url": url, "contentType": "application/json", "data": JSON.stringify(body) }); } async function createMarkIndicators() { let output = await apiCall("GET", `${pasUrl}/MarkupLayers/u${viewingSessionId}`); if (output.length > 0) { console.log("Found layers."); thumbnailButton.addClass("mark-indicator"); let layers = await Promise.all(output.map(function(element) { return apiCall("GET", `${pasUrl}/MarkupLayers/u${viewingSessionId}/${element.layerRecordId}`); })); layers.forEach(function(layer) { layer.marks.forEach(function(mark) { markedPages[mark.pageNumber - 1] = true; }); }); marksRetrieved = true; console.log("Marks retrieved."); addPageIndicators(); } else { console.log("No layers found."); } } createMarkIndicators();