Typical Proofing Workflow

The workflow of Customer's Canvas Proofing Tool runs through the following steps:

  1. The design upload
  2. The preflight check
  3. Rendering

The Design Upload

To start working with the preflight tool, upload design files through the /api/upload HTTP request. This method gets user files, saves them with new unique names on your server, and returns these server-side names within a response.

URL toolurl/api/upload
Content-Type multipart/form-data
Request data Design files
Response The array of uploaded file names as they are stored on the server.

Here, toolurl is the path to your Visual Proofing Tool instance. You can pass the design files through a standard HTML form.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <script src="/Resources/VisualProofingTool/VisualProofingTool.js">

    <form id="inputForm" name="inputForm" method="post" enctype="multipart/form-data" action="/api/upload">
        <input name="theDesign" type="file" />
        <input type="submit" value="Submit" />

    <script type="text/javascript">
    var form = document.getElementById("inputForm");
    form.addEventListener("submit", function(e) {
        var xhr = new XMLHttpRequest();
            xhr.open("POST", form.getAttribute("action"));
            xhr.send(new FormData(form));
            xhr.onreadystatechange = function() {
                if (xhr.readyState !== 4 || xhr.status !== 200)

                var designFiles = JSON.parse(xhr.responseText);

The Quality Meter

When users manipulate their designs, Visual Proofing Tool validates resolution of print designs. If the resulting image size is less than the DPI parameter requires, then the following warning appears at the bottom of the editor: "Image resolution is too low for the print size!"

Also, you can retrieve the size and resolution of the uploaded design file via the /api/imageinfo request.

URL toolurl/api/imageinfo/filename
Type GET
Response The image size in pixels and DPI resolution for the specified file.

Here, filename is the file name returned by the /api/upload method. toolurl is the path to your Visual Proofing Tool instance. The response is a JSON object containing the following properties.

    width: number;
    height: number;
    dpi: number;

Rendering the Design

When the user has finished manipulating the design, they can render to hi-res through the finish method.

finish(): Promise<{proofUrls: string[], hiResUrl: string}>

This method returns links to both proof images and the hi-resolution output. You can display the proof images on the stage where the user validates the result.

Name Data type Description
proofUrls array of strings An array of links to proof images.
hiResUrl string The URL of the hi-res output.

You can retrieve these links the following way.

        .then(function (finishData) {
        .catch(function(exception) {

See Also