Technical FAQs for "PrizmDoc"

Question

My document appears to be loading incorrectly. Are there any troubleshooting steps that I can take?

Answer

First, confirm that this is a document-specific issue by trying other documents of the same file type or documents of the same file type with similar size characteristics and content.

Second, if the document is a Microsoft Office document and you are using LibreOffice as your backend renderer, you can compare the way that the document displays in PrizmDoc against the way the document displays in the copy of LibreOffice shipped with PrizmDoc (C:\Prizm\libreoffice\program\soffice.exe on Windows, /usr/share/prizm/libreoffice/program/soffice on Linux). To inquire about the Microsoft Office renderer plugin, which may resolve office document rendering issues, send an email to sales@accusoft.com.

Third, reach out to a support technician at support@accusoft.com, as they will be able to quickly test how the document renders in the latest version of PrizmDoc, and consult the product engineers in the event that there is a rendering issue.

Have the following information handy, as it will help the support technician better assist you:

  • What version of PrizmDoc are you using?

  • What operating system are you using?

    • If Windows, are you using the LibreOffice or Microsoft Office backend renderer?
  • A PDF export or a screenshot of what you see in PrizmDoc, compared to a screenshot of how the document looks in its native file type viewer.

  • Log files that include the processing of the incorrectly loading document.

  • Any changes that you may have made to the PrizmDoc configuration files.

Question

I need to store a unique ID with each of my marks. Is the ID returned by Mark.GetID() unique?

Answer

The ID generated by Mark.GetID() is only unique for that instance of the viewing session (for example, if you refresh the page, the counter for mark IDs will reset to 1).

If you are saving your marks to markup layers using the SaveMarkupLayers() method, then each mark will have a unique ID generated which will be stored in the “uid” key in the markup layer JSON.

If you are saving your marks as XML, using the SaveMarks() method, then each mark’s unique ID will be stored in the key “nodeId”.

If you want to generate your own unique ID for your marks, you can include the code below in your viewer.js to generate a UUID. A UUID contains 122 randomly generated bits so you shouldn’t need to worry about any duplicate IDs:

    function uuidv4() {
      return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
        (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
      )
    }

You can store this UID in the marks data using Mark.SetData("ID", uuidv4());.

You can then use Mark.GetData("ID"); to retrieve the ID at a later time.

Question

We are converting emails into PDFs using PrizmDoc. When the PDF is viewed in PrizmDoc, if you hover over the names in the email header, you see a mailto link that provides the email address.

Is there a way to remove those links during the conversion process? We wish to ensure there are no email addresses present in the PDFs.

Answer

To work around this issue, you can first convert the email (MSG) to a TIFF file. This will remove the links and just keep the name of the email recipient. Then convert the TIFF file to a searchable PDF.

This workaround requires that your PrizmDoc license has the OCR option enabled to create the searchable PDF. If you do not need to make the text searchable, then you can just convert the TIFF to a PDF.

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

Where is your PrizmDoc Cloud environment hosted? Is your cloud solution running on AWS?

Answer

Our PrizmDoc Cloud environment is hosted on Amazon Web Services (AWS) running in us-east-1 (Virginia).

Question

I know the coordinates and dimensions of the content I would like to highlight, but the highlight annotation only works on text. Is there a way to create an annotation that highlights a specific area of a document?

Answer

The best way to do this would be to create a yellow rectangle annotation with 50% opacity (these are the same default values used by the text highlight annotation). The code below demonstrates how to do this in the viewer:

//Create a new rectangle annotation
var rectangleMark = viewer.viewerControl.addMark(1,  PCCViewer.Mark.Type.RectangleAnnotation);
//Set the coordinates and dimensions of the annotation
rectangleMark.setRectangle({x: 100, y:  100,  width : 200, height: 200});
//Set fillcolor to yellow
rectangleMark.setFillColor("#FFFF00");
//Remove the border
rectangleMark.setBorderColor("transparent");
//Set opacity to 50%
rectangleMark.setOpacity(127);
Question

In the PrizmDoc Viewer, what are the two different ways to load annotation layers?

Answer

PrizmDoc has two options for loading annotations, the “My Annotations” pane and the “Annotations for Review” pane.

The “My Annotations” pane is used to load a single annotation layer for editing. You can add, delete, or make changes to annotations and then save those changes using the “My Annotations” pane.

The “Annotations for Review” pane is used for viewing annotations. You can load as many annotation layers for viewing as you would like. You cannot interact with annotations loaded in this way, but you are able to make comments on them. You can toggle between any of these layers to hide them. You can also merge these annotations to the currently loaded annotation layer from “My Annotations”.

For more information see our documentation here: https://help.accusoft.com/PrizmDoc/latest/HTML/Annotation_Layers.html

Question

Today we noticed that when trying to start the Prizm service, it hangs for a few minutes and then displays an error: “Service Failed to start in a timely fashion”, and the service remains stopped.

The watchdog.console.log shows “DieError: Configuration error, failed to parse the configuration file”.

How can we fix this?

Answer

This issue typically happens when the server was not shut down properly, and some of the PrizmDoc files have become corrupted.

To resolve the issue, take the following steps:

  1. Make a backup of your PrizmDoc configuration files.
  2. Uninstall and then re-install PrizmDoc.
  3. Verify the service is running.
  4. Stop the service, restore backed-up configuration files.
  5. Restart Prizm service.
Question

When printing in PrizmDoc, the bottom of my document is being cut off. Why is this happening?

When I download the document as PDF, I do not lose parts of the document. However, if I print the document to PDF, I lose some data off the very bottom (maybe an inch or so).

Answer

In PrizmDoc, the page is to "fit to width" onto the paper by design. The bottom of the page will be cut off in cases where the length of the page extends further than the length of the paper. If you’re printing with Letter size paper (the default), it presumes a document that measures 8.50 by 11.00 inches. Suppose your document measures 8.50 x 13.00 inches. That additional 2 inches will be cut off during printing. This is why you may lose parts of the document while printing, but not if you download the document since it’s downloading the document as-is.  

To prevent this from happening, select a paper size large enough for your document (in the viewer print dialog and the system print dialog). Using the previous 8.50 x 13.00 inch example, you can select "Legal" size paper, which measures 8.50 x 14.00 inches, and would be long enough to support that document.

You could also modify your viewer to add a custom paper size if this fits your use case. Below is some sample code demonstrating this in our Viewer sample. You would need to enter your own custom paper sizes.

https://www.accusoft.com/code-examples/printing-custom-paper-sizes/

Changes to printTemplate.html:

    /*custom */
    .portrait .custom.page { width: 11in; height: 11in; margin: 0 auto !important; }
    .portrait .custom.pageIE { width: 9.5in; height: 9.5in; margin: 0 auto !important; }
    .portrait .custom.pageSafari { width: 8.9in; height: 8.9in; margin: 0 auto !important; }
    .portrait .custom.nomargins { width: 11in !important; height: 11in !important; }
    /* even without margins, Safari enforces the printer's non-printable area */
    .portrait .custom.nomargins.pageSafari { width: 9.32in !important; height: 9.32in !important; }
    
    .landscape .custom.page { height: 11in; width: 11in; margin: 0 auto !important; }
    .landscape .custom.pageIE { height: 9.05in; width: 9.05in; margin: 0 auto !important; }
    .landscape .custom.pageSafari { height: 8.4in; width: 8.4in; margin: 0 auto !important; }
    .landscape .custom.nomargins { height: 11in !important; width: 11in !important; }
    .landscape .custom.nomargins.pageSafari { height: 9.32in !important; width: 9.32in !important; }
    /*custom end*/

Changes to printOverlayTemplate.html (last line "Custom" is the only change):

    <select data-pcc-select="paperSize" class="pcc-print-select">
        <!-- US and International-->
        <option value="letter"><%= paperSizes.letter %></option>
        <option value="legal"><%= paperSizes.legal %></option>
        <option value="tabloid"><%= paperSizes.tabloid %></option>
        <option value="foolscap"><%= paperSizes.foolscap %></option>
        <!-- A formats-->
        <option value="a3"><%= paperSizes.a3 %></option>
        <option value="a4"><%= paperSizes.a4 %></option>
        <option value="a5"><%= paperSizes.a5 %></option>
        <!-- Architectural-->
        <option value="a6"><%= paperSizes.a6 %></option>
        <option value="a"><%= paperSizes.a %></option>
        <option value="b"><%= paperSizes.b %></option>
        <option value="c"><%= paperSizes.c %></option>
        <option value="d"><%= paperSizes.d %></option>
        <option value="e"><%= paperSizes.e %></option>
        <option value="e1"><%= paperSizes.e1 %></option>
            
        <option value="custom">Custom</option>
    </select>

Additionally, if you would like to change the default selected page size you can add selected to it as follows:

<option value=\"a4\" selected><%= paperSizes.a4 %></option>
Question

We wanted to upgrade our previous version of PrizmDoc to the most recent release. However, when trying to install the latest version, the installation is failing. What do I need to do to get the latest version installed?

Answer

Typically, this issue may occur if you are upgrading from an older major version to a new major version, such as from PrizmDoc 11 to PrizmDoc 12 or PrizmDoc 13. If you are upgrading from one minor version to another, such as PrizmDoc 13.1 to PrizmDoc 13.6, then it should be seamless.

If you do have issues in either circumstance, it is usually due to files, folders, or registry settings that were left behind from the older version.

In order to fix the installation, please follow the process below to ensure the previous version is completely removed.

  1. Ensure previous installation folders are deleted:

    \Prizm and \ProgramData\Accusoft.

  2. Back-up your Windows registry, and then click on Start > Run, and type in regedit

  3. Click Edit and select Find, and then type Prizm

  4. When it finds a match, right-click on the registry key and select Delete

  5. Click F3 to find the next match, and repeat Step 4 for each key.

  6. Repeat Step 5 until the search comes back with “Finished Searching Registry”

  7. Reboot Server and attempt to re-install.

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}