status (GET)
{server}/api/v1/printHtml/status/{jobToken}
Description
Returns the current status of a job as identified by the job token returned (as data.jobIdentifier) from a preceding /PrintHtml/print POST.
Applies to:
- ScriptX.Services for Cloud
- ScriptX.Services for On-Premise Devices (Authorisation header is ignored)
- ScriptX.Services for Windows PC
Request parameters
jobToken (string, required)
- jobToken (string, required)
- The job identifier for the job being queried, as returned by a preceding POST to /PrintHtml/print.
Response model
JobStatus {
message (string, optional),
status (integer, optional): 0 = NotStarted, 1 = Queued, 2 = Starting, 3 = Downloading,
4 = Downloaded, 5 = Printing, 6 = Completed, 7 = Paused,
8 = PrintingPdf, 100 = Collected, 101 = CodeException,
102 = CompletedWaitingForCollection, -2 = Abandoned, -1 = ItemError,
jobIdentifier (string, optional)
}
JobStatus:
- message (string, optional)
- String that may contain additional information regarding the current status of the job e.g. error description.
- status (integer, optional)
-
Integer that indicates the current status of the job identified in the API request jobToken parameter.
- 0
- Not Started - the job has not yet reached the ScriptX Server print queue.
- 1
- Queued - the job is waiting in the ScriptX Server print queue.
- 2
- Starting - the job is being analysed.
- 3
- Downloading - the content to be printed is downloading.
- 4
- Downloaded - the content has completed downloading and is ready to print.
- 5
- Printing - The HTML engine is printing the content.
- 6
- Completed - the content has been spooled to a physical printer and has completed processing by ScriptX Server and ScriptX.Services.
- 7
- Paused - the print queue is paused (this is not supported and will not occur).
- 8
- Printing- The PDF engine is printing the content.
- 100
- Collected - the output from printing to file has been collected and has completed processing by ScriptX Server and ScriptX.Services.
- 101
- CodeException - an exception occurred in the code. Please report full details to MeadCo.
- 102
- CompletedWaitingForCollection - the content has been printed to a file and is now awaiting collection by a call to the download endpoint. This is an internal status value that is not returned. The value 6 (Completed) will be returned. Note that the print endpoint will have returned a status stating whether the output is to a file or device.
- -1
- ItemError - an error occured while processing the job.
- -2
- Abandoned - the job was cancelled, was abandoned due to appearing to be stuck or had file output that has not been collected.
- jobIdentifier (string, optional)
- Returns the job token as confirmation of the request this is answering.
Example usage
Request
<h5>Response <span id="response-status"></span></h5>
<textarea id="response" readonly="readonly" rows="3" class="codefont"></textarea>
<h5>Response headers</h5>
<textarea id="headers" readonly="readonly" rows="3" class="codefont"></textarea>
document.addEventListener("DOMContentLoaded", function() {
document.getElementById('btn_runcode').addEventListener('click', function() { callServer(); });
});
function callServer() {
document.getElementById('response-status').textContent = "(waiting)";
const apiUrl = "/api/v1/printHtml/status/8c72a9871ba64c4ba507b4392c1ce0b9";
const headers = new Headers({
"Authorization": "Basic " + btoa("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + ":"),
"Content-Type": "application/json"
});
fetch(apiUrl, { method: "GET", headers: headers })
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok: ' + response.statusText);
}
document.getElementById('response-status').textContent =
'(status: ' + response.status + ' ' + response.statusText + ')';
return response.json().then(data => {
// show JSON response in textarea element
document.getElementById('response').value = JSON.stringify(data, null, " ");
// do something with the status
var jobCompleted = data.status === 6;
return response.headers;
});
})
.then(headers => {
// show response headers in textarea element
let headersText = "";
for (let pair of headers.entries()) {
headersText += `${pair[0]}: ${pair[1]}\n`;
}
document.getElementById('headers').value = headersText;
})
.catch(error => {
document.getElementById('response-status').textContent = '(error: ' + error.message + ')';
document.getElementById('response').value = "Failed to fetch data.";
});
}