Technical FAQs

Question

I have an evaluation license for PrizmDoc. Can I evaluate MSO features with this evaluation license?

Answer

No, regular PrizmDoc evaluation licenses do not have MSO functionality. They will instead use LibreOffice to convert documents. Contact an Accusoft Support Technician or your Account Representative to discuss evaluating PrizmDoc with MSO enabled.

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

In some other viewers, there are highlights or markers that appear on the UI to indicate that annotations are available for a given page or document. Is there a way to implement this in PrizmDoc?

Answer

Sure can, you just need to make a MarkupLayerRecords request to determine if there are marks that pertain to the given Viewing Session. Keep in mind that documents don’t really have a specific set of annotations associated with them though — Markup IDs do, and you can specify any Markup ID you want when you create a viewing session:

// Add rules to your CSS for the following classes.
// The actual style information can be whatever you like.
//
// .mark-indicator {
//     background-color: gold !important;
// }
//
// .marked-page-indicator {
//     background-color: gold !important;
// }

let pasUrl = "http://localhost/pas-service"; // Example PAS proxy URL
let viewingSessionId = <%= viewingSessionId %>; // Example viewingSessionId
let thumbnailButton = $(".pcc-icon-thumbnails");
let pageIndicatorsAdded = false;
let thumbnailsClicked = false;
let marksRetrieved = false;
let markedPages = {};

async function addPageIndicators() {
    console.log("Attempting to add page indicators...");
    if (thumbnailsClicked && marksRetrieved && !pageIndicatorsAdded) {
        console.log("Conditions met.");

        let wrappers = $(".pccThumbnailWrapper");

        wrappers.each(function(index, wrapper) {
            if (markedPages[index]) {
                $(wrapper).addClass("marked-page-indicator");
            }
        });

        pageIndicatorsAdded = true;
    } else {
        console.log("Conditions not met");
    }
}

thumbnailButton.click(function() {
    console.log("Thumbnails button clicked.");

    thumbnailsClicked = true;

    addPageIndicators();
});

async function apiCall(type, url, body = {}) {
    return await $.ajax({
        "type": type,
        "url": url,
        "contentType": "application/json",
        "data": JSON.stringify(body)
    });
}

async function createMarkIndicators() {
    let output = await apiCall("GET", `${pasUrl}/MarkupLayers/u${viewingSessionId}`);

    if (output.length > 0) {
        console.log("Found layers.");

        thumbnailButton.addClass("mark-indicator");

        let layers = await Promise.all(output.map(function(element) {
            return apiCall("GET", `${pasUrl}/MarkupLayers/u${viewingSessionId}/${element.layerRecordId}`);
        }));

        layers.forEach(function(layer) {
            layer.marks.forEach(function(mark) {
                markedPages[mark.pageNumber - 1] = true;
            });
        });

        marksRetrieved = true;

        console.log("Marks retrieved.");

        addPageIndicators();
    } else {
        console.log("No layers found.");
    }
}

createMarkIndicators(); 
Question

PAS appears to be unable to retrieve my document. What could be the issue?

Answer

If PAS is trying to retrieve documents from a source with a bad SSL certificate or a self-signed certificate and it is not configured to allow bad SSL certificates, it will fail to retrieve the document and log a generic 580 error.

For more information about Viewing Session creation parameters, including acceptBadSslCertificate see here:

https://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#pas-viewing-sessions.html

Question

What are the technical details/process of “Flattening” a PDF document?

Answer

It is possible to “Flatten” PDF documents in PrizmDoc Viewer. You can do this by converting the document to a raster format (TIFF is recommended for PDF conversion) using PrizmDoc’s Content Conversion Service, and then converting it back to PDF format. This will result in a PDF with a single layer and no hidden objects. However, this will usually lower the quality and increase the file size of PDFs that are largely text.

Here is an example workflow using the Workfile API and the Content Conversion Service API:

1. Create a WorkFile from PDF

POST {{pccisUrl}}/PCCIS/V1/WorkFile
Content-Type: application/octet-stream

{{file bytes}}

2. Initiate Conversion to TIFF

POST {{pccisUrl}}/v2/contentConverters
Content-Type: application/json

{
    "input": {
        "sources": [
            {
                "fileId": "{{fileId}}"
            }
        ],
        "dest": {
            "format": "tiff"
        }
    }
}

3. Poll until response[“state”] === “complete”

GET {{pccisUrl}}/v2/contentConverters/{{processId}}

4. Initiate Conversion from TIFF back to PDF

POST {{pccisUrl}}/v2/contentConverters
Content-Type: application/json

{
    "input": {
        "sources": [
            {
                "fileId": "{{fileId_from_Step3_output}}"
            }
        ],
        "dest": {
            "format": "pdf"
        }
    }
}

5. Poll again

GET {{pccisUrl}}/v2/contentConverters/{{processId}}

6. Download

GET {{pccisUrl}}/PCCIS/V1/WorkFile/{{fileId}}?ContentDispositionFileName={{desiredFileNameWithExtension}}
Question

Users want the ability to have all the documents that they view initially open with the same Zoom Percentage. How can I accomplish this?

Answer

Setting the zoom percentage is possible in PrizmDoc. You can listen in on the ScaleChanged event, which is triggered whenever your user changes the zoom level of the Viewer. For more information, refer to the EventType section of the PCCViewer help topic.

Then you could take that value, store it however you want, and use it to set the initial zoom factor of the page upon loading the Viewer using setScaleFactor. For more information and a code sample, refer to the Setting the Initial Zoom Factor help topic.

Question

We are using PrizmDoc and may be adding more end users, so we wanted to verify whether there is a limit to the number of viewing sessions that can be active at one time.

Answer

PrizmDoc does not specifically limit the number of viewing sessions that can be active at any given time. However, when opening a viewing session with a document, a conversion does take place. The number of conversions that can be handled simultaneously is based on the hardware constraints of your server.

Various factors, such as the size of documents, the number of conversions, and the hardware being utilized may impact the performance of your PrizmDoc server.

We provide server sizing and performance documentation that is designed to provide guidance and approximate server size based on the number of conversions you plan to do per minute.

Please refer to our documentation page:

https://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#prizmdoc-server-sizing-servers.html

Question

What’s the difference between a Viewing Session and a Viewing Package?

Answer

Viewing sessions require source information for the document that you want to view. There are 3 types of sources to choose from: File, URL, and viewing package.

A viewing package is a file you want to view that is stored in its already “converted state”, which we call “pre-conversion”. This is different than a file or URL because these sources are converted and set in a temporary cache folder for use until the cache is cleared out.

Viewing package information can be set to never expire which is useful if you have documents that will be viewed over and over again by many clients. This allows the server not to have to convert the file every time and increases performance.

VirtualViewer is now PrizmDoc for Java

In document viewing and processing solutions, change is inevitable and often necessary to keep pace with evolving technologies and market demands. As such, we are thrilled to announce the rebranding of VirtualViewer® to PrizmDoc® for Java. This transformation accentuates Accusoft’s unwavering commitment to providing cutting-edge, secure document-viewing solutions to our valued customers and partners.

Why the Change? 

Several key factors drove the decision to rebrand VirtualViewer® as PrizmDoc® for Java, aligning with our mission to deliver innovative and streamlined solutions to the market.

Rebranding VirturalViewer® to PrizmDoc® for Java solidifies Accusoft’s dedication to offering state-of-the-art document-viewing solutions. By folding VirtualViewer® into the PrizmDoc® brand, we can present our current and potential clients with a more cohesive and comprehensive product lineup. This streamlined experience makes it easier for customers to navigate our offerings and find the perfect solution to meet their document-viewing and processing needs.

Renaming VirtualViewer® as PrizmDoc® for Java clarifies its positioning within our product portfolio. Prospects can now readily identify PrizmDoc® for Java as Accusoft’s Java-based option for document viewing and processing. This clear delineation enhances brand recognition and facilitates informed decision-making for potential customers.

What Does PrizmDoc® for Java Have to Offer?

Renaming VirtualViewer® as PrizmDoc® for Java solidifies Accusoft’s commitment to offering our customers options for Document Viewing and Processing that meet their unique needs. PrizmDoc® for Java boasts robust features designed to empower users with unparalleled document-viewing capabilities. From rendering high-fidelity documents with lightning speed to enabling seamless collaboration and annotation, PrizmDoc® for Java is engineered to optimize productivity and efficiency across various industries and use cases. You’ll also still get the same robust document support, easy-to-use format in any environment, and quick installation/integration that you’re used to with VirtualViewer®

Moving Forward

PrizmDoc® for Java represents a new name and a bold step forward in our ongoing mission to redefine the document-viewing landscape. This rebranding supports Accusoft’s commitment to offer innovative, secure document-viewing solutions. VirtualViewer’s® transition to PrizmDoc® for Java signifies more than just a name change—it exemplifies our commitment to excellence and dedication to providing superior document-viewing solutions.

To learn more, visit the PrizmDoc® for Java product page.