print (POST)
{server}/api/v1/printPdf/print
Description
(requires v2.8 or later)
Print PDF document content with given PDF printing and device settings.
See also the OpenAPI (Swagger) definition.
Applies to:
- ScriptX.Services for Cloud
- ScriptX.Services for On-Premise Devices (Authorisation header is ignored)
- ScriptX.Services for Windows PC
Request parameters
{
PrintPdfDescription {
document (string, required),
description (string, optional),
device (DevicePrintSettings, optional),
settings (PdfPrintSettings, optional),
protectedContentAccess (AccessControl,optional)
}
DevicePrintSettings {
printerName (string, optional),
printToFileName (string, optional),
paperSizeName (string, optional),
paperSourceName (string, optional),
collate (integer, optional): 0 = Default, 1 = True, 2 = False,
copies (integer, optional),
duplex (integer, optional): 0 = Default, 1 = Simplex, 2 = Vertical, 3 = Horizontal
}
PdfPrintSettings {
pageRange (string, optional),
pageScaling (integer, optional): 0 = None, 1 = FitToPaper, 2 = ShrinkLargePages, -1 = Undefined,
autoRotateCenter (integer, optional): 0 = Default, 1 = True, 2 = False,
orientation (integer, optional): 0 = Default, 1 = Landscape, 2 = Portrait,
normalise (boolean, optional),
printQuality (integer, optional): 0 = Normal, 1 = High, 2 = Lossless
}
AccessControl {
cookie (string, optional)
}
}
PrintPdfDescription:
- document (string, required)
-
The URI to the PDF document to print or a data URL including the base64 encoded document content.
For example:"data:application/pdf;base64, .. encoded pdf data .."
- description (string, optional)
- Optional string that can be used for tracking jobs.
- device (DevicePrintSettings, optional)
- Settings for printer/device as described in the DevicePrintSettings class.
- settings (PdfPrintSettings, optional)
- Settings for print job content as described in the PdfPrintSettings class.
DevicePrintSettings:
- printerName (string, optional)
- Name of the printer/device on the server to be used for the print job.
- printToFileName (string, optional)
- The full path specification of the file name to save print output to. The file created doesn't accumulate subsequent printouts and (for security reasons) doesn't get overwritten if it already exists. Specify a new filename for each new printout.
- paperSizeName (string, optional)
- Name of paper size to use for the print job.
- paperSourceName (string, optional)
- Name of paper source (or bin) to use for the print job (eg. 'Upper tray').
- collate (integer, optional)
- Collation for the print job. Value can be 0 (Default), 1 (True) or 2 (False).
- copies (integer, optional)
- Number of copies to be printed.
- duplex (integer, optional)
- Type of duplex to be used for the print job. Value can be 0 (Default), 1 (Simplex ie. not Duplex), 2 (Vertical duplex) or 3 (Horizontal duplex).
PdfPrintSettings:
- pageRange (string, optional)
- String that determines which pages of the printed output to print eg. "1,3,5-8" will print pages 1, 3, 5, 6, 7 and 8.
- pageScaling (integer, optional)
- Option to scale pages. Value can be 0 (No scaling), 1 (Fit to paper), 2 (Shrink large pages) or -1 (Undefined).
- autoRotateCenter (integer, optional)
- Indicates whether pages should be rotated to fit on the paper and centered. If this parameter is not given it will be set to 1 (True) if pageScaling is 1. Value can be 0 (Default), 1 (True) or 2 (False).
- orientation (integer, optional)
- Setting for page orientation. Value can be 0 (Default), 1 (Landscape) or 2 (Portrait).
- normalise (boolean, optional)
- Indicates whether or not the pages should be processed to ensure drawing operations are at the expected positions. This option may assist if documents do not print as required.
- printQuality (integer, optional)
- Option to request the print quality to be used. Value can be 0 (Normal), 1 (High) or 2 (Lossless).
AccessControl:
ScriptX Server 10.4.0 or later is required.
10.4.8 and later support multiple cookies as required by systems such as Cold Fusion.
- cookie (string, optional)
- The cookie to be used to authorise access to protected content in the form name=value. With ScriptX Server 10.4.8 and later multiple name=value pairs can be given with | separating each pair.
Response model
Print {
status (integer, optional): 1 = QueuedToDevice, 2 = QueuedToFile, 3 = SoftError, 4 = Ok,
jobIdentifier (string, optional),
message (string, optional)
}
Print:
- status (integer, optional)
- Code indicating initial status of submitted job. 1 (Queued to device), 2 (Queued to file), 3 (Soft error), 4 (Ok)
- jobIdentifier (string, optional)
- Returns the job token which can then be used in status calls to monitor job progress and (if printing to a PDF file) download to download the output file.
- message
- Returns error message if status is 3, otherwise returns empty string.
Example usage
async function sendPDFPrintRequest() {
const requestData = {
document: "https://scriptxservices.meadroid.com/Content/Test1.pdf",
description: "Info pamphlet",
device: {
paperSizeName: "A5"
},
settings: {
pageScaling: 2,
printQuality: 1
}
};
const headers = new Headers({
"Content-Type": "application/json",
"Authorization": "Basic " + btoa("13598d2f-8724-467b-ae64-6e53e9e9f644" + ":")
});
try {
const response = await fetch("https://scriptxservices.meadroid.com/api/v1/printPdf/print", {
method: "POST",
headers: headers,
body: JSON.stringify(requestData)
});
if (!response.ok) {
throw new Error('Network response was not ok');
}
const data = await response.json();
if (data.status !== 3) {
// call print job monitoring function see: statusGET
monitorJobProgress(data.jobIdentifier);
}
} catch (error) {
console.error('There has been a problem with your fetch operation:', error);
// handle failure
}
}