htmlPrintDefaults (GET)
{server}/api/v1/printHtml/htmlPrintDefaults/{units}
Description
Returns the default settings for printing HTML, default device info and a list of available device names - useful for populating a UI, e.g. with a list of the printers available.
Where a value of 0 corresponds to 'Default' (eg. for printBackgroundColorsAndImages or printingPass), the setting will be taken from the Internet Explorer settings on the machine providing ScriptX.Services.
Applies to:
- ScriptX.Services for Cloud
- ScriptX.Services for On-Premise Devices (Authorisation header is ignored)
- ScriptX.Services for Windows PC
Request parameters
units (integer, required): 0 = Default, 1 = Inches, 2 = Mm
- units (integer, required)
- Specifies the measurement units to be used for margin settings, header and footer heights etc. Value can be 0 (Default), 1 (inches) or 2 (mm).
Response model
PrintHtmlDefaultSettings {
settings (HtmlPrintSettings, optional),
device (DeviceSettings, optional),
availablePrinters (Array[string], optional)
}
HtmlPrintSettings {
locale (string, optional),
shortDateFormat (string, optional),
longDateFormat (string, optional),
timeformat (string, optional),
timezoneOffset (integer, optional),
documentUrl (string, optional),
header (string, optional),
footer (string, optional),
headerFooterFont (string, optional),
page (PageSettings, optional),
viewScale (integer, optional),
printBackgroundColorsAndImages (integer, optional): 0 = Default, 1 = True, 2 = False,
pageRange (string, optional),
printingPass (integer, optional): 0 = Default, 1 = All, 2 = Odd, 3 = Even,
extraHeadersAndFooters (ExtraHeaderAndFooterSettings, optional),
jobTitle (string, optional)
}
DeviceSettings {
printerName (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,
paperPageSize (Size, optional),
unprintableMargins (Margins, optional),
status (integer, optional),
port (string, optional),
attributes (integer, optional),
serverName (string, optional),
shareName (string, optional),
location (string, optional),
isLocal (boolean, optional),
isNetwork (boolean, optional),
isShared (boolean, optional),
isDefault (boolean, optional),
bins (Array[string], optional),
forms (Array[string], optional)
}
PageSettings {
orientation (integer, optional): 0 = Default, 1 = Landscape, 2 = Portrait,
units (integer, optional): 0 = Default, 1 = Inches, 2 = Mm,
margins (Margins, optional)
}
ExtraHeaderAndFooterSettings {
allPagesHeader (string, optional),
allPagesFooter (string, optional),
firstPageHeader (string, optional),
firstPageFooter (string, optional),
extraFirstPageFooter (string, optional),
allHeaderHeight (integer, optional),
allFooterHeight (integer, optional),
firstHeaderHeight (integer, optional),
firstFooterHeight (integer, optional),
extraFirstFooterHeight (integer, optional)
}
Size {
width (number, optional),
height (number, optional)
}
Margins {
left (string, optional),
top (string, optional),
bottom (string, optional),
right (string, optional)
}
Response properties
PrintHtmlDefaultSettings:
- settings (HtmlPrintSettings)
- Settings for print job content as described in the HtmlPrintSettings class
- device (DeviceSettings, optional)
- Settings for printer/device as described in the DeviseSettings class.
- availablePrinters (Array[string], optional)
- An array of the names of all printers/devices available on the print server.
HtmlPrintSettings:
- locale (string, optional)
- ISO 639-1 language code (eg. "en" for English, "es" for Spanish), used to determine locale-dependent date and time display formats.
- shortDateFormat (string, optional)
- Short date format string. Default is d (locale-dependent).
- longDateFormat (string, optional)
- Long date format string. Default is D (locale-dependent).
- timeformat (string, optional)
- Short time format string. Default is t (locale-dependent).
- timezoneOffset (integer, optional)
- Client timezone offset (in hours) from UTC.
- documentUrl (string, optional)
- URL of the HTML document to be printed. Always null when responding to GET settings request.
-
- header (string, optional)
- String to print in header of printed output pages. Tokens can be used to represent common information such as date, time, page number etc.
- footer (string, optional)
- String to print in footer of printed output pages. Tokens can be used to represent common information such as date, time, page number etc.
- headerFooterFont (string, optional)
- Font that will be used for headers and footers of printed output pages. If value is an empty string the system default font will be used.
- page (PageSettings, optional)
- Additional page settings as defined by the PageSettings class.
- viewScale (integer, optional)
- The scaling factor expressed as a percentage that will used to print the document. Value can be -1 ('shrink-to-fit'), 0 ('Default') or any value between 30 and 999.
- printBackgroundColorsAndImages (integer, optional)
- Option that determines whether background colors and images will be included in the printed output. Value can be 0 (Default), 1 (True) or 2 (False).
- 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.
- printingPass (integer, optional)
- Option to print select pages from printed output. Value can be 0 (Default), 1 (All), 2 (Odd) or 3 (Even).
- extraHeadersAndFooters (ExtraHeaderAndFooterSettings, optional)
- Extended settings for headers and footers as defined by the ExtraHeaderAndFooterSettings class.
- jobTitle (string, optional)
- String that identifies a print job. Always null when responding to GET settings request.
DeviceSettings:
- printerName (string, optional)
- Name of the printer/device on the server. If 'default' was used for the deviceName parameter this will be the default server printer.
- paperSizeName (string, optional)
- Current paper size setting for the device.
- paperSourceName (string, optional)
- Current paper source setting (or bin) for the device (eg. 'Upper tray').
- collate (integer, optional)
- Current collation setting for the device. Value can be 0 (Default), 1 (True) or 2 (False).
- copies (integer, optional)
- Current device setting for number of copies to be printed.
- duplex (integer, optional)
- Current duplex setting for the device. Value can be 0 (Default), 1 (Simplex ie. not Duplex), 2 (Vertical duplex) or 3 (Horizontal duplex).
- paperPageSize (Size, optional)
- Current paper page size for the device as described by the Size class.
- unprintableMargins (Margins, optional)
- Current device setting for unprintable margins as described by the Margins class.
- status (integer, optional)
- Current status of the device. Value can be any reasonable combination of these values.
- port (string, optional)
- A string that identifies the port(s) used to transmit data to the printer. If a printer is connected to more than one port, the names of each port will be separated by commas (for example, "LPT1:,LPT2:,LPT3:").
- attributes (integer, optional)
- The current attributes of the printer. Value can be any reasonable combination of these values.
- serverName (string, optional)
- A string giving the name of the server computer controlling the printer. If the string is empty then the printer is controlled locally.
- shareName (string, optional)
- A string identifying the share point of the printer. This value is only present if PRINTER_ATTRIBUTE_SHARED is set in attributes.
- location (string, optional)
- A string describing the physical location of the printer.
- isLocal (boolean, optional)
- Whether the printer is a local printer (true) or not (false). isLocal tests whether PRINTER_ATTRIBUTE_LOCAL is set in attributes.
- isNetwork (boolean, optional)
- Whether the printer is a network printer (true) or not (false). isNetwork tests whether PRINTER_ATTRIBUTE_NETWORK is set in attributes.
- isShared (string, optional)
- Whether the printer is a shared printer (true) or not (false). isShared tests whether PRINTER_ATTRIBUTE_SHARED is set in attributes.
- isDefault (boolean, optional)
- Whether the printer is the default printer of the server computer (true) or not (false).
- bins (Array[string], optional)
- Lists the available paper sources for a printer. The names returned are suitable for use with the paperSource property.
- forms (Array[string], optional)
- Lists the available paper sizes (forms) for a printer. The names returned are suitable for use with the paperSize property.
PageSettings:
- orientation (integer, optional)
- Setting for page orientation. Value can be 0 (Default), 1 (Landscape) or 2 (Portrait).
- units (integer, optional)
- Option that specifies the measurement units to be used for margin settings, header and footer heights etc. Value can be 0 (Default), 1 (inches) or 2 (mm).
- margins (Margins, optional)
- Option that specifies the page margins to be used for printed output as defined by the Margins class. Units are specified by the units setting (see above).
ExtraHeaderAndFooterSettings:
- allPagesHeader (string, optional)
- String or HTML snippet to print in header of all printed output pages. Tokens can be used to represent common information such as date, time, page number etc.
- allPagesFooter (string, optional)
- String or HTML snippet to print in footer of all printed output pages. Tokens can be used to represent common information such as date, time, page number etc.
- firstPageHeader (string, optional)
- String or HTML snippet to print in header of first printed output page in place of allPagesHeader. Tokens can be used to represent common information such as date, time, page number etc.
- firstPageFooter (string, optional)
- String or HTML snippet to print in footer of first printed output page in place of allPagesFooter. Tokens can be used to represent common information such as date, time, page number etc.
- extraFirstPageFooter (string, optional)
- String or HTML snippet to print as extra footer of first printed output page in addition to allPagesFooter or firstPageFooter. Tokens can be used to represent common information such as date, time, page number etc.
- allHeaderHeight (integer, optional)
- Height of headers for all pages, using units as specified in the units setting (see above).
- allFooterHeight (integer, optional)
- Height of footers for all pages, using units as specified in the units setting (see above).
- firstHeaderHeight (integer, optional)
- Height of header for first page where firstPageHeader has been specified, using units as specified in the units setting (see above).
- firstFooterHeight (integer, optional)
- Height of footer for first page where firstPageFooter has been specified, using units as specified in the units setting (see above).
- extraFirstFooterHeight (integer, optional)
- Height of extra footer for first page where extraFirstPageFooter has been specified, using units as specified in the units setting (see above).
Size:
- width (number, optional)
- The width of the paper specified by paperSizeName. Units are as specified in the units request parameter.
- height (number, optional)
- The height of the paper specified by paperSizeName. Units are as specified in the units request parameter.
Margins:
- left (string, optional)
- Left page margin.
- top (string, optional)
- Top page margin.
- bottom (string, optional)
- Bottom page margin.
- right (string, optional)
- Right page margin.
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/htmlPrintDefaults/1";
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 settings and device info
var leftMargin = data.settings.page.margins.left + (data.settings.page.units === 1 ? ' inches' : ' mm';
var availableDevices = data.availablePrinters;
var header = data.settings.header;
var isDefaultPrinter = data.device.isDefault;
var currentPaperSize = data.device.paperSizeName + '(w:' + data.device.paperPageSize.width + 'in h:' + data.device.paperPageSize.height + 'in)';
// the units request parameter was 1 so dimensions returned will be in inches
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.";
});
}