рдмреНрдпреМрд░рд╛
Chromebook рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдкреНрд░рд┐рдВрдЯрд░ рдкрд░ рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, chrome.printing рдПрдкреАрдЖрдИ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ.
рдЕрдиреБрдорддрд┐рдпрд╛рдВ
printingрдЙрдкрд▓рдмреНрдзрддрд╛
рд╕рднреА chrome.printing рддрд░реАрдХреЛрдВ рдФрд░ рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ "printing" рдЕрдиреБрдорддрд┐ рдХрд╛ рдПрд▓рд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
{
"name": "My extension",
...
"permissions": [
"printing"
],
...
}
рдЙрджрд╛рд╣рд░рдг
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╣рд░ рддрд░реАрдХреЗ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ. рдпрд╣ рдХреЛрдб, extensions-samples GitHub repo рдореЗрдВ рдореМрдЬреВрдж api-samples/printing рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЗрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ.
cancelJob()
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, onJobStatusChanged рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ. рдЗрд╕рд╕реЗ, jobStatus рдХреЗ PENDING рдпрд╛ IN_PROGRESS рди рд╣реЛрдиреЗ рдкрд░, 'рд░рджреНрдж рдХрд░реЗрдВ' рдмрдЯрди рдХреЛ рдЫрд┐рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреБрдЫ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдпрд╛ рдЬрдм Chromebook рдХреЛ рд╕реАрдзреЗ рдкреНрд░рд┐рдВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпреЗ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдЗрддрдиреА рддреЗрдЬрд╝реА рд╕реЗ рдмрджрд▓ рд╕рдХрддреА рд╣реИрдВ рдХрд┐ 'рд░рджреНрдж рдХрд░реЗрдВ' рдмрдЯрди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдХрд╛рдлрд╝реА рджреЗрд░ рддрдХ рди рджрд┐рдЦреЗ. рдпрд╣ рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реИ.
chrome.printing.onJobStatusChanged.addListener((jobId, status) => {
const cancelButton = document.getElementById("cancelButton");
cancelButton.addEventListener('click', () => {
chrome.printing.cancelJob(jobId).then((response) => {
if (response !== undefined) {
console.log(response.status);
}
if (chrome.runtime.lastError !== undefined) {
console.log(chrome.runtime.lastError.message);
}
});
});
if (status !== "PENDING" && status !== "IN_PROGRESS") {
cancelButton.style.visibility = 'hidden';
} else {
cancelButton.style.visibility = 'visible';
}
}
getPrinters() and getPrinterInfo()
рдЗрди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ. рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд┐рдВрдЯрд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдВрдЯрд░ рдЖрдИрдбреА рдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИ. рдЗрд╕реЗ getPrinters() рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╡рд╛рдкрд╕ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд┐рдВрдЯрд░ рдХрд╛ рдирд╛рдо рдФрд░ рдмреНрдпреМрд░рд╛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ. рдпрд╣ рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЖрд╕рд╛рди рд╡рд░реНрд╢рди рд╣реИ.
тАЛтАЛconst printers = await chrome.printing.getPrinters();
const defaultPrinter = printers.find((printer) => {
const printerInfo = await chrome.printing.getPrinterInfo(printer.id);
return printerInfo.isDefault;
}
console.log(`Default printer: ${defaultPrinter.name}.\n\t${defaultPrinter.description}`);
submitJob()
submitJob() рддрд░реАрдХреЗ рдХреЗ рд▓рд┐рдП, рддреАрди рдЪреАрдЬрд╝реЗрдВ рдЬрд╝рд░реВрд░реА рд╣реИрдВ.
ticketрд╕реНрдЯреНрд░рдХреНрдЪрд░, рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд┐рдВрдЯрд░ рдХреА рдХрд┐рди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ. рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрдкрд▓рдмреНрдз рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЪреБрдирдирд╛ рд╣реИ, рддреЛgetPrinterInfo()рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рдХрд┐рд╕реА рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.SubmitJobRequestрд╕реНрдЯреНрд░рдХреНрдЪрд░, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдФрд░ рдкреНрд░рд┐рдВрдЯ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рдЗрд╕ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдореЗрдВ,ticketрд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХрд╛ рд░реЗрдлрд╝рд░рдВрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИ.- рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛.
submitJob() рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░, рдПрдХ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИ. рдЗрд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ. рдкреБрд╖реНрдЯрд┐ рдХреА рдкреНрд░реЛрд╕реЗрд╕ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PrintingAPIExtensionsAllowlist рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ.
рдпрд╣ рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЖрд╕рд╛рди рд╡рд░реНрд╢рди рд╣реИ. рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ ticket, SubmitJobRequest рд╕реНрдЯреНрд░рдХреНрдЪрд░ (рд▓рд╛рдЗрди 8) рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ. рд╕рд╛рде рд╣реА, рдкреНрд░рд┐рдВрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдмреНрд▓реЛрдм (рд▓рд╛рдЗрди 10) рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рдкреНрд░рд┐рдВрдЯрд░ рдХрд╛ рдЖрдИрдбреА (рдкрд╣рд▓реА рд▓рд╛рдЗрди) рдкрд╛рдирд╛, рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╕реИрдВрдкрд▓ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ.
const defaultPrinter = getDefaultPrinter();
const ticket = getPrinterTicket(defaultPrinter);
const arrayBuffer = getPrintData();
const submitJobRequest = {
job: {
printerId: defaultPrinter,
title: 'test job',
ticket: ticket,
contentType: 'application/pdf',
document: new Blob([new Uint8Array(arrayBuffer)], {
type: 'application/pdf'
});
}
};
chrome.printing.submitJob(submitJobRequest, (response) => {
if (response !== undefined) {
console.log(response.status);
}
if (chrome.runtime.lastError !== undefined) {
console.log(chrome.runtime.lastError.message);
}
});
рд░реЛрд▓ рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд▓рдЧрд╛рддрд╛рд░ (рдпрд╛ рд░реЛрд▓) рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдВрдЯрд░ рдЯрд┐рдХрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ. рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдЕрдХреНрд╕рд░ рд░рд╕реАрдж рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рд░реЛрд▓ рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП submitJobRequest рдСрдмреНрдЬреЗрдХреНрдЯ, submitJob() рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреИрд╕рд╛ рд╣реА рд╣реЛрддрд╛ рд╣реИ.
рдЕрдЧрд░ рдЖрдкрдХреЛ рдкреЗрдкрд░ рдХрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реИрд▓реНрдпреВ рдмрджрд▓рдиреА рд╣реИ, рддреЛ vendor_ticket_item рдмрдЯрди рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ. (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ, рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИ.) рд╡реИрд▓реНрдпреВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рджрд╕реНрдп рд╡рд╛рд▓рд╛ рдРрд░реЗ рджреЗрдВ: рдПрдХ рдРрд╕рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдХрд╛ id 'finishings' рд╣реИ. рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХреЗ рдЖрдЦрд┐рд░ рдореЗрдВ рд░реЛрд▓ рдХреЛ рдХрд╛рдЯрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рд▓рд┐рдП рд╡реИрд▓реНрдпреВ 'trim' рд╣реЛ рд╕рдХрддреА рд╣реИ. рд╡рд╣реАрдВ, рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рдХреЛ рдлрд╛рдбрд╝рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╡рд╛рд▓реЗ рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рд▓рд┐рдП рд╡реИрд▓реНрдпреВ 'none' рд╣реЛ рд╕рдХрддреА рд╣реИ.
const ticket = {
version: '1.0',
print: {
vendor_ticket_item: [{id: 'finishings', value: 'trim'}],
color: {type: 'STANDARD_MONOCHROME'},
duplex: {type: 'NO_DUPLEX'},
page_orientation: {type: 'PORTRAIT'},
copies: {copies: 1},
dpi: {horizontal_dpi: 300, vertical_dpi: 300},
media_size: {
width_microns: 72320,
height_microns: 100000
},
collate: {collate: false}
}
};
рдХреБрдЫ рдкреНрд░рд┐рдВрдЯрд░ рдкрд░ "finishings" рд╡рд┐рдХрд▓реНрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛. рдпрд╣ рдкрддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░рд┐рдВрдЯрд░ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, getPrinterInfo() рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ "finishings/11" рдХрд╛ "display_name" рджреЗрдЦреЗрдВ.
"vendor_capability": [
{
"display_name": "finishings/11",
"id": "finishings/11",
"type": "TYPED_VALUE",
"typed_value_cap": {
"value_type": "BOOLEAN"
}
},
...
]
рдЯрд┐рдХрдЯ рдХреА media_size рдХреБрдВрдЬреА рдореЗрдВ рдореМрдЬреВрдж рд╡реИрд▓реНрдпреВ, рд╣рд░ рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИрдВ. рд╕рд╣реА рд╕рд╛рдЗрдЬрд╝ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП, getPrinterInfo() рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ. рдЬрд╡рд╛рдм рдХреЗ рддреМрд░ рдкрд░ рдорд┐рд▓реЗ GetPrinterResponse рдореЗрдВ, "media_size"."option" рдкрд░ рдореАрдбрд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╛рдЗрдЬрд╝ рдХрд╛ рдЕрд░реЗ рд╣реЛрддрд╛ рд╣реИ. рдРрд╕рд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВ рдЬрд┐рд╕рдХреА "is_continuous_feed" рд╡реИрд▓реНрдпреВ рд╕рд╣реА рд╣реЛ. рдЯрд┐рдХрдЯ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреА рдКрдВрдЪрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдХреА рд╡реИрд▓реНрдпреВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ.
"media_size": {
"option": [
{
"custom_display_name": "",
"is_continuous_feed": true,
"max_height_microns": 2000000,
"min_height_microns": 25400,
"width_microns": 50800
},
...
]
}
рдЯрд╛рдЗрдк
GetPrinterInfoResponse
рдкреНрд░реЙрдкрд░реНрдЯреА
-
рдЕрдиреБрдорддрд┐рдпрд╛рдВ
object рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ рд╣реИ
CDD рдлрд╝реЙрд░реНрдореИрдЯ рдореЗрдВ рдкреНрд░рд┐рдВрдЯрд░ рдХреА рд╕реБрд╡рд┐рдзрд╛рдПрдВ. рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЙрдкрд░реНрдЯреА рдореМрдЬреВрдж рди рд╣реЛ.
-
рд╕реНрдерд┐рддрд┐
рдкреНрд░рд┐рдВрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐.
JobStatus
рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рдХреА рд╕реНрдерд┐рддрд┐.
Enum
"PENDING"
рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз Chrome рдХреЛ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рдЗрд╕ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ.
"IN_PROGRESS"
рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рднреЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ.
"FAILED"
рдХрд┐рд╕реА рдЧрдбрд╝рдмрдбрд╝реА рдХреА рд╡рдЬрд╣ рд╕реЗ рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рд░реБрдХ рдЧрдИ.
"CANCELED"
рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдПрдкреАрдЖрдИ рдХреЗ рдЬрд╝рд░рд┐рдП рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ.
"PRINTED"
рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЧрдбрд╝рдмрдбрд╝реА рдХреЗ рдкреНрд░рд┐рдВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛.
Printer
рдкреНрд░реЙрдкрд░реНрдЯреА
-
рдмреНрдпреМрд░рд╛
рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдЬрд┐рд╕реЗ рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ.
-
рдЖрдИрдбреА
рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдкреНрд░рд┐рдВрдЯрд░ рдХрд╛ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░. рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдореМрдЬреВрдж рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рд▓рд┐рдП рдпреВрдиреАрдХ рд╣реЛрддрд╛ рд╣реИ.
-
isDefault
рдмреВрд▓рд┐рдпрди
рдпрд╣ рдлрд╝реНрд▓реИрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд┐рдВрдЯрд░, DefaultPrinterSelection рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдореБрддрд╛рдмрд┐рдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ. рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрдИ рдкреНрд░рд┐рдВрдЯрд░ рдХреЛ рдлрд╝реНрд▓реИрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
-
рдирд╛рдо
рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдкреНрд░рд┐рдВрдЯрд░ рдХрд╛ рдирд╛рдо.
-
recentlyUsedRank
number рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ
рдЗрд╕ рд╡реИрд▓реНрдпреВ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ Chrome рд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд┐рдВрдЯрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрдм рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛. рд╡реИрд▓реНрдпреВ рдЬрд┐рддрдиреА рдХрдо рд╣реЛрдЧреА, рдкреНрд░рд┐рдВрдЯрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдЙрддрдиреА рд╣реА рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛. рдХрдо рд╕реЗ рдХрдо рд╡реИрд▓реНрдпреВ 0 рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП. рд╡реИрд▓реНрдпреВ рдореМрдЬреВрдж рди рд╣реЛрдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░рд┐рдВрдЯрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ. рдпрд╣ рд╡реИрд▓реНрдпреВ, рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рдпреВрдиреАрдХ рд╣реЛрддреА рд╣реИ.
-
source
рдкреНрд░рд┐рдВрдЯрд░ рдХрд╛ рд╕реЛрд░реНрд╕ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдиреАрддрд┐).
-
uri
рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдкреНрд░рд┐рдВрдЯрд░ рдХрд╛ рдпреВрдЖрд░рдЖрдИ. рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдВрдЯрд░ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ.
PrinterSource
рдкреНрд░рд┐рдВрдЯрд░ рдХрд╛ рд╕реЛрд░реНрд╕.
Enum
"USER"
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдкреНрд░рд┐рдВрдЯрд░ рдЬреЛрдбрд╝рд╛.
"рдиреАрддрд┐"
рдиреАрддрд┐ рдХреЗ рдЬрд╝рд░рд┐рдП рдкреНрд░рд┐рдВрдЯрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛.
PrinterStatus
рдкреНрд░рд┐рдВрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐.
Enum
"DOOR_OPEN"
рдкреНрд░рд┐рдВрдЯрд░ рдХрд╛ рджрд░рд╡рд╛рдЬрд╝рд╛ рдЦреБрд▓рд╛ рд╣реИ. рдкреНрд░рд┐рдВрдЯрд░ рдЕрдм рднреА рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ.
"TRAY_MISSING"
рдкреНрд░рд┐рдВрдЯрд░ рдХреА рдЯреНрд░реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ. рдкреНрд░рд┐рдВрдЯрд░ рдЕрдм рднреА рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ.
"OUT_OF_INK"
рдкреНрд░рд┐рдВрдЯрд░ рдореЗрдВ рд╕реНрдпрд╛рд╣реА рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИ. рдкреНрд░рд┐рдВрдЯрд░ рдЕрдм рднреА рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ.
"OUT_OF_PAPER"
рдкреНрд░рд┐рдВрдЯрд░ рдореЗрдВ рдкреЗрдкрд░ рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ. рдкреНрд░рд┐рдВрдЯрд░ рдЕрдм рднреА рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ.
"OUTPUT_FULL"
рдкреНрд░рд┐рдВрдЯрд░ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╡рд╛рд▓реА рдЬрдЧрд╣ (рдЬреИрд╕реЗ рдХрд┐ рдЯреНрд░реЗ) рднрд░ рдЧрдИ рд╣реИ. рдкреНрд░рд┐рдВрдЯрд░ рдЕрдм рднреА рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ.
"PAPER_JAM"
рдкреНрд░рд┐рдВрдЯрд░ рдореЗрдВ рдкреЗрдкрд░ рдЬрд╛рдо рд╣реЛ рдЧрдпрд╛ рд╣реИ. рдкреНрд░рд┐рдВрдЯрд░ рдЕрдм рднреА рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ.
"GENERIC_ISSUE"
рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛. рдкреНрд░рд┐рдВрдЯрд░ рдЕрдм рднреА рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ.
"STOPPED"
рдкреНрд░рд┐рдВрдЯрд░ рдмрдВрдж рд╣реИ рдФрд░ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛, рд▓реЗрдХрд┐рди рдЕрдм рднреА рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ.
"UNREACHABLE"
рдкреНрд░рд┐рдВрдЯрд░ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рдкрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ.
"EXPIRED_CERTIFICATE"
рдПрд╕рдПрд╕рдПрд▓ рд╕рд░реНрдЯрд┐рдлрд╝рд┐рдХреЗрдЯ рдХреА рд╕рдордпрд╕реАрдорд╛ рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИ. рдкреНрд░рд┐рдВрдЯрд░, рдЬреЙрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдкреВрд░реЗ рдирд╣реАрдВ рд╣реЛрддреЗ.
"AVAILABLE"
рдкреНрд░рд┐рдВрдЯрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ.
SubmitJobRequest
рдкреНрд░реЙрдкрд░реНрдЯреА
-
рдиреМрдХрд░реА
рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ. "application/pdf" рдФрд░ "image/png" рдХреЙрдиреНрдЯреЗрдВрдЯ рдЯрд╛рдЗрдк рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. Cloud Job Ticket рдореЗрдВ
FitToPageTicketItem,PageRangeTicketItem, рдФрд░ReverseOrderTicketItemрдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рдиреЗрдЯрд┐рд╡ рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХреЗ рдирд╣реАрдВ рд╣реИрдВ.VendorTicketItemрдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдирд╛ рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ рд╣реИ. рдЕрдиреНрдп рд╕рднреА рдлрд╝реАрд▓реНрдб рдореМрдЬреВрдж рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП.
SubmitJobResponse
рдкреНрд░реЙрдкрд░реНрдЯреА
-
jobId
string рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ рд╣реИ
рдмрдирд╛рдП рдЧрдП рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рдХрд╛ рдЖрдИрдбреА. рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдореМрдЬреВрдж рд╕рднреА рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рдХреЗ рд▓рд┐рдП рдпреВрдиреАрдХ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ рд╣реЛрддрд╛ рд╣реИ. рдЕрдЧрд░ рд╕реНрдЯреЗрдЯрд╕ рдареАрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ jobId рд╢реВрдиреНрдп рд╣реЛрдЧрд╛.
-
рд╕реНрдерд┐рддрд┐
рдЕрдиреБрд░реЛрдз рдХреА рд╕реНрдерд┐рддрд┐.
SubmitJobStatus
submitJob рдЕрдиреБрд░реЛрдз рдХрд╛ рд╕реНрдЯреЗрдЯрд╕.
Enum
"рдареАрдХ рд╣реИ"
рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ.
"USER_REJECTED"
рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рдХрд╛ рднреЗрдЬрд╛ рдЧрдпрд╛ рдЕрдиреБрд░реЛрдз, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рд╣реИ.
рдкреНрд░реЙрдкрд░реНрдЯреА
MAX_GET_PRINTER_INFO_CALLS_PER_MINUTE
рд╣рд░ рдорд┐рдирдЯ рдореЗрдВ getPrinterInfo рдХреЛ рдЬрд╝реНрдпрд╛рджрд╛ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдХрд┐рддрдиреА рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
рдорд╛рди
20
MAX_SUBMIT_JOB_CALLS_PER_MINUTE
рд╣рд░ рдорд┐рдирдЯ рдореЗрдВ submitJob рдХреЛ рдЬрд╝реНрдпрд╛рджрд╛ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдХрд┐рддрдиреА рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
рдорд╛рди
40
рддрд░реАрдХреЗ
cancelJob()
chrome.printing.cancelJob(
jobId: string,
): Promise<void>
рдкрд╣рд▓реЗ рд╕рдмрдорд┐рдЯ рдХрд┐рдП рдЧрдП рдЬреЙрдм рдХреЛ рд░рджреНрдж рдХрд░рддрд╛ рд╣реИ.
рдкреИрд░рд╛рдореАрдЯрд░
-
jobId
рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рдХрд╛ рд╡рд╣ рдЖрдИрдбреА рдЬрд┐рд╕реЗ рд░рджреНрдж рдХрд░рдирд╛ рд╣реИ. рдпрд╣ рд╡рд╣реА рдЖрдИрдбреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ
SubmitJobResponseрдореЗрдВ рдорд┐рд▓рд╛ рдерд╛.
рд░рд┐рдЯрд░реНрди
-
Promise<void>
Chrome 100+
getJobStatus()
chrome.printing.getJobStatus(
jobId: string,
): Promise<JobStatus>
рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рдХрд╛ рд╕реНрдЯреЗрдЯрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИ. рдЕрдЧрд░ рджрд┐рдП рдЧрдП jobId рд╡рд╛рд▓рд╛ рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдХреЙрд▓ рд░рдирдЯрд╛рдЗрдо рдЧрдбрд╝рдмрдбрд╝реА рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛. jobId: рдЙрд╕ рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рдХрд╛ рдЖрдИрдбреА рдЬрд┐рд╕рдХреЗ рд╕реНрдЯреЗрдЯрд╕ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рд┐рдП. рдпрд╣ рд╡рд╣реА рдЖрдИрдбреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ SubmitJobResponse рдореЗрдВ рдорд┐рд▓рд╛ рдерд╛.
рдкреИрд░рд╛рдореАрдЯрд░
-
jobId
рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд░рд┐рдЯрд░реНрди
-
Promise<JobStatus>
getPrinterInfo()
chrome.printing.getPrinterInfo(
printerId: string,
): Promise<GetPrinterInfoResponse>
рдпрд╣ CDD рдлрд╝реЙрд░реНрдореИрдЯ рдореЗрдВ, рдкреНрд░рд┐рдВрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ. рдЕрдЧрд░ рджрд┐рдП рдЧрдП рдЖрдИрдбреА рд╡рд╛рд▓реЗ рдХреЛрдИ рднреА рдкреНрд░рд┐рдВрдЯрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рддреЛ рдпрд╣ рдХреЙрд▓ рд░рдирдЯрд╛рдЗрдо рдЧрдбрд╝рдмрдбрд╝реА рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛.
рдкреИрд░рд╛рдореАрдЯрд░
-
printerId
рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд░рд┐рдЯрд░реНрди
-
Promise<GetPrinterInfoResponse>
Chrome 100+
getPrinters()
chrome.printing.getPrinters(): Promise<Printer[]>
рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЙрдкрд▓рдмреНрдз рдкреНрд░рд┐рдВрдЯрд░ рдХреА рд╕реВрдЪреА рджрд┐рдЦрд╛рддрд╛ рд╣реИ. рдЗрд╕рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рддрд░реАрдХреЗ рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП, рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝, рдФрд░ рдЦреЛрдЬреЗ рдЧрдП рдкреНрд░рд┐рдВрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ.
рд░рд┐рдЯрд░реНрди
-
Promise<Printer[]>
Chrome 100+
submitJob()
chrome.printing.submitJob(
request: SubmitJobRequest,
): Promise<SubmitJobResponse>
рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЙрдм рд╕рдмрдорд┐рдЯ рдХрд░рддрд╛ рд╣реИ. рдЕрдЧрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ PrintingAPIExtensionsAllowlist рдиреАрддрд┐ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдЬреЙрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ.
Chrome 120 рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░реЙрдорд┐рд╕ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рдерд╛.
рдкреИрд░рд╛рдореАрдЯрд░
-
CANNOT TRANSLATE
рд░рд┐рдЯрд░реНрди
-
Promise<SubmitJobResponse>
Chrome 100+
рдЗрд╡реЗрдВрдЯ
onJobStatusChanged
chrome.printing.onJobStatusChanged.addListener(
callback: function,
)
рдЬрдм рдХрд╛рдо рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓рддреА рд╣реИ, рддрдм рдпрд╣ рдЗрд╡реЗрдВрдЯ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИ. рдпрд╣ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд░реНрдлрд╝ рдЗрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИ.