Discover the answers to Frequently Asked Questions below. If you do not see the answer to your specific question in the list below, please contact support.
Yes, and this FAQ will show you how! PrizmDoc comes packed with many tools that users can use to annotate documents; but what if you want to change the default properties of these annotations? Using our included Javascript API, it is very simple to do this!


For example, the ellipse tool draws an ellipse with a red fill and a black border, but what if we want a red border and a transparent fill? Adding the following code after initializing our viewer will do this for us:
// The tools used to create annotations on the viewer are called "Mouse Tools", PrizmDoc comes with a few predefined mouse tools.
var ellipseMouseTool = PCCViewer.MouseTools.getMouseTool('AccusoftEllipseAnnotation'); // Get the ellipse mouse tool
var template = ellipseMouseTool.getTemplateMark(); // Get the "template mark" that the mouse tool uses to create annotations
// Now we make the changes we want to the template:
ellipseMouseTool.templateMark = template; // Finally, save the changes to the mouse tool
Ellipse before and after annotations properties changed


If you’re noticing that annotation tools will not stay selected upon release of the mouse this can be enabled by following the steps below.

There are two states of selection for the annotation tools buttons:

  • On the first click the annotation tool will not remain selected when releasing the left mouse button after drawing/creating an annotation.
  • If the tool button is clicked twice before drawing/creating an annotation it will remain selected after releasing the left mouse button upon drawing/creating an annotation

Here is the difference using the freehand tool as an example:

One click: twoClick Second click: oneClick

More information can also be found here:

Currently there is no way to move a license key from one machine to another. Once a license key is tied to a machine, you can remove it from the machine (using the License Manager or manually deleting it from the registry), but that will not credit a license to your account. That said, if you run into an issue where you have licensed a machine by mistake, please contact as they will work with you. We understand this is a current limitation of our licensing system and don’t want you to be adversely affected. Also, typically a development license comes with three "keys", so if you want to license an additional machine you most likely can. Run and log in to the License Manager and you can see the number of license keys remaining. remaining
There are some steps that can be taken to help deter legitimate end users from downloading, saving, sharing and printing your documents and data in PrizmDoc. See our page on configuring Digital Rights Management (DRM). The use of watermarks is also commonly used to prevent the leaking and exfiltration of data. Please refer to our help document on the use of watermarking in PrizmDoc.
You can receive an audit log of user events from the Viewer when certain actions are performed. Please refer to the help documentation for full instructions on receiving JavaScript events from Prizm Content Connect/PrizmDoc.
No, although if you run an Accusoft licensing utility (as opposed to an OEM key) that will communicate with the Accusoft servers to place a license on your machine. That's it. When you run your code, network access to Accusoft servers is not necessary.

On January 25th, 2017 Google began their rolling update of Chrome 56. Shortly thereafter it was discovered that this new update breaks our premiere document viewer, PrizmDoc.

In Google Chrome 56, when accessing a web server running PrizmDoc v12.0 or v12.1, certain documents are affected by a rendering issue caused by scrolling (specifically with the mouse wheel) or by using the keyboard Page Up and Page Down keys, which causes the renderer to stop functioning properly.

    To fix this issue:
    • This issue was fixed in PrizmDoc v12.2. Please update to the newest version of PrizmDoc if you're experiencing this issue.
    Currently, the MarkupBurner API only supports burning annotations into PDF. As a result any input file into the MarkupBurner will produce a PDF, regardless of the input file type. As a workaround for this, we suggest that you use a two step process whereby you will first send the document through the markup burning process, then send the resulting PDF to the Content Conversion Service to be converted the desired file type. Typically, the easiest place to implement this is on your webtier and avoids any of the CORS conflicts that would arise if you attempted to do this through the Viewing Client. Finally, this approach does have some restrictions. Currently, the Content Conversion Service only supports conversion of documents to the following formats: TIFF, PDF, SVG, PNG, and JPEG.
    To configure Prizm Application Services to point at the Accusoft Cloud-Hosted servers, modify the following values in the PAS configuration file: pccServer.hostName: "" pccServer.port: 443 pccServer.scheme: "https" pccServer.apiKey: "YOUR-API-KEY-HERE" ---- The configuration file is located in the following places. Windows: C:\Prizm\pas\ Linux: /usr/share/prizm/pas/pcc.nix.yml
    A common approach to log file management on Linux is the use of logrotate. While there is no native Windows equivalent of logrotate, the same functionality can be achieved through the use of a third-party application. Below is an annotated configuration file for logrotate which can be configured to your preferences. Simply add the configuration below to your system's logrotate configuration file and your system will automatically manage your PrizmDoc log files. This configuration can also be extended by using the prerotate and postrotate options to add custom script execution to your regular rotation.
    # Configuration File Location:
    # ============================
    # Linux:	/etc/logrotate.conf
    # Windows:	C:/Program Files (x86)/LogRotate/Content/logrotate.conf
    #	 (After installing [logrotatewin](
    # ================================
    # By default, PrizmDoc logs are located on Linux at:
    #     /usr/share/prizm/logs/*
    # and on Windows at:
    #     C:/Prizm/logs/*
    # For Windows, change the file paths below accordingly.
    /usr/share/prizm/logs/**/*.log {
    	# Rotate logs once per week. Available options are daily, weekly, monthly, and yearly.
    	# If no *.log files are found, don't freak out
    	# Keep 14 files before deleting old log files (That's a default of 2 weeks of logs.)
    	rotate 14
    	# Compress (gzip) log files
    	# Don't rotate empty files
    	# Run postrotate script after all logs are rotated. If this is not set, it will run postrotate after each matching file is rotated.
    	# Script to run before rotation is done.
    		echo "Pre-Rotate"
    	# Script to run after rotation is done.
    		echo "Post-Rotate"
    Currently, by default PAS will start as many instances as there are Logical Processors/Cores available on the machine that it is installed. We hope to modify this functionality in a future release as it is not ideal on machines that have up to 32 cores. However, it is possible to manually modify the instances started by editing the "instances" parameter in the production.json file found in the "..\Prizm\pas\pm2\" directory. Example below:
        "apps":  [{
            "name": "pas",
            "script": "app.js",
            "env": {
                "NODE_ENV": "production"
            "instances": 4,
            "exec_mode": "cluster_mode",
            "min_uptime": "15s",
            "max_restarts": 5,
            "out_file": "../logs/pas/pas-console.log",
            "error_file": "../logs/pas/pas-console.log"
    Below are the the possible ways to optimize viewing session loading times using using Viewing Session Properties.

    Each are Viewing Session properties you can pass in when first creating the viewing session using the PrizmDoc Server or Prizm Application Services Viewing Session RESTful APIs

    • startConverting- This property determines when the process to generate pages for viewing is started. This property requires that documentSource is "http" or "file" and contentType is set to a valid value. Valid values are:
      • "initialPages" means the process to generate pages for viewing is started during the initial POST /ViewingSession request.
      • "none" means the process to generate pages for viewing is started later during a request to POST /ViewingSession/{id}/Notification/SessionStarted, GET /Page or GET /PageAttributes, whichever comes first.
    • contentType - Determines the kind of content we will start pre-generating in the background so that it is ready for request more quickly.
      • In many cases, this property is optional (though it is required if documentSource is "http" or "file" and startConverting is "initialPages").
      • Note that setting this property does not set the default content type for future requests for page content, nor does it limit in any way the types of content you may request.
      • It is only a hint so that we can begin to prepare the kind of content you will likely soon request.
      • Valid values are:
        • "png"
        • "svg" - paths only, no inline font (not supported in IE8)
        • "svga" - paths optimized with an inline font (not supported in IE8, IE10)
        • "svgb" - paths further optimized with an inline font (not supported in IE8, IE9, IE10, desktop Safari 9.x or Chrome on Windows)
        • "Swf"
    • countOfInitialPages - The default value is 0, which will cause PrizmDoc Server to behave in its default manner converting all pages (running enterprise=3) of the document as soon as any page is requested.
      • Setting countOfInitialPages to a value greater than 0 will instruct PrizmDoc Server to use two separate enterprise=3 operations: one to convert pages 0 through n-1 (where "n" the supplied value) and a second conversion to process pages "n" through the end of the document.
      • The second conversion will only occur when content that has not been converted is requested. This should allow the first "n" pages to be created and delivered to the Viewing Client without forcing the entire document to be converted.

    We have put together the following example script logic in bash and powershell that has proven to be very helpful in recovering an Unhealthy PCC/PrizmDoc servers:


    Write-Host "Stopping Prizm"
    Stop-Service Prizm -Force
    Write-Host "Deleting C:\Prizm\Cache\*"
    remove-item -path "C:\Prizm\Cache\*" -Recurse -Force
    Write-Host "Deleting C:\ProgramData\Accusoft\Prizm\Temp\*"
    remove-item -path "C:\ProgramData\Accusoft\Prizm\Temp\*" -Recurse -Force
    Write-Host "Deleting C:\ProgramData\Accusoft\Prizm\Work\*"
    remove-item -path "C:\ProgramData\Accusoft\Prizm\Work\*" -Recurse -Force
    Write-Host "Deleting C:\ProgramData\Accusoft\Prizm\workOfficeConverter0\*"
    remove-item -path "C:\ProgramData\Accusoft\Prizm\workOfficeConverter0\*" -Recurse -Force
    Write-Host "Deleting C:\ProgramData\Accusoft\Prizm\workOfficeConverter1\*"
    remove-item -path "C:\ProgramData\Accusoft\Prizm\workOfficeConverter1\*" -Recurse -Force
    Write-Host "Starting Prizm"
    start-service Prizm
    Write-Host "Resetting IIS"


    #Stop the services
    sudo service pccis stop
    sudo service pas stop
    #Alternatively you may have to perform the following steps:
    #sudo /usr/share/prizm/scripts/ stop
    #sudo /usr/share/prizm/pas/pm2/ stop
    #Clear the cache directories
    sudo rm -rf /usr/share/prizm/cache/ContentConversionCache/ ;\
    sudo rm -rf /usr/share/prizm/cache/GroupState/ ;\
    sudo rm -rf /usr/share/prizm/cache/RedactionCache/ ;\
    sudo rm -rf /usr/share/prizm/cache/TempCache/ ;\
    sudo rm -rf /usr/share/prizm/cache/WorkfileCache/ \
    #Start the Services
    sudo service pccis start
    sudo service pas start

    Please keep in mind that the above scripts are examples and must be tailored to your specific environment, particularly with cache locations.

    If you want to restart Prizm Application Services (PAS) the following commands can be given: Windows Desktop: Right Click on Windows Icon, Select Run, type in Services.msc, Right Click on Prizm Application Services and select Restart Windows in PowerShell: Restart-Service PrizmApplicationServices In Linux: sudo service pas restart
    PAS(Prizm Application Services) exposes RESTful API endpoints to communicate with your application implementation. It is possible to interact with these APIs selectively to test connections and potential application workflows. We typically use Postman | Supercharge your API workflow(a RESTful API client) to test this and have put together the following collection that can be imported and used as a template for all PAS API endpoints.
      When running the Prizm Licensing Utility in Linux using and selecting  Node Locked deployment licenses, you may receive an error: The licensing configuration file you provided is invalid. Please retry your request or break the licensing process: 1) Retry [r] 2) Break [b] Choose 1 or 2: r This can typically be due to one of the following reasons:
    • File Does Not Exist
    • The name of the path or filename entered in the Prizm Licensing Utility was misspelled.
    • The solution name entered in the Prizm Licensing Utility was misspelled.
    • You do not have permission to the file
    • There is a newline at the end of the configuration file
      1. To  clear the possible newline at the end of the file  run truncate -s -1 <FileName> (Replace <FileName> with the name of your license configuration file)
    PrizmDoc utilizes LibreOffice for the rendering of MS Office document files. If you are noticing a document render poorly in PrizmDoc, you can try running one of the LibreOffice components to see if the rendering issue is occurring here as well. The included components are stored in the following location:
         [PRIZMDOC INSTALL LOCATION]\libreoffice\program
    The components themselves are as follows:
      * swriter.exe - For word processing, text files * scalc.exe - For spreadsheets * sdraw.exe - For layout documents * simpress.exe - For presentation documents
    If you are noticing that the document is rendering exactly the same, you can mention this when you contact Support. If you are seeing the document render correctly when loading into LibreOffice, however, then describe this as well. This will help isolate the area of focus if the issue needs to be reviewed by Product Engineering.
    This is the documentation on logs (you can see the part about which directory they go in and what “level” gets recorded): The levels are rated in order of high to low importance: FATAL, ERROR, WARN, INFO, DEBUG, and TRACE. If you choose ERROR you will not receive logs rated below ERROR. So choosing FATAL will give you the least logs.
    Applying new licenses to your PrizmDoc instance is simple and fun! To do this properly, follow these steps:

    Stop the PrizmDoc instance.

    On Windows:
    1. Open "Services" (Windows + R, enter "services.msc").
    2. Find "Prizm Application Services" and "Prizm".
    3. Stop both services.
    On Linux:
    1. Run the command "/usr/share/prizm/scripts/ stop".
    2. Run the command "/usr/share/prizm/pas/pm2/ stop".

    Run the Prizm License Utility (PLU).

    On Windows:
    1. Navigate to "C:\Prizm\plu" in the file explorer.
    2. Open "RunPLU.exe".
    3. Follow the prompts to apply a new license.
    On Linux:
    1. Run the command "java -jar /usr/share/prizm/plu/plu.jar".
    2. Follow the prompts to apply a new license.

    Start the PrizmDoc instance.

    On Windows:
    1. Open "Services" (Windows + R, enter "services.msc").
    2. Find "Prizm Application Services" and "Prizm".
    3. Start both services.
    On Linux:
    1. Run the command "/usr/share/prizm/scripts/ start".
    2. Run the command "/usr/share/prizm/pas/pm2/ start".
    That's it! Your existing PrizmDoc instance now has a new license applied it to! NOTE: If you encounter issues at any point, please ensure that you have the necessary permissions for these operations and start from the beginning. On Windows, this means following this procedure as a local administrator. On Linux, this means following this procedure as root.

    The port that the network.publicPort config value corresponds to is dependent on whether PCC is running in single-server or multi-server mode. In single-server mode, it is mapped to the  sep_port (Server Entry Point), and in multi-server mode it is mapped to cep_port (Cloud Entry Point).

    This way, regardless of which mode PCC is running in, the public port is where external requests should be directed. In multi-server mode, network.clusterPort is used for sep_port.

    So when enabling multi-server mode in the central configuration file(prizm-services-config.yml) you have to keep in mind that by default the cep_port will be 18681 and the sep_port will be 18682.

    If you have code in your implementation that relies upon port 18681 as the sep_port you can swap the ports. For example, if you are in Multi-Server Mode, by default to access your admin page you will need to navigate to http://localhost:18682/admin

    After swapping the default network.publicPort and network.clusterPort you can then navigate to http://localhost:18681/adminIf you decide to swap the ports so that 18682 is the cep_port(the default in previous multi-server mode configurations) then you will need to make sure to change pcc server port in the file(PAS configuration file)  

    By default in Windows you can locate the file in the C:\Prizm\pas directory. In Linux this file is by default located in the /usr/share/prizm/pas directory and named pcc.nix.yml.

    Below are screenshot examples of a configuration in which the cep_port is 18682 and the sep_port is 18681.      

    The following describes amended steps that need to be performed in order to install Asian fonts on RHEL 6 based distributions, such as CentOS 6. In these distributions, the old language font group packages are no longer available. Instead, these releases have “group” lists which bundle multiple packages together. In order to see all language packages available through this interface, you can type the following command:

    # yum grouplist This will output all group packages, the last section of which is “Available Language Groups”. Note that some packs may already be installed, in which case, they will be visible under “Installed Language Packs” at the top of the list. In this case, “chinese-fonts” is now “Chinese Support”. To install this package, run the following command: # yum groupinstall "Chinese Support" To install all languages listed in the help file, run the following commands: # yum groupinstall "Chinese Support" # yum groupinstall "Japanese Support" # yum groupinstall "Korean Support" # yum groupinstall "Kannada Support" # yum groupinstall "Hindi Support" If special language characters still do not appear in the Flash viewer when using the legacy ProxyServer service, add the following parameter to the conversion URL specified in your application: flashver=9
    Entering the following commands in a terminal will correctly install and start PrizmDoc 11.2:
    tar -xzvf prizmdoc_client_11.2.x86_64.rpm.tar.gz
    tar -xzvf prizmdoc_server_11.2.x86_64.rpm.tar.gz
    cd prizmdoc-server_11.2.0.625_rpm/
    sudo su
    yum install --nogpgcheck *.rpm
    cd ../prizmdoc_client_11.2.0031.6266.x86_64.rpm/
    yum install --nogpgcheck ./*.rpm
    sh /usr/share/prizm/ 
    yum install xorg-x11-server-Xvfb
    Xvfb :20 >/dev/null 2>&1 &
    export DISPLAY=:20
    /usr/share/prizm/scripts/ start
    Entering the following commands in a terminal will correctly install and start PrizmDoc 12.0:
    tar -xzvf prizmdoc_server_12.0.x86_64.rpm.tar.gz 
    tar -xzvf prizmdoc_client_12.0.x86_64.rpm.tar.gz  
    sudo su
    yum install --nogpgcheck ./prizmdoc_server_12.0.0.1730.x86_64.rpm/*.rpm
    yum  install --nogpgcheck ./prizmdoc_client_12.0.0032.2955.x86_64.rpm/*.rpm
    sh /usr/share/prizm/ 
    /usr/share/prizm/scripts/ start
    Entering the following commands in a terminal will correctly install and start PrizmDoc 12.0:
    tar -xzvf prizmdoc_server_12.0.x86_64.rpm.tar.gz 
    tar -xzvf prizmdoc_client_12.0.x86_64.rpm.tar.gz  
    sudo su
    yum install --nogpgcheck ./prizmdoc_server_12.0.0.1730.x86_64.rpm/*.rpm
    yum  install --nogpgcheck ./prizmdoc_client_12.0.0032.2955.x86_64.rpm/*.rpm
    sh /usr/share/prizm/ 
    /usr/share/prizm/scripts/ start
    yum install xorg-x11-server-Xvfb
    Xvfb :20 >/dev/null 2>&1 &
    export DISPLAY=:20
    Entering the following commands will install and start PrizmDoc 12.2 client, server and demo: wget wget tar xzvf prizmdoc_client_12.2.amd64.deb.tar.gz tar xzvf prizmdoc_server_12.2.amd64.deb.tar.gz dpkg --force-depends -i ./prizmdoc_server_12.2.0.2931.amd64.deb/*.deb dpkg --force-depends -i ./prizmdoc_client_12.2.0.263.amd64.deb/*.deb sudo apt -f install sudo /usr/share/prizm/ Please see our online help documentation for more information. Enjoy!
    When installing PrizmDoc on a headless Linux machine you must make sure to install an X11 Virtual Framebuffer Server To do so, you will need to follow Step 4 on the following page of our help documentation: If after performing the above steps the PrizmDoc Services are still Unhealthy, it may be because the C library language locale is not properly set. In that case you will want to execute the following steps to set your locale: First make sure your library language is installed
    • sudo apt-get install language-pack-en-base
    Then, as superuser, shorten the work by allowing Ubuntu to automatically configure them:
    • sudo dpkg-reconfigure locales
    Check your setup, if it's correct then good. But if you have the LANG= or LANGUAGE= settings blank, run this in command line:
    • locale -a
    Which generates the locales installed and available to you. Choose the locale from the output generated that fits your situation, and export that setting to replace your locales, for example:
    • export LC_ALL="en.utf-8"
    Lastly, restart prizm
    • /usr/share/prizm/scripts/ start
    To install PrizmDoc on a Microsoft Azure Ubuntu (14.04 LTS) Virtual Machine follow the instructions found here and here. Finally add this command to satisfy library dependencies: sudo apt-get install libxi6 libgconf-2-4
    Fetch the *.deb archives from our evaluation download page:
    Unpack and execute in each respective folder:
    • sudo dpkg --force-depends -i *.deb
    • sudo apt-get -f install
    Add the following to /etc/apache2/apache2.conf around line 176:
    • Alias /pccis_sample /usr/share/prizm/Samples/php
      <Directory /usr/share/prizm/Samples/php>
          AllowOverride All
          Require all granted
    Get sample dependencies:
    • sudo apt-get install php5-curl libapache2-mod-php5
    Restart all the things!
    • sudo apachectl restart && sudo /usr/share/prizm/pas/pm2/ restart && sudo /usr/share/prizm/scripts/ restart && sudo /usr/share/prizm/scripts/ restart
    Try it:
    Please see our online help documentation for more information.
    This is a quick check list to use when installing PrizmDoc on Windows: 1. Make a new VM. 2. Give it at least 32 GB of RAM* 3. Give is at least 4 CPU cores* 4. Install a supported Operating System* (Linux is best. 64 bit Windows 7 or newer, or 64 bit Windows Server 2008 R2 or newer will work) You must install all Windows Updates!! 5. Install the IIS, ASP, and .net 4.0 (or higher) features. 6. If you have an MSO license you must install Microsoft Office 2013 or 2016 Standard Edition. License, activate and run Microsoft Office. 7. Reboot. 8. Install the Windows Updates 9. Reboot 10. Right click and select “Run as Administrator” on the PrizmDoc Server installer. 11. Reboot 12. Right click and select “Run as Administrator” on the PrizmDoc Client installer, unless you are installing the client on another machine, which we recommend 13. Ensure that "Microsoft XPS Document Writer" is the default printer in "Devices and Printers. 14. Once it is running, never make any configuration changes. 15. Set Windows to make restore points so you can roll back to a known working system in case of failure. 16. Take frequent snapshots. This gives you a second way you can restore to a known working system. *PrizmDoc Tech Specs **PrizmDoc Installing Self-hosted **PrizmDoc Installing Cloud-hosted
    If you're attempting to apply a node-locked deployment license to a machine running in headless mode that has no internet connection, you'll need to make use of the X11 protocol. The first step in this process is to install an X Virtual Framebuffer Server on the headless machine. To do this, follow these steps:

    1. Run the following command: For Debian/Ubuntu: sudo apt-get install xvfb For Red Hat/CentOS: yum install xorg-x11-server-Xvfb

    2. Start the service by running the following command, and then export the instance to the DISPLAY environment variable expected by the PrizmDoc Server:

    Xvfb :20 >/dev/null 2>&1 & export DISPLAY=:20

    The next step, is to install XMing and PuTTY on the machine that will be remote accessing the headless machine: Now that everything is installed, a XMing server needs to be started on the connecting machine. To do this open an XLaunch session and navigate through the dialog, setting the configuration to the following:

    Display settings: "Multiple windows" Session type: "Start a program" Start program: "Using PuTTY" (here you’ll need to enter the headless machine's local IP and login credentials) Additional parameters: leave as default Finish

    The XMing server should now be running. The next step is to create a new PuTTY session, enabling X11 forwarding, like so:


    Next, point the PuTTY session to the remote machine and open the connection. Run the following commands to initiate the setup:

    cd /usr/share/prizm sh ./

    Finally, continue through the steps outlined here:

    If you would like a script that would check the health of a PrizmDoc server and attempt to start it automatically then the following bash script is for you. It works as is or can be modified to suit your needs. It works by checking Prizm's health at and if it does not receive an "OK" back it runs /usr/share/prizm/scripts/ restart and /usr/share/prizm/pas/pm2/ restart to restart Prizm and PAS. DISCLAMER: This is just a suggestion.
    while true; do
            if curl -sSf
                    echo " It is up!"
                    sleep 3
                    echo "Prizm is dead, sleeping 60 seconds just in case..."
                    sleep 60
                    if curl -sSf
                            echo "It is back up"
                            echo "Prizm is still dead, trying to restart now..."
                            /usr/share/prizm/scripts/ restart &
                            /usr/share/prizm/pas/pm2/ restart &
                            sleep 180
    PrizmDoc High Availability Best Practices Overview PrizmDoc can be configured to run as on a single server. It can also be installed on several machines and be configured to run in a multi-server mode. When in multi-server mode each server has a cloud entry port (by default this is TCP port 18681) and a server entry port (by default 18682). The request from Prizm Application Service (PAS) or you web tier should be directed to the cloud entry port. Once the server receives the request it will analyze this request and if it has an affinity token (see: SAAS Affinity Tokens and PrizmDoc Affinity Tokens) the server will route this request to the correct server's server entry port. If there is no affinity token the server will send it either to its own server entry port or the server entry port of another server based. This functions as a random load balancer. See: PrizmDoc Multi-Server Mode By default PrizmDoc server installs in a single server configuration. To put a server in mulit-server mode some changes should be made to the server's central configuration file (by default in Windows this is C:\Prizm\pas\ and in Linux this is in /usr/share/prizm/pas/pcc.nix.yml) You should have these lines (be sure to put in the IP addresses of your servers) network.publicPort: 18682 network.clustering.enabled: true network.clustering.clusterPort: 18681 network.clustering.servers: {"", "","} The above example should be put into all 3 computers (at,, and After changing the configuration file the Prizm and Prizm Application Service must be restarted. To achieve high availability with PrizmDoc servers you should implement your own load balancer which checks to see if each PrizmDoc instance is healthy. A server's health can be checked programmatically at this page: http://localhost:18682/admin (In single server mode this is found at http://localhost:18681/admin (notice the different port number)) See here: Checking PrizmDoc Health If the server does not respond with a webpage containing the word "healthy" the entry for that server should remove from the configuration in each of the remaining healthy servers and the load balancer does not forward requests to that server. The updated list can to a server with this command (this should be done to each healthy server and should be exactly the same for each server): PUT { "servers": [ { "address": "", "port": "18682" }, { "address": "", "port": "18682" } ] } The above example would take out of the list of servers being used. See: Checking PrizmDoc Health
    An effective method of troubleshooting the functionality/healthiness of the PrizmDoc Server services is to use our Static Viewer Test. You can do this by navigating to the following page on your PrizmDoc Server: http://localhost:18681/PCCIS/V1/Static/Viewer/Test The localhost portion should be changed to the IP of the PrizmDoc Server if it resides on a separate machine. When the page is loaded you can drag and drop a document or click to browse to a document of your choice. This test will verify that the PrizmDoc Services are running properly and rendering issues may be due to your implementation. If the Static Viewer Test fails please see our troubleshooting guide here you may be having the issue listed here: If this still doesn't work, please try our troubleshooting guide here: Please note this tool is available in the following versions of PrizmDoc/PCC: 9.3, 10.(0-5) , 11, 12 StaticViewerTEst
    1. Download Apache.  You can find it at the Apache Lounge.
    2. Extract it in C:\
    3. In Apache24\conf\httpd.conf uncomment the lines containing these phrases:
      1. proxy_module
      2. proxy_http_module
      3. mod_vhost
      4. Include conf/extra/httpd-vhosts.conf
    4. Change the contents of Apache24\conf\extra\httpd-vhosts.conf to this:
           ServerAdmin YOUREMAILADDRESS
           DocumentRoot "C:/Apache24/htdocs"
           ServerName PrizmDocURL
           ErrorLog "logs/proxy.log"
           CustomLog "logs/proxy.log" common
          ProxyRequests On
          ProxyPreserveHost Off
               Order deny,allow
               Allow from all
           <Location "/">
               ProxyPass        "http://PrizmDocURL:18681/" connectiontimeout=5 timeout=300
               ProxyPassReverse "http://PrizmDocURL:18681/"
    5. In that same file change where it says "PrizmDocURL" to your actual URL and "YOUREMAILADDRESS" to your actual email address
    6. Open a command prompt with administrtor privilges (click the start button, type 'cmd', right click the icon, select "Run As Adminstrator").
    7. Type
      c:\Apache24\bin\httpd -k start
    Wow!  That was easy.  Accusoft has an amazing support team!
    The following step by step directions show how to change all the HTTP API calls traveling between PrizmDoc and PAS into HTTPS traffic. If you have a policy requiring that all your "data in transit" be encrypted, this may be your solution. This assumes that PAS and PrizmDoc are on separate servers which communicate through the network.   Install PAS (aka PrizmDoc client) on Ubuntu 14.04. Name it PAS1. Install PrizmDoc on Ubuntu 14.04. Name it PrizmDoc1. The PAS server is named PAS1. The PrizmDoc server is named PrizmDoc1. These commands will make self-signed certificates (this is from the Official Ubuntu Certificates Documentation). Do this on both PAS1 and PrizmDoc1:
    sudo su
    openssl genrsa -des3 -out server.key 2048
    openssl rsa -in server.key -out server.key.insecure
    mv server.key
    mv server.key.insecure server.key
    openssl req -new -key server.key -out server.csr
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    sudo cp server.crt /etc/ssl/certs
    sudo cp server.key /etc/ssl/private
    sudo mkdir /etc/ssl/CA
    sudo mkdir /etc/ssl/newcerts
    sudo sh -c "echo '01' > /etc/ssl/CA/serial"
    sudo touch /etc/ssl/CA/index.txt
    openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
    sudo mv cakey.pem /etc/ssl/private/
    sudo mv cacert.pem /etc/ssl/certs/
    sudo openssl ca -in server.csr -config /etc/ssl/openssl.cnf
    cat server.crt server.key > server.pem
    Now we need to put the public certification from PAS1 onto PrizmDoc1 and vice versa. This allows each server to verify the other's identity. This example installs the SSH server and then uses secure copy (SCP) to move it over. Replace "user" with your actual username. On both servers do:
    sudo apt-get install openssh-server This installs and starts the SSH server
    On PAS1 do:
    scp PAS1.crt user@PrizmDoc1:~ This copies the certificate from PAS1 to PrizmDoc1
    On PrizmDoc1 do:
    cp /home/user/PAS1.crt /usr/local/share/ca-certificates/ Certs in the ca-certificates folder are trusted
    update-ca-certificates --fresh This updates the list of certs
    scp PrizmDoc1.crt user@PAS1:~ This copies PrizmDoc1's cert to PAS1
    On PAS1 do:
    cp /home/user/PrizmDoc1.crt /usr/local/share/ca-certificates/
    update-ca-certificates --fresh
    These commands will install the HAProxy 1.7. (From here) Do these same commands on both PrizmDoc1 and PAS1: apt-get install software-properties-common add-apt-repository ppa:vbernat/haproxy-1.7 apt-get update apt-get install haproxy Now lets change the config files in HAProxy at /etc/haproxy/haproxy.cfg. In PrizmDoc1 replace your file with this:
            log local0 notice
            maxconn 2000
            user haproxy
            group haproxy
            log /dev/log    local0
            log /dev/log    local1 notice
            chroot /var/lib/haproxy
            stats socket /run/haproxy/admin.sock mode 660 level admin
            stats timeout 30s
            user haproxy
            group haproxy
            log     global
            mode    http
            option  httplog
            option  dontlognull
            timeout connect 5000
            timeout client  50000
            timeout server  50000
            errorfile 400 /etc/haproxy/errors/400.http
            errorfile 403 /etc/haproxy/errors/403.http
            errorfile 408 /etc/haproxy/errors/408.http
            errorfile 500 /etc/haproxy/errors/500.http
            errorfile 502 /etc/haproxy/errors/502.http
            errorfile 503 /etc/haproxy/errors/503.http
            errorfile 504 /etc/haproxy/errors/504.http
    frontend ToPAS
     bind *:3001 ssl crt /root/PrizmDoc1.pem 
     option http-server-close
     option forwardfor
     reqadd X-Forwarded-Proto:\ https
     reqadd X-Forwarded-Port:\ 3001
     # set HTTP Strict Transport Security (HTST) header
     rspadd Strict-Transport-Security:\ max-age=15768000
     # some ACLs and URL rewrites...
     default_backend PAS 
    backend PAS
     #server PAS1 PAS1:3000
     server PAS1 PAS1:3001 ssl verify none
    frontend ToPrizmDoc
     bind *:18684 ssl crt /root/PrizmDoc1.pem 
     option http-server-close
     option forwardfor
     reqadd X-Forwarded-Proto:\ https
     reqadd X-Forwarded-Port:\ 18684 
     # set HTTP Strict Transport Security (HTST) header
     rspadd Strict-Transport-Security:\ max-age=15768000
     # some ACLs and URL rewrites...
     default_backend PrizmDoc
    backend PrizmDoc
     server PrizmDoc 
    Replace the configuration file (/etc/haproxy/haproxy.cfg) of PAS1 with:
    #working out SSL
    #notes enable SSL caching on webserver
            log local0 notice
            maxconn 2000
            user haproxy
            group haproxy
            log /dev/log    local0
            log /dev/log    local1 notice
            chroot /var/lib/haproxy
            stats socket /run/haproxy/admin.sock mode 660 level admin
            stats timeout 30s
            user haproxy
            group haproxy
            log     global
            mode    http
            option  httplog
            option  dontlognull
            timeout connect 5000
            timeout client  50000
            timeout server  50000
            errorfile 400 /etc/haproxy/errors/400.http
            errorfile 403 /etc/haproxy/errors/403.http
            errorfile 408 /etc/haproxy/errors/408.http
            errorfile 500 /etc/haproxy/errors/500.http
            errorfile 502 /etc/haproxy/errors/502.http
            errorfile 503 /etc/haproxy/errors/503.http
            errorfile 504 /etc/haproxy/errors/504.http
    frontend ToPAS
     bind *:3001 ssl crt /root/PAS1.pem 
     bind *:443 ssl crt /root/PAS1.pem
     option http-server-close
     option forwardfor
     reqadd X-Forwarded-Proto:\ https
     reqadd X-Forwarded-Port:\ 3001
     # set HTTP Strict Transport Security (HTST) header
     rspadd Strict-Transport-Security:\ max-age=15768000
     default_backend PAS 
    backend PAS
     server PAS
    frontend ToPrizmDoc
     bind *:18684 
     option http-server-close
     option forwardfor
     default_backend PrizmDoc
    backend PrizmDoc
     server PrizmDoc1 PrizmDoc1:18684 ssl verify none
    Now that HAProxy is configured we can start the server. Do this command on both servers:
    service haproxy start
    start the PrizmDoc service on PrizmDoc1
    /usr/share/prizm/scripts/ start
    Start the PAS service on PAS1
    /usr/share/pas/pm2/ start
    Congratuations!! Your backend is encrypted.

    Document viewing works on a viewing session basis (as managed by the viewingSessionId). This means that all of the document data (such as SVG payload, attributes, text, etc.) are all unique to a given viewing session. Though the shared resources (JavaScript, CSS, icons, etc.) are all cached in the browser, the document content is not cached, because those are unique resources for each session.

    PCCIS does not, in a usability sense, preserve any data on the server. Instead, it is a processor. PCCIS takes in a document and produces a series of output files, some of which will be delivered to the viewer when a document is requested. Those files are cached by PCCIS, but that caching is for performance reasons, and it is intended as a short term convenience. As such, every time PCCIS receives a request to view a document, it generates a unique viewing session. That viewing session ID acts as a unique identifier that indicates which content the browser is requesting, meaning that that the browser sees the content for each request as unique content.

    An example of how the viewer uses unique, non-cachable content is watermarking. In this case, even though the physical document is the same every time, the watermark is dynamically generated server content. Each new request for a document creates new content for the browser and so each version of that content could have also have a unique watermark. Note, however, that re-requesting resources while in the same session does leverage the browser cache. For example, scrolling through a large document causes previously loaded pages to be discarded from the DOM. When the document is scrolled back to previously viewed pages, those pages are fetched from the local browser cache. This is the expected behavior as long as the current viewing session is valid (i.e. – has not timed out)
    On Windows installing PrizmDoc Server takes about 2.3 gigabytes and installing PrizmDoc Client uses about 400 megabytes. If you are installing the PrizmDoc server you will want much more free disk space for the cache. For caching information see our caching strategies help page page and our configuring the PrizmDoc Server.
    You can choose to encrypt all the data sent from the web server to the client using HTTPS.  You also have the option of using content encryption by following these directions. These encryption options prevent a third party from viewing or altering your documents and data while in transit through the Internet from the server to the viewing client. Encryption will not prevent a legitimate viewer of the data or document for saving or sharing it. see:  Enabling Content Encryption
    During an uninstall of the PrizmDoc Client from a Windows system you may receive the error below. This issue might be caused by the IIS Server Role being removed prior to the uninstall attempt. PrizmDoc Client uninstallation encountered an error. Your system has not been modified. To uninstall this program at a later time, run the installer again. Click the finish button to exit the Installer. To fix the issue follow the steps below:
    • Add the IIS Server Role back to your Windows system
    • Restart the system
    • Attempt to uninstall the PrizmDoc Client again
    On Windows:
    • Open Windows Explorer and type into the Navigation Bar.
    • Right Click inside Windows Explorer to bring up the standard context menu.
    • Find "Login As" and click it to login to FTP Server.
    • Provide the user name: support and the password: 853ae90f
    For any other operating system, use an FTP client, such as FileZilla, using the above FTP and login information. Once you've successfully logged in, you can drop your files into the folder.
    Most likely this is because you only installed PrizmDoc Server, and not PrizmDoc Client. If you are doing a self-hosted installation, you will need to install PrizmDoc Client as well. See this page for help with installation
    Starting at version 11, the PrizmDoc client and backend components have become less strict to where it's possible to use different builds across a version. However, some build-specific client-side features may not be supported when using prior client builds with a later backend. As always, if you do notice abnormal behavior, verify whether this behavior persists when matching the client and backend versions. If so, this may be an issue to report to Accusoft Support.
    Yes and No. While there is no artificial limit to the number of viewing sessions that the PrizmDoc server can manage simultaneously, it is important to keep in mind that viewing sessions require a certain amount of hardware resources and network bandwidth. That being said, the number of viewing sessions your server can handle simultaneously will be directly dependent upon the resources available to it. Important considerations are:
    • CPU and RAM resources - for document processing and general server operations.
    • Storage Capacity - for document artifacts and server cache.
    • Network bandwidth - for communication between different components of the PrizmDoc server.
    Any one of these resources can act as a limiting factor to the number of active viewing sessions that your server can handle. For guidance on sizing your server to fit your particular needs, please refer to the server sizing guide, found in the PrizmDoc documentation:
    Yes. If you are looking for a troubleshooting guide for PrizmDoc please refer to this Windows Troubleshooting Guide or this Linux Troubleshooting Guide

    Note: This is only valid for versions 11.2 and earlier, maxRequestLength has been deprecated on versions 12.0+

    By default /usr/share/prizm/pccis/servicehost/host.config contains the following limitation:

    "httpRuntime": {
        "maxRequestLength": 50000000

    which limits maximum document file size to 50Mb, and so PCCIS will return HTTP-500 when larger files are uploaded to the service.

    If you are dealing with larger files it will necessary to change the "maxRequestLength" option to a more appropriate value.

    Some find that PrizmDoc log files are growing too large on their Windows systems. If you want to delete old log files you can use the following PowerShell script:
    $limit = (Get-Date).AddDays(-2) #Set the negative number to your retention period. Example is 2 days
    $path = “c:\Prizm\Logs”  #Change this to the correct directory if needed
    Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force
    You can change the log file location and maximum age of logs to be keep. This can be scheduled to run hourly or daily using Windows Task Scheduler.
    In the Central Configuration File (/usr/share/prizm/prizm-service-config.yml in Linux and C:\prizm\prizm-service-config.yml in Windows) you can change the logging.daysToKeep value. This is the documentation on the Central Configuration File.
    When upgrading from an older version of PrizmDoc to a newer version, it is best practice to backup all configuration files, including:
    • Central configuration: ..\prizm-services-config.yml
    • PAS configuration: ..\pas\
    • PCCIS configuration: ..\PCCIS\ServiceHost\pcc.config
    • Individual service configurations: ..\conf\*.config
    This should be done because when the PrizmDoc installer is run, it replaces all configuration files with new ones (resetting them to their default configuration). Once these files are backed up and stored outside of the Prizm folder, it is safe to run your new PrizmDoc installer. Happy upgrading!
    The Tagged Image File Format (TIFF) is widely popular, and is particularly used in document imaging. It can support a number of compression types:
    • Packbits - Created by Apple, this lossless compression type is used for run-length encoding (RLE). Baseline TIFF readers must support this compression. Use this compression for higher compatibility with various applications.
    • CCITT (Huffman encoding) - Used particularly for encoding bitonal (or bi-level) images. "Group 3" and "Group 4" are particularly known for its use with fax transmission of images. Using this compression type will help keep smaller file sizes.
    • LZW - A lossless compression type that supports multiple bit depths. Because it's lossless, it produces files that are generally larger than other compressions. Use this compression if you want to retain the exact visual quality of the image without data loss or artifacts.
    • JPEG - Very popular compression, used for color and grayscale images and can produce high compression ratios. JPEG allows a good amount of control over how the image in question should be compressed. Use this compression for general color or grayscale images.
    • Deflate - A lossless compression using Huffman and LZ77 techniques and also supports different bit depths.
    Full viewer sample on Windows: http://localhost:18000/PrizmDoc_HTML5_Viewer_NET_WEBFORMS/ E-signature sample on Windows: http://localhost:18000/PrizmDoc_HTML5_Viewer_NET_WEBFORMS/e-signature-splash/ Server Health page: http://localhost:18681/admin (single server) http://localhost:18682/admin (multiple or clustered servers) Conversion demo: http://localhost:18001/ Cloud (Accusoft) Hosted Test page (displays "OK" if localhost is connected to server): http://localhost:3000/servicesConnection
    Here is a list of supported browsers. Note: Support for Internet Explorer versions 8, 9, and 10 have been deprecated with the release of PrizmDoc v11. Support for versions 8, 9 and 10 of Internet Explorer will be discontinued altogether with the release of PrizmDoc v12. Microsoft has already ended support for versions 8, 9, and 10 of Internet Explorer.
    This FAQ will detail troubleshooting steps if PAS will not start on a system. If you are unable to install PrizmDoc Client because PAS will not start, and thus do not have access to PAS, contact support for a PAS install.
    • Run PAS manually as a Node app
      Doing so can print errors to the console that are normally not reported. It can also bypass any possible restrictions on system services that may cause issues.
      cd Prizm/pas
      node app.js

    • Note your machine's logical cores
      On a machine with many cores (8+), PAS may take a while to start. PAS may not start if startup takes more than 12 seconds. Because PAS does not require heavy processing, use less cores (1, 2) by changing the instances entry in the pas/pm2/production.json file.
    • Ensure the user running the PAS service is an administrator
      Prizm Application Services requires that the user be an administrator.
    • Windows: try creating a serice for PAS manually
      Creating a service can help rule out any issues in the pre-installed service.
      cmd /c %SystemRoot%\System32\sc.exe create "Prizm Application Services (PAS)" binpath=C:\Prizm\pas\PrizmApplicationServices.exe start=auto

    PrizmDoc detects most of the formats automatically, except the formats with poor signature or no signature at all. Such formats are detected by the file extension.

    PrizmDoc Documentation: PrizmDoc Tech Specs:

    Currently Windows Metafile and Enhanced Metafile formats are only supported by PrizmDoc Server running on Windows platforms.

    These formats are not supported on Linux platforms. Dr. Halo (CUT) format cannot be reliably auto-detected due to its poor file signature, therefore it is identified by file extension.

    Currently PrizmDoc does not support conversion of CAL/CALS, CUR, DCX, IMG, PCT/PIC/PICT, PSD/PSB, RAS, TGA/TPIC and XWD formats to SVG.

    When installing IIS and .NET 4.0 features as a requirement for installing PCC/PrizmDoc, please make sure that all required roles/features have been installed via Windows Features or Server Manager. There are several required features that are not installed by default when selecting to install the IIS features or Web Server role on a Windows Operating System Those required features are typically found in the following directories in the Windows Features/Add Roles and Features Wizard menu: (Windows Desktop Operating Systems)Internet Information Services > World Wide Web Services > Application Development Features
    • Make sure to check the following boxes
      • .NET Extensibility 4.5
      • ASP.NET 4.5
    (Windows Server Operating Systems) Web Server(IIS) > Web Server > Application Development Features
    • Make sure to check the following boxes
      • .NET Extensibility 4.5
      • ASP.NET 4.5
    IIS Features_Windows Server 2012 R2 IIS Features_Windows Server 2008 R2
    Pre-conversion was introduced to PrizmDoc in version 11.2 and gives developers the ability to create a cached version of a document known as a Viewing Package. Viewing Packages serve to significantly reduce the load on PrizmDoc Servers and client load times. This allows you to serve more users per minute than you would otherwise be able to.

    Additional Considerations for Using Pre-Conversion

    Pre-conversion is a PAS service and requires some additional considerations when setting up your PAS instances. First, PAS will need access to a database in order to store information about pre-converted documents. If you are running multiple instances of PAS, you must use a shared database and a NAS (Network Attached Storage) so that each instance of PAS can access the same information and files. The documentation contains more detailed information on how to set up your database and configuring viewing package settings.

    Using Pre-Conversion

    There are two methods for creating viewing packages: Once a Viewing Packages has been created, using it to create a viewing session is very simple. You will create a viewing session like you normally do, but now set the "source.type" property to "viewingPackage" and the "source.documentId" property to the document id set when creating the viewing package.(EXAMPLE)


    Using Viewing Package Creators API

    To create a viewing package using the Viewing Package Creators API, your request body should look like: NOTE: documentId must be a unique value. Using a document id that has been used before will result in a 580 response.
    POST /v2/viewingPackageCreators
    Content-Type: application/json
        "input": {
            "source": {
                "type": "document",
                "fileName": "sample.doc",
                "documentId": "unT67Fxekm8lk1p0kPnyg8",
                . . .
            "viewingPackageLifetime": 2592000

    Using On-Demand Caching API

    To create a viewing package using on-demand caching, your request body should look like: NOTE: If documentId exists, that viewing package will be used as the source for the viewing session. Otherwise, a new viewing package will be created with that document id.
    POST /ViewingSession
    Content-Type: application/json
       "source": {
           "documentId": "unT67Fxekm8lk1p0kPnyg8",
           "type": "document",
           "fileName": "PdfDemoSample.pdf"

    Using an Existing Viewing Package

    To use an existing viewing package, your request body should look like: NOTE: documentId must match an existing viewing package document id
     POST /ViewingSession
    Content-Type: application/json
       "source": {
           "documentId": "unT67Fxekm8lk1p0kPnyg8",
           "type": "viewingPackage"
    See our official documentation on this subject! For the Self-Hosted option, you'll have to download the 500MB+ PrizmDoc Server and install that on your machine(s). This will install all the necessary services required for PrizmDoc to run. Running those services on your machine can use a lot of resources. So, it will be your responsibility to maintain the machine(s) running PrizmDoc Server. Also, you'll want to take a look at our Server Sizing Guide to make sure your machine(s) meet the requirements to run PrizmDoc effectively. For the Accusoft-Hosted option, we take care of all of the above for you. We install PrizmDoc on our servers and allow you to send requests to those servers in order to view and convert documents. Also, for the Accusoft-Hosted option, you'll have to create an account on our cloud portal in order to obtain the API-key needed to use the Accusoft-Hosted option.
    In order for the PrizmDoc viewer to fetch content from the PrizmDoc Backend Server (e.g. ImageData, Thumbnails, Imagestamps etc.), it must have a mechanism to forward/receive http requests between these two endpoints. Fortunately, the addition of PAS into the PrizmDoc architecture greatly simplifies this process. The imageHandlerURL property that you set when initializing the viewer allows you to specify an address on your web server that will then handle the routing of these requests to PAS in order to have these requests routed to the backend. Basically, The imagehandlerURL is the address on your webserver that the Viewing Client will forward requests to which will then contain logic to route requests to PAS. This avoids any possible CORS issues and guarantees that the ViewingClient is secure. For example, in our documentation here: How to configure PrizmDoc Application Services in your Server's Entry Point We provide instructions on how to set-up a reverse proxy on your webserver to route these requests to your PAS instance. However, you are free to write custom logic to proxy requests to and from your front-end to PAS. For example, you could write a route using Express.js in Node.js that was located at http://localhost/pas-service that then contained the following proxy logic: pasRouter.use(function(req, res) { var url = config.pas.baseURL + req.url; req.pipe(request(url)).pipe(res); }); You would then set your imageHandlerURL property to 'http://localhost/pas-service'
    The operating systems listed below have been tested with Prizm Content Connect/PrizmDoc and are officially supported. If your requirements call for an environment that is not listed below please contact us. Prizm Content Connect/PrizmDoc is extremely flexible and support platforms can be expanded:

    Linux Windows
    CentOS 5.9+, 6.4+ (x64 64-bit) Windows Server 2008 R2 (64-bit)
    Debian 7.1 (Wheezy) (64-bit) Windows Server 2012
    Red Hat Enterprise Linux 5.9, 6.4+ (64-bit) (version 7 is not supported) Windows Server 2012 R2
    Ubuntu 12.04 LTS, 13.04, 14.04 LTS (64-bit) Windows 7 (64-bit)
    Windows 8 (64-bit)
    Windows 10 Pro & Enterprise
    Accusoft supports 3 primary license types: Evaluation, Toolkit, and Runtime licenses.

    Evaluation License:

    An Evaluation license is available upon download and will allow you to try our products and determine if they will suit your needs. Most downloads include free demo applications that demonstrate the core functionality of our product and will show you how to get up and running integrating Accusoft products with your solution. While the Evaluation license is free to download it does come with some restrictions. These restrictions may come in the form of water marked documents, pop-up dialogue boxes, or a time limit on the Evaluation license itself.

    Toolkit License:

    Should you decide that an Accusoft product is right for you, the next step should be to purchase one or more of our Toolkit licenses. Accusoft requires each developer using an Accusoft component to have a Toolkit license on their development machine. Once registered, the Toolkit license will unlock all restrictions of the Evaluation license. Please note, the Toolkit license is strictly to be used for development purposes, and when activated, it will be tied the specific development machine that it was registered on. Understandably, the occasion may arise where a Toolkit license needs to be moved from one development machine to another. In such a scenario, please contact sales@accusoft to see if this is feasible. For more information on how to register a Toolkit license on a development machine please see the 'Toolkit Licensing' section of your products Help documentation.

    Runtime License:

    Finally, once you have completed your solution and are ready for deployment, you will need to purchase a Runtime license. Accusoft offers 2 types of Runtime licenses. Most commonly, you will purchase an Automatically Reported Runtime (or Node-Locked) license, which requires a license for every machine your solution will be deployed to. It is very important to note that Runtime licenses are tied to the machine they are activated on and should not be used for development purposes. Doing so will quickly use up your Runtime licenses and cannot be refunded. For more information about how to activate an Automatically Reported Runtime license, please see the ‘Automatically Reported Runtime License’ section of your products Help documentation. In certain circumstances, Accusoft will issue a Manually Reported Runtime licenses that allow you to embed all of the licensing information directly into your application. These licenses are only distributed under certain circumstances and eligibility is determined by Accusoft sales. For more information on how to activate this type of license, please see the ‘Manually Reported Runtime License' section of your products Help documentation.
    PrizmDoc is just the rebranding of Prizm Content Connect starting in version 11. They are the same product.
    In Linux the logs are found in: /usr/share/prizm/logs/ In  Windows the logs are found in: C:\Prizm\logs\ and %ALLUSERSPROFILE%\Accusoft\Prizm\Logs\ If you need to send these logs to Accusoft Support create one or more zip files containing everything in these directories. Please refer to our help documents.

    The issue here is most likely due to a UrlScan rule applied by default on all IIS new sites.

    This can typically occur when creating IIS Sites in a Corporate domain with strict security policies

    Ensure that URLScan rules are not applied to the PCCIS site as this will by default BLOCK ALL REQUESTS to PCCIS

    To turn of the UrlScan filter you will first need to select the site on the left “Connections” pane.

    Then navigate to the ISAPI Filters view under the IIS section of Prizm Content Connect Imaging Services Home.

    On the ISAPI Filters view you will need to right-click the UrlScan rule and select Remove.


    2016-03-31 14_47_26-UrlScan Rule applied - Google Docs

    When using the render.html5.alwaysUseRaster viewing session property to render a raster viewing session you will have to make sure the value is allowed in your central configuration file. You will want to edit the following parameters array to allow only true, only false, or both:
    • viewing.sessionConstraints.render.alwaysUseRaster.allowedValues : [true, false]
    Note that after changing the values it is necessary to restart the Prizm services.  
    This error is usually caused because the viewer is not launched with a document, or running the samples in Visual Studio. To view the samples, navigate to the Sample splash page and upload a document. Otherwise, navigate to the viewer's url and either add ?document=[filename] or ?viewingSessionId=[id] to initiate a document view, or add a static document name to the default.aspx file.
    The issue here is most likely due to the DPI values for the images. We use this value and expect it to be accurate. The images in question may have a very low value(i.e. 1 DPI), which is clearly a value that will cause problems. At 1dpi, an image that is 1200 pixels will be 100 feet wide in physical size. This results in the image being at 0.5% scale factor when at full width on my 24 inch monitor. The end result of this is that the zoom percentage values get entirely out of the reasonably expected boundaries, making it difficult to manage them in the viewer. As a reference, the documents in the Prizm Content Connect/PrizmDoc Sample Viewer splash page are all 96 x 96 DPI. The only real solution to this issue is to use images that have "correct" resolution information.
    The current PHP Sample code deployed with Prizm Content Connect/PrizmDoc depends upon syntax only present in PHP version 5.4 and above.
    Due to security limitations, browsers prevent the PrizmDoc viewer object from accessing the page size of the printer in the system settings. Printed output defaults to a letter-sized page. Selecting other sizes from within the viewer may cause clipping, content spilling over to other pages, or some blank pages in the course of the print. The current resolution for this is to manually set the target page size in the system print settings first. Then, select the same page size when going to print in PrizmDoc.

    If the issue persists after verifying that the username and password you are entering are correct, then please see below:

    The problem is caused by missing registry entries in HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion, specifically:

    RegisteredOwner and RegisteredOrganization

    To resolve this issue run the Registry Editor by pressing Windows R and typing regedit.exe. Browse to the location:

    HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion

    Just right click on the CurrentVersion in the Registry Editor and select New > String Value. After you add each entry ( RegisteredOwner and RegisteredOrganization ).

    It is not necessary to specify values but you can use your username and company name respectively.

    Make sure to restart the machine after making registry changes.

    This has been identified as a limitation within our Office rendering engine related to the following properties of check boxes:

    ffdefresN - Default item for list field (for example 0 = first list item, 1 = second list item).

    ffresN - Result item for list field. Values from 0 to n - 1, where n is the number of <ffl> entries.

    We now have a hotfix available to resolve this issue at the following links:  
    If you're noticing that certain characters are being replaced by boxes when a document is being viewed or converted with PrizmDoc, it's likely that you just need to install the proper fonts on the PrizmDoc server. In most cases, this will be as simple as double-clicking the font file and selecting Install. For Debian (Ubuntu) Linux distributions you can do this using: apt-get install To see a list of available fonts, use the following command: apt-cache search font For Red Hat, Fedora, CentOS, and Older Linux distributions you can do this using: yum install To see a list of available fonts, use the following command: yum search fonts Note: Please ensure that you abide by the licensing agreement of any given font that you plan to use as it applies to your country and use case.
    This might be because the documents are timing out. You can avoid this by adjusting the timeout values in the pcc.config file, or by upgrading your machine's hardware. For suggested server specifications, see our server sizing guide:
  • For PrizmDoc.
  • For PCC 10.5 and below.
  • To change the timeout values in the pcc.config file, follow these steps:
  • 1. Open the pcc.config file found at C:\Prizm\PCCIS\ServiceHost\ on Windows and usr/share/prizm/pccis/ServiceHost/ on Linux.
  • 2. At the bottom of pcc.config you will find the timeout values, increase them as needed
  • 3. Restart the "Prizm" and "Prizm Application Services" services.
  • Many people use Nginx as a proxy in front of PrizmDoc as a way to implement SSLor TLS. The default size limit on POST request in Nginx is 1 megabyte (MB). This should be changed to a much higher value such as 100 MB. To do this you should edit your nginx.conf file to change the line reading client_max_body_size 1M; to something more like client_max_body_size 100M;.
    Increasing the value of viewing.cachelifetime can be a great way to increase performance, by making previously converted content available for viewing longer. However, it is important to understand that this value is not an expiration date. Rather, this value sets the minimum amount of time that the files will remain in the cache and be available for viewing. When a file exceeds the cache lifetime, any one of the following behaviors may be observed:
    1. The entire cache entry may be removed
    2. The entry may be only partially removed, leaving some folders and reference files behind
    3. The entire entry may be left in the cache for an indefinite period of time
    Thus, it is possible to see items remain in the cache well beyond their expected lifetime. Also note, the WorkfileCache exhibits a similar behavior when it exceeds the workFiles.lifetime. If you need to set an upper-bounds on the length of time a file remains in the cache, we recommend using a script similar to the one below, and scheduling it to run at some regular interval.
    $folders = @(
    foreach($folder in $folders)
        Get-ChildItem $folder | Where{$_.LastWriteTime -lt (Get-Date).AddDays(-4)} | Remove-Item
    **Please note, this script is intended to be used as a guide when creating your own script, and is for illustration purposes only.

    In the most up-to-date versions of PrizmDoc the client installer and the server installer were split into two. The PrizmDoc samples are included with the client installer. So if these are missing, run the client installer to get them.

    Links to the most up-to-date installer can be found here.


    C:\Prizm\Samples Linux: /usr/share/prizm/samples
    This is likely due to the document not being searchable. If a document does not have searchable text, you will not be able to highlight and/or select text on the document using the PrizmDoc Viewer. In order to make the text of your document searchable, the document will likely need to be run through an OCR process first.
    A common reason for this error is that the Prizm Application Services (PAS) application that the new PCC 10.5/PrizmDoc Samples rely on has not been started. In order to ensure that PAS is running: For Linux: Please navigate to usr/share/prizm/pas/pm2 and run the "./ start" script in order to start PAS. For Windows: Please open your Services manager, look for the Prizm Application Service, and ensure that it is running.  
    If your PrizmDoc license has the feature "Microsoft Office Native Rendering (MSO)" you are required to: 1. Install Microsoft Office 2. Then license Microsoft Office 3. Run Office once. These above steps must be done before installing PrizmDoc. If you don’t want to install Microsoft Office the correct thing to do is get a non MSO license. This will cause PrizmDoc to use LibreOffice for the rendering of documents as opposed to Microsoft Office. or will both be able to help you determine which license you have and get you the license you need. These links may further guide your progress: Installing PrizmDoc on Windows PrizmDoc Windows Installation Requirments PrizmDoc Installing Self-hosted
    NOTE: This FAQ only applies to PrizmDoc (PCC) servers that are less than or equal to version 11.X
    If your PrizmDoc (PCC) server seems to go unhealthy at random intervals with standard usage and load, you may be suffering from a known bug in the proxy server. This bug causes the proxy server to enter a restart loop, which requires the services to be manually restarted. PrizmDoc version 12.X is immune to this bug because the proxy server has been completely removed from it. If you're using the newest version of PrizmDoc, this does not affect you. If, however, you're not using the newest version of PrizmDoc, here is how you can self-diagnose the proxy server restart loop bug:
    • Navigate to the Prizm logs directory, which can be found at "C:\Prizm\logs" on Windows and "/usr/share/prizm/logs" on Linux.
    • Search the contents of the "OfficeCoverterX" directories for the following:
    [ info ] [0] [http-server] binding to: socket,host=localhost,port=18680
    [ FATAL ] [0] unknown exception
    [ FATAL ] [0] Address already in use: JVM_Bind
    • If your system is suffering from this bug, you will see this phrase repeated many times throughout the log.
    The only reliable and absolute fix for this bug is to upgrade to the newest version of PrizmDoc. If you believe this bug is affecting your system, please contact support at with your Prizm server logs. Please zip the entire directory and upload the file to our FTP site using the following guide: "I have some very large files that I need to upload. Is there an FTP location that you can provide to upload the files to?"
    The fonts that the original document uses would need to be installed on the system that is handling the Prizm Services. If that font is not available, then the system (sometimes a browser or the conversion service) determines which font to use. If you want to load Microsoft fonts in PCC/PrizmDoc Linux (the most common instance of this):
    1. Find the name of the font
    2.  download it. (this download includes most Microsoft fonts:
    3. install via: sudo rpm -Uvh msttcorefonts-1.2-2.src (for the above link)
    4. verify the font has been loaded via:  fc-list | grep "Courier New" (for example, for the Courier New font)
    5. Reload the document in PCC/PrizmDoc
    2016-04-19 14_19_00-PrizmDoc Full Viewer PHP Sample If the print dialog endlessly says "preparing  page" as shown in the above image, then this is likely do to the fact that your applications directory structure is different than that of our PCC Sample Application. In the PrintTemplate.html in the templates folder, you will find a hardcoded src paths for the viewercontrol.js file and some other css files:
    <link rel="stylesheet" href="viewer-assets/css/fonts.css">
    <link rel="stylesheet" href="viewer-assets/css/viewercontrol.css">
    <script src="viewer-assets/js/viewercontrol.js"></script>
    Please change these to reference the correct locations in your project.    
    The static viewer (available via http://localhost:18681/PCCIS/V1/Static/Viewer/Test by default) is useful when troubleshooting issues with PrizmDoc and allows a user to bypass PAS and create a viewing session by making requests directly to the PrizmDoc backend server. If you found this FAQ, you may be seeing the following message when loading a document into the static viewer:
    Cannot GET /PCCIS/V1/Static/Viewer?ViewingSessionId={viewingSessionId}
    This will occur when attempting to use the static viewer when only the PrizmDoc server is installed. You can resolve this issue by also installing the PrizmDoc client.
    The issue is caused by absence of and libraries on CentOS 7. For some reason, CentOS 7 uses while CentOS 6 used Note that despite the .so version number, CentOS 7 does use the newer version of library: / CentOS 6 corresponds to libopenjpeg version 1.3, and / CentOS 7 corresponds to libopenjpeg version 1.5. To workaround this problem you will need to enter the following into the command line:
    • Become root:
      • su
    • Install libpng12 using command:
      • sudo yum install libpng12
    • Install openjpeg libs:
      • sudo yum install openjpeg-libs
    • Make symlink pointing to
      • sudo ln -s /lib64/
    • Restart your service:
      • sudo /usr/share/prizm/scripts/ restart

    This issue may be due to an antivirus program running on the machine you are attempting to install PCC/PrizmDoc.

    Please make sure to disable your antivirus shield before attempting to install PCC/PrizmDoc.

    Note: This issue has been mainly encountered when Avast and Comodo antivirus is running on a client system.

    Starting at PCC for SharePoint v2, the new WOPI architecture will make the viewer active for all sites under the site collection in a farm. This is a change from the older plug-in which permitted enabling the viewer per site.
    If your original document contains highlighted text like this: original but displays the highlighted text in the PrizmDoc viewer like this: displayed you are not alone. We've noticed this behavior in Chrome, Firefox, IE, and Opera.

    Unfortunately, this inconsistency is caused by the limitations of these web browsers. The PrizmDoc SVG converter makes use of the comp-op="multiply" attribute to allow the clip-path to work as a highlighter. However, current web browsers do not support this attribute yet. That being said, this is a very anticipated feature, so most popular browsers may implement support for it very soon.

    In the meantime there are two potential workarounds:
    1. Remove the highlighter marks before the document is converted to SVG by PrizmDoc. Then, add the highlighter in PrizmDoc.
    2. Replace the highlighter marks with a semi-transparent filled rectangle effect.
    With PCC 10.5 and above you will need to enable content encryption in the prizm-services-config.yml file. Add the following lines to the prizm-services-config.yml file: viewing.contentEncryption.enabled: true viewing.sessionConstraints.pageContentEncryption.allowedValues: ["enabled","disabled","default"] Next, save the file and restart the Prizm services.

    PCC uses libreoffice under the hood. In the 10.5.1 hotfix we fixed a number of rendering issues:

    1. Missing and incorrect rendering of EMF+ Visio Drawing content embedded in DOCX files.
    2. Incorrect rendering of DOC files containing shapes with text that have a flag indicating a horizontal alignment relatively to the border of page.
    3. Incorrect rendering of DOC files containing nested tables, when a single nested table is expected to split across multiple pages.
    4. Incorrect rendering of DOCX files containing tables in the header where the engine only rendered those rows that fit in the header, leaving out all other rows.
    5. Incorrect rendering of XLS files where the calculation of cell text width caused PCC Office rendering engine to incorrectly set  "###" when rendering for the view.
    6. Incorrect rendering where text located in a table within a Word document when the first row of the first table has hidden mark and merge attributes.
    Form Field Detector will work with two types of documents, PDF and Raster Images. However, these Image Types must both have Form Fields embedded in them for the Form Field Detector to recognize the fields and setup the template automatically.   If your PDF isn’t being recognized by the Form Field Detector, this is most likely because the PDF isn’t an AcroForm PDF, and thus doesn’t have any Form Fields embedded in the image.   To get the Form Field Detector to recognize the PDF, convert it to a raster image first using the built-in conversion tool supplied by PrizmDoc:
      Ensure PrizmDoc and all it’s services are running.   This will allow you convert the PDF to a TIF file that will then be recognized by the Form Field Detector.
    1. On a Fresh Window Installation
    1. Get PrizmDoc Dependencies + IIS Dependencies
      • .NET Extensibility 4.*
      • ASP.NET 4.*
      • IIS Management Console
    1. Install PrizmDoc Server & Client
    1. Check Prizm Services Status
    1. Verify Samples are Running
    1. Configure Reverse Proxy in IIS According to our Documentation (
      • Procure Web Platform Installer (
      • Install URL Rewrite 2.0 and Application Request Routing 3.0
      • Create C:\Prizm\Samples\dotnet\mvc\pas-service
      • Add URL Rewrite Rule for pas-service\
      • Modify sampleConfig variable in C:\Prizm\Samples\dotnet\mvc\Views\FullViewer to imageHandlerUrl: "pas-service"
    1. Navigate to http://localhost:18000/PrizmDoc_HTML5_Viewer_NET_MVC to test.
    1. On a Fresh Window Installation
    1. Get PrizmDoc Dependencies + IIS Dependencies
      • .NET Extensibility 4.*
      • ASP.NET 4.*
      • IIS Management Console
      • Windows Authentication
    1. Install PrizmDoc Server & Client
    1. Check Prizm Services Status
    1. Verify Samples are Running
    1. Configure Windows Authentication
      • Disable Anonymous Authentication at the top-most level
      • Enable Windows Authentication and Move NTLM to the top of the Providers list
      • If Negotiate still inexplicably takes precedence
      • Remove Negotiate from the Providers list
      • Verify NTLM is the Authorization Scheme
    1. Navigate to http://localhost:18000/PrizmDoc_HTML5_Viewer_NET_MVC to test.
    Don't see your question answered here?

    Fill out the short form below and we will get back to you as soon as possible.

    Please be as specific as possible when writing your question.