توضیحات
از chrome.printing
API برای ارسال کارهای چاپی به چاپگرهای نصب شده در Chromebook استفاده کنید.
مجوزها
printing
در دسترس بودن
آشکار
همه روشها و رویدادهای chrome.printing
از شما میخواهند مجوز "printing"
را در مانیفست افزونه اعلام کنید. به عنوان مثال:
{
"name": "My extension",
...
"permissions": [
"printing"
],
...
}
نمونه ها
مثالهای زیر استفاده از هر یک از روشها را در فضای نام چاپ نشان میدهند. این کد از یا بر اساس api-samples/printing در Extensions-Samps مخزن GitHub کپی شده است.
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() و 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) تبدیل می شود. دریافت شناسه چاپگر (خط 1) در نمونه پیچیده تر از آنچه در اینجا نشان داده شده است.
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()
را فراخوانی کنید و به دنبال "display_name"
از "finishings/11"
بگردید.
"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
خواص
- قابلیت ها
شی اختیاری
قابلیت های چاپگر در فرمت CDD . ممکن است ملک گم شده باشد.
- وضعیت
وضعیت چاپگر
JobStatus
وضعیت کار چاپ
Enum
"در انتظار" "IN_PROGRESS" "شکست خورده" "لغو" "چاپ شده"
کار چاپ در سمت کروم دریافت شد اما هنوز پردازش نشده است.
کار چاپ برای چاپ ارسال می شود.
کار چاپ به دلیل برخی خطا قطع شد.
کار چاپ توسط کاربر یا از طریق API لغو شد.
کار چاپ بدون هیچ خطایی چاپ شد.
Printer
خواص
- توضیحات
رشته
توصیف انسان قابل خواندن چاپگر.
- شناسه
رشته
شناسه چاپگر؛ تضمین شده است که در بین چاپگرهای دستگاه منحصر به فرد است.
- پیش فرض است
بولی
پرچمی که نشان می دهد آیا چاپگر با قوانین DefaultPrinterSelection مطابقت دارد یا خیر. توجه داشته باشید که چندین چاپگر ممکن است علامت گذاری شوند.
- نام
رشته
نام چاپگر.
- اخیراًUsedRank
شماره اختیاری
مقداری که نشان می دهد چاپگر چقدر اخیر برای چاپ از Chrome استفاده شده است. هرچه این مقدار کمتر باشد چاپگر جدیدتر استفاده شده است. حداقل مقدار 0 است. مقدار از دست رفته نشان می دهد که چاپگر اخیراً استفاده نشده است. این مقدار تضمین شده است که در بین چاپگرها منحصر به فرد است.
- منبع
منبع چاپگر (کاربر یا خط مشی پیکربندی شده است).
- اوری
رشته
URI چاپگر. این می تواند توسط برنامه های افزودنی برای انتخاب چاپگر برای کاربر استفاده شود.
PrinterSource
منبع چاپگر
Enum
"کاربر" "سیاست"
چاپگر توسط کاربر اضافه شد.
چاپگر از طریق خط مشی اضافه شد.
PrinterStatus
وضعیت چاپگر
Enum
"DOOR_OPEN" "TRAY_MISSING" "OUT_OF_INK" "OUT_OF_PAPER" "OUTPUT_FULL" "PAPER_JAM" "GENERIC_ISSUE" "توقف شد" "دست نیافتنی" "EXPIRED_CERTIFICATE" "موجود"
درب پرینتر باز است. چاپگر همچنان کارهای چاپ را می پذیرد.
سینی چاپگر وجود ندارد. چاپگر همچنان کارهای چاپ را می پذیرد.
جوهر چاپگر تمام شده است. چاپگر همچنان کارهای چاپ را می پذیرد.
کاغذ چاپگر تمام شده است. چاپگر همچنان کارهای چاپ را می پذیرد.
ناحیه خروجی چاپگر (به عنوان مثال سینی) پر است. چاپگر همچنان کارهای چاپ را می پذیرد.
چاپگر دارای گیر کردن کاغذ است. چاپگر همچنان کارهای چاپ را می پذیرد.
برخی از مسائل عمومی چاپگر همچنان کارهای چاپ را می پذیرد.
چاپگر متوقف شده است و چاپ نمی شود اما همچنان کارهای چاپ را می پذیرد.
چاپگر قابل دسترسی نیست و کارهای چاپی را نمی پذیرد.
گواهی SSL منقضی شده است. چاپگر کارها را می پذیرد اما آنها شکست می خورند.
چاپگر موجود است.
SubmitJobRequest
خواص
- شغل
کار چاپی که باید ارسال شود. انواع محتوای پشتیبانی شده عبارتند از "application/pdf" و "image/png". Cloud Job Ticket نباید شامل فیلدهای
FitToPageTicketItem
،PageRangeTicketItem
وReverseOrderTicketItem
باشد زیرا برای چاپ بومی نامربوط هستند.VendorTicketItem
اختیاری است. تمام فیلدهای دیگر باید وجود داشته باشد.
SubmitJobResponse
خواص
- job ID
رشته اختیاری
شناسه کار چاپ ایجاد شده این یک شناسه منحصر به فرد در بین تمام کارهای چاپی روی دستگاه است. اگر وضعیت خوب نباشد jobId null خواهد بود.
- وضعیت
وضعیت درخواست
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,
callback?: function,
)
کار ارسال شده قبلی را لغو می کند.
پارامترها
- job ID
رشته
شناسه کار چاپ برای لغو. این باید همان شناسه دریافت شده در
SubmitJobResponse
باشد. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:() => void
برمی گرداند
قول<باطل>
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getJobStatus()
chrome.printing.getJobStatus(
jobId: string,
callback?: function,
)
وضعیت کار چاپ را برمیگرداند. اگر کار چاپ با jobId
داده شده وجود نداشته باشد، این تماس با خطای زمان اجرا ناموفق خواهد بود. jobId
: شناسه کار چاپ برای برگرداندن وضعیت. این باید همان شناسه دریافت شده در SubmitJobResponse
باشد.
پارامترها
- job ID
رشته
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(status: JobStatus) => void
- وضعیت
برمی گرداند
Promise< وضعیت شغلی >
Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getPrinterInfo()
chrome.printing.getPrinterInfo(
printerId: string,
callback?: function,
)
وضعیت و قابلیت های چاپگر را در قالب CDD برمی گرداند. اگر چاپگری با شناسه داده شده نصب نشود، این تماس با خطای زمان اجرا ناموفق خواهد بود.
پارامترها
- شناسه چاپگر
رشته
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: GetPrinterInfoResponse) => void
برمی گرداند
Promise< GetPrinterInfoResponse >
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getPrinters()
chrome.printing.getPrinters(
callback?: function,
)
لیست چاپگرهای موجود در دستگاه را برمی گرداند. این شامل چاپگرهای دستی، سازمانی و کشف شده میشود.
پارامترها
برمی گرداند
Promise< چاپگر []>
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
submitJob()
chrome.printing.submitJob(
request: SubmitJobRequest,
callback?: function,
)
کار را برای چاپ ارسال می کند. اگر برنامه افزودنی در خطمشی PrintingAPIExtensionsAllowlist
فهرست نشده باشد، از کاربر خواسته میشود کار چاپ را بپذیرد. قبل از کروم 120، این عملکرد قولی را برنمیگرداند.
پارامترها
- درخواست کنید
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: SubmitJobResponse) => void
- پاسخ
برمی گرداند
Promise< SubmitJobResponse >
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
رویدادها
onJobStatusChanged
chrome.printing.onJobStatusChanged.addListener(
callback: function,
)
زمانی که وضعیت کار تغییر میکند، رویداد اخراج میشود. این فقط برای مشاغل ایجاد شده توسط این افزونه اخراج می شود.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(jobId: string, status: JobStatus) => void
- job ID
رشته
- وضعیت
توضیحات
از chrome.printing
API برای ارسال کارهای چاپی به چاپگرهای نصب شده در Chromebook استفاده کنید.
مجوزها
printing
در دسترس بودن
آشکار
همه روشها و رویدادهای chrome.printing
از شما میخواهند مجوز "printing"
را در مانیفست افزونه اعلام کنید. به عنوان مثال:
{
"name": "My extension",
...
"permissions": [
"printing"
],
...
}
نمونه ها
مثالهای زیر استفاده از هر یک از روشها را در فضای نام چاپ نشان میدهند. این کد از یا بر اساس api-samples/printing در Extensions-Samps مخزن GitHub کپی شده است.
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() و 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) تبدیل می شود. دریافت شناسه چاپگر (خط 1) در نمونه پیچیده تر از آنچه در اینجا نشان داده شده است.
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()
را فراخوانی کنید و به دنبال "display_name"
از "finishings/11"
بگردید.
"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
خواص
- قابلیت ها
شی اختیاری
قابلیت های چاپگر در فرمت CDD . ممکن است ملک گم شده باشد.
- وضعیت
وضعیت چاپگر
JobStatus
وضعیت کار چاپ
Enum
"در انتظار" "IN_PROGRESS" "شکست خورده" "لغو" "چاپ شده"
کار چاپ در سمت کروم دریافت شد اما هنوز پردازش نشده است.
کار چاپ برای چاپ ارسال می شود.
کار چاپ به دلیل برخی خطا قطع شد.
کار چاپ توسط کاربر یا از طریق API لغو شد.
کار چاپ بدون هیچ خطایی چاپ شد.
Printer
خواص
- توضیحات
رشته
توصیف انسان قابل خواندن چاپگر.
- شناسه
رشته
شناسه چاپگر؛ تضمین شده است که در بین چاپگرهای دستگاه منحصر به فرد است.
- پیش فرض است
بولی
پرچمی که نشان می دهد آیا چاپگر با قوانین DefaultPrinterSelection مطابقت دارد یا خیر. توجه داشته باشید که چندین چاپگر ممکن است علامت گذاری شوند.
- نام
رشته
نام چاپگر.
- اخیراًUsedRank
شماره اختیاری
مقداری که نشان می دهد چاپگر چقدر اخیر برای چاپ از Chrome استفاده شده است. هرچه این مقدار کمتر باشد چاپگر جدیدتر استفاده شده است. حداقل مقدار 0 است. مقدار از دست رفته نشان می دهد که چاپگر اخیراً استفاده نشده است. این مقدار تضمین شده است که در بین چاپگرها منحصر به فرد است.
- منبع
منبع چاپگر (کاربر یا خط مشی پیکربندی شده است).
- اوری
رشته
URI چاپگر. این می تواند توسط برنامه های افزودنی برای انتخاب چاپگر برای کاربر استفاده شود.
PrinterSource
منبع چاپگر
Enum
"کاربر" "سیاست"
چاپگر توسط کاربر اضافه شد.
چاپگر از طریق خط مشی اضافه شد.
PrinterStatus
وضعیت چاپگر
Enum
"DOOR_OPEN" "TRAY_MISSING" "OUT_OF_INK" "OUT_OF_PAPER" "OUTPUT_FULL" "PAPER_JAM" "GENERIC_ISSUE" "توقف شد" "دست نیافتنی" "EXPIRED_CERTIFICATE" "موجود"
درب پرینتر باز است. چاپگر همچنان کارهای چاپ را می پذیرد.
سینی چاپگر وجود ندارد. چاپگر همچنان کارهای چاپ را می پذیرد.
جوهر چاپگر تمام شده است. چاپگر همچنان کارهای چاپ را می پذیرد.
کاغذ چاپگر تمام شده است. چاپگر همچنان کارهای چاپ را می پذیرد.
ناحیه خروجی چاپگر (به عنوان مثال سینی) پر است. چاپگر همچنان کارهای چاپ را می پذیرد.
چاپگر دارای گیر کردن کاغذ است. چاپگر همچنان کارهای چاپ را می پذیرد.
برخی از مسائل عمومی چاپگر همچنان کارهای چاپ را می پذیرد.
چاپگر متوقف شده است و چاپ نمی شود اما همچنان کارهای چاپ را می پذیرد.
چاپگر قابل دسترسی نیست و کارهای چاپی را نمی پذیرد.
گواهی SSL منقضی شده است. چاپگر کارها را می پذیرد اما آنها شکست می خورند.
چاپگر موجود است.
SubmitJobRequest
خواص
- شغل
کار چاپی که باید ارسال شود. انواع محتوای پشتیبانی شده عبارتند از "application/pdf" و "image/png". Cloud Job Ticket نباید شامل فیلدهای
FitToPageTicketItem
،PageRangeTicketItem
وReverseOrderTicketItem
باشد زیرا برای چاپ بومی نامربوط هستند.VendorTicketItem
اختیاری است. تمام فیلدهای دیگر باید وجود داشته باشد.
SubmitJobResponse
خواص
- job ID
رشته اختیاری
شناسه کار چاپ ایجاد شده این یک شناسه منحصر به فرد در بین تمام کارهای چاپی روی دستگاه است. اگر وضعیت خوب نباشد jobId null خواهد بود.
- وضعیت
وضعیت درخواست
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,
callback?: function,
)
کار ارسال شده قبلی را لغو می کند.
پارامترها
- job ID
رشته
شناسه کار چاپ برای لغو. این باید همان شناسه دریافت شده در
SubmitJobResponse
باشد. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:() => void
برمی گرداند
قول<باطل>
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getJobStatus()
chrome.printing.getJobStatus(
jobId: string,
callback?: function,
)
وضعیت کار چاپ را برمیگرداند. اگر کار چاپ با jobId
داده شده وجود نداشته باشد، این تماس با خطای زمان اجرا ناموفق خواهد بود. jobId
: شناسه کار چاپ برای برگرداندن وضعیت. این باید همان شناسه دریافت شده در SubmitJobResponse
باشد.
پارامترها
- job ID
رشته
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(status: JobStatus) => void
- وضعیت
برمی گرداند
Promise< وضعیت شغلی >
Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getPrinterInfo()
chrome.printing.getPrinterInfo(
printerId: string,
callback?: function,
)
وضعیت و قابلیت های چاپگر را در قالب CDD برمی گرداند. اگر چاپگری با شناسه داده شده نصب نشود، این تماس با خطای زمان اجرا ناموفق خواهد بود.
پارامترها
- شناسه چاپگر
رشته
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: GetPrinterInfoResponse) => void
برمی گرداند
Promise< GetPrinterInfoResponse >
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getPrinters()
chrome.printing.getPrinters(
callback?: function,
)
لیست چاپگرهای موجود در دستگاه را برمی گرداند. این شامل چاپگرهای دستی، سازمانی و کشف شده میشود.
پارامترها
برمی گرداند
Promise< چاپگر []>
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
submitJob()
chrome.printing.submitJob(
request: SubmitJobRequest,
callback?: function,
)
کار را برای چاپ ارسال می کند. اگر برنامه افزودنی در خطمشی PrintingAPIExtensionsAllowlist
فهرست نشده باشد، از کاربر خواسته میشود کار چاپ را بپذیرد. قبل از کروم 120، این عملکرد قولی را برنمیگرداند.
پارامترها
- درخواست کنید
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: SubmitJobResponse) => void
- پاسخ
برمی گرداند
Promise< SubmitJobResponse >
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
رویدادها
onJobStatusChanged
chrome.printing.onJobStatusChanged.addListener(
callback: function,
)
زمانی که وضعیت کار تغییر میکند، رویداد اخراج میشود. این فقط برای مشاغل ایجاد شده توسط این افزونه اخراج می شود.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(jobId: string, status: JobStatus) => void
- job ID
رشته
- وضعیت
توضیحات
از chrome.printing
API برای ارسال کارهای چاپی به چاپگرهای نصب شده در Chromebook استفاده کنید.
مجوزها
printing
در دسترس بودن
آشکار
همه روشها و رویدادهای chrome.printing
از شما میخواهند مجوز "printing"
را در مانیفست افزونه اعلام کنید. به عنوان مثال:
{
"name": "My extension",
...
"permissions": [
"printing"
],
...
}
نمونه ها
مثالهای زیر استفاده از هر یک از روشها را در فضای نام چاپ نشان میدهند. این کد از یا بر اساس api-samples/printing در Extensions-Samps مخزن GitHub کپی شده است.
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() و 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()
subjectJob به سه چیز نیاز دارد.
- یک ساختار
ticket
که مشخص می کند از کدام قابلیت های چاپگر استفاده می شود. اگر کاربر نیاز به انتخاب از بین قابلیتهای موجود داشته باشد، میتوانید با استفاده ازgetPrinterInfo()
آنها را برای یک چاپگر خاص بازیابی کنید. - ساختار
SubmitJobRequest
، که چاپگر مورد استفاده و فایل یا تاریخ چاپ را مشخص می کند. این ساختار حاوی ارجاع به ساختارticket
است. - لکه ای از فایل یا داده برای چاپ.
فراخوانی submitJob()
یک کادر محاوره ای را راه اندازی می کند که از کاربر می خواهد چاپ را تأیید کند. از PrintingAPIExtensionsAllowlist
برای دور زدن تایید استفاده کنید.
این یک نسخه ساده شده از نمونه چاپ است. توجه داشته باشید که ticket
به ساختار SubmitJobRequest
متصل شده است (خط 8) و داده های چاپ شده به یک لکه (خط 10) تبدیل می شود. دریافت شناسه چاپگر (خط 1) در نمونه پیچیده تر از آنچه در اینجا نشان داده شده است.
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()
را فراخوانی کنید و به دنبال "display_name"
از "finishings/11"
بگردید.
"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
خواص
- قابلیت ها
شی اختیاری
قابلیت های چاپگر در فرمت CDD . ممکن است ملک گم شده باشد.
- وضعیت
وضعیت چاپگر
JobStatus
وضعیت کار چاپ
Enum
"در انتظار" "IN_PROGRESS" "شکست خورده" "لغو" "چاپ شده"
کار چاپ در سمت کروم دریافت شد اما هنوز پردازش نشده است.
کار چاپ برای چاپ ارسال می شود.
کار چاپ به دلیل برخی خطا قطع شد.
کار چاپ توسط کاربر یا از طریق API لغو شد.
کار چاپ بدون هیچ خطایی چاپ شد.
Printer
خواص
- توضیحات
رشته
توصیف انسان قابل خواندن چاپگر.
- شناسه
رشته
شناسه چاپگر؛ تضمین شده است که در بین چاپگرهای دستگاه منحصر به فرد است.
- پیش فرض است
بولی
پرچمی که نشان می دهد آیا چاپگر با قوانین DefaultPrinterSelection مطابقت دارد یا خیر. توجه داشته باشید که چندین چاپگر ممکن است علامت گذاری شوند.
- نام
رشته
نام چاپگر.
- اخیراًUsedRank
شماره اختیاری
مقداری که نشان می دهد چاپگر چقدر اخیر برای چاپ از Chrome استفاده شده است. هرچه این مقدار کمتر باشد چاپگر جدیدتر استفاده شده است. حداقل مقدار 0 است. مقدار از دست رفته نشان می دهد که چاپگر اخیراً استفاده نشده است. این مقدار تضمین شده است که در بین چاپگرها منحصر به فرد است.
- منبع
منبع چاپگر (کاربر یا خط مشی پیکربندی شده است).
- اوری
رشته
URI چاپگر. این می تواند توسط برنامه های افزودنی برای انتخاب چاپگر برای کاربر استفاده شود.
PrinterSource
منبع چاپگر
Enum
"کاربر" "سیاست"
چاپگر توسط کاربر اضافه شد.
چاپگر از طریق خط مشی اضافه شد.
PrinterStatus
وضعیت چاپگر
Enum
"DOOR_OPEN" "TRAY_MISSING" "OUT_OF_INK" "OUT_OF_PAPER" "OUTPUT_FULL" "PAPER_JAM" "GENERIC_ISSUE" "توقف شد" "دست نیافتنی" "EXPIRED_CERTIFICATE" "موجود"
درب پرینتر باز است. چاپگر همچنان کارهای چاپ را می پذیرد.
سینی چاپگر وجود ندارد. چاپگر همچنان کارهای چاپ را می پذیرد.
جوهر چاپگر تمام شده است. چاپگر همچنان کارهای چاپ را می پذیرد.
کاغذ چاپگر تمام شده است. چاپگر همچنان کارهای چاپ را می پذیرد.
ناحیه خروجی چاپگر (به عنوان مثال سینی) پر است. چاپگر همچنان کارهای چاپ را می پذیرد.
چاپگر دارای گیر کردن کاغذ است. چاپگر همچنان کارهای چاپ را می پذیرد.
برخی از مسائل عمومی چاپگر همچنان کارهای چاپ را می پذیرد.
چاپگر متوقف شده است و چاپ نمی شود اما همچنان کارهای چاپ را می پذیرد.
چاپگر قابل دسترسی نیست و کارهای چاپی را نمی پذیرد.
گواهی SSL منقضی شده است. چاپگر کارها را می پذیرد اما آنها شکست می خورند.
چاپگر موجود است.
SubmitJobRequest
خواص
- شغل
کار چاپی که باید ارسال شود. انواع محتوای پشتیبانی شده عبارتند از "application/pdf" و "image/png". Cloud Job Ticket نباید شامل فیلدهای
FitToPageTicketItem
،PageRangeTicketItem
وReverseOrderTicketItem
باشد زیرا برای چاپ بومی نامربوط هستند.VendorTicketItem
اختیاری است. تمام فیلدهای دیگر باید وجود داشته باشد.
SubmitJobResponse
خواص
- job ID
رشته اختیاری
شناسه کار چاپ ایجاد شده این یک شناسه منحصر به فرد در بین تمام کارهای چاپی روی دستگاه است. اگر وضعیت خوب نباشد jobId null خواهد بود.
- وضعیت
وضعیت درخواست
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,
callback?: function,
)
کار ارسال شده قبلی را لغو می کند.
پارامترها
- job ID
رشته
شناسه کار چاپ برای لغو. این باید همان شناسه دریافت شده در
SubmitJobResponse
باشد. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:() => void
برمی گرداند
قول<باطل>
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getJobStatus()
chrome.printing.getJobStatus(
jobId: string,
callback?: function,
)
وضعیت کار چاپ را برمیگرداند. اگر کار چاپ با jobId
داده شده وجود نداشته باشد، این تماس با خطای زمان اجرا ناموفق خواهد بود. jobId
: شناسه کار چاپ برای برگرداندن وضعیت. این باید همان شناسه دریافت شده در SubmitJobResponse
باشد.
پارامترها
- job ID
رشته
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(status: JobStatus) => void
- وضعیت
برمی گرداند
Promise< وضعیت شغلی >
Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getPrinterInfo()
chrome.printing.getPrinterInfo(
printerId: string,
callback?: function,
)
وضعیت و قابلیت های چاپگر را در قالب CDD برمی گرداند. اگر چاپگری با شناسه داده شده نصب نشود، این تماس با خطای زمان اجرا ناموفق خواهد بود.
پارامترها
- شناسه چاپگر
رشته
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: GetPrinterInfoResponse) => void
برمی گرداند
Promise< GetPrinterInfoResponse >
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getPrinters()
chrome.printing.getPrinters(
callback?: function,
)
لیست چاپگرهای موجود در دستگاه را برمی گرداند. این شامل چاپگرهای دستی، سازمانی و کشف شده میشود.
پارامترها
برمی گرداند
Promise< چاپگر []>
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
submitJob()
chrome.printing.submitJob(
request: SubmitJobRequest,
callback?: function,
)
کار را برای چاپ ارسال می کند. اگر برنامه افزودنی در خطمشی PrintingAPIExtensionsAllowlist
فهرست نشده باشد، از کاربر خواسته میشود کار چاپ را بپذیرد. قبل از کروم 120، این عملکرد قولی را برنمیگرداند.
پارامترها
- درخواست کنید
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: SubmitJobResponse) => void
- پاسخ
برمی گرداند
Promise< SubmitJobResponse >
Chrome 100+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
رویدادها
onJobStatusChanged
chrome.printing.onJobStatusChanged.addListener(
callback: function,
)
زمانی که وضعیت کار تغییر میکند، رویداد اخراج میشود. این فقط برای مشاغل ایجاد شده توسط این افزونه اخراج می شود.
پارامترها
- پاسخ به تماس
تابع
پارامتر
callback
به نظر می رسد:(jobId: string, status: JobStatus) => void
- job ID
رشته
- وضعیت
توضیحات
از chrome.printing
API برای ارسال کارهای چاپی به چاپگرهای نصب شده در Chromebook استفاده کنید.
مجوزها
printing
در دسترس بودن
آشکار
همه روشها و رویدادهای chrome.printing
از شما میخواهند مجوز "printing"
را در مانیفست افزونه اعلام کنید. به عنوان مثال:
{
"name": "My extension",
...
"permissions": [
"printing"
],
...
}
نمونه ها
مثالهای زیر استفاده از هر یک از روشها را در فضای نام چاپ نشان میدهند. این کد از یا بر اساس api-samples/printing در Extensions-Samps مخزن GitHub کپی شده است.
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() و 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()
subjectJob به سه چیز نیاز دارد.
- یک ساختار
ticket
که مشخص می کند از کدام قابلیت های چاپگر استفاده می شود. اگر کاربر نیاز به انتخاب از بین قابلیتهای موجود داشته باشد، میتوانید با استفاده ازgetPrinterInfo()
آنها را برای یک چاپگر خاص بازیابی کنید. - ساختار
SubmitJobRequest
، که چاپگر مورد استفاده و فایل یا تاریخ چاپ را مشخص می کند. این ساختار حاوی ارجاع به ساختارticket
است. - لکه ای از فایل یا داده برای چاپ.
فراخوانی submitJob()
یک کادر محاوره ای را راه اندازی می کند که از کاربر می خواهد چاپ را تأیید کند. از PrintingAPIExtensionsAllowlist
برای دور زدن تایید استفاده کنید.
این یک نسخه ساده شده از نمونه چاپ است. توجه کنید که ticket
به ساختار SubmitJobRequest
(خط 8) وصل شده است و داده های چاپ به یک حباب تبدیل می شوند (خط 10). دریافت شناسه چاپگر (خط 1) در نمونه پیچیده تر از آنچه در اینجا نشان داده شده است.
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()
تماس بگیرید و به دنبال "display_name"
از "finishings/11"
باشید.
"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
خواص
- قابلیت ها
شیء اختیاری
قابلیت چاپگر در قالب CDD . این ملک ممکن است از دست رفته باشد.
- وضعیت
وضعیت چاپگر.
JobStatus
وضعیت کار چاپ.
Enum
"در انتظار" "in_progress" "شکست خورد" "لغو شده" "چاپ شده"
کار چاپی از طرف Chrome دریافت می شود اما هنوز پردازش نشده است.
کار چاپ برای چاپ ارسال می شود.
کار چاپ به دلیل برخی خطا قطع شد.
کار چاپ توسط کاربر یا از طریق API لغو شد.
کار چاپی بدون هیچ گونه خطایی چاپ شد.
Printer
خواص
- توضیحات
رشته
توضیحات قابل خواندن انسانی از چاپگر.
- شناسه
رشته
شناسه چاپگر ؛ تضمین شده در بین چاپگرهای موجود در دستگاه بی نظیر است.
- isDefault
بولی
پرچمی که نشان می دهد چاپگر متناسب با قوانین پیش فرض چاپگر است یا خیر. توجه داشته باشید که چندین چاپگر را می توان پرچم گذاری کرد.
- نام
رشته
نام چاپگر.
- اخیراً استفاده شده است
شماره اختیاری
مقدار نشان می دهد که چگونه از چاپگر برای چاپ از Chrome استفاده شده است. هرچه مقدار پایین تر باشد ، از چاپگر جدیدتر استفاده شده است. حداقل مقدار 0 است. مقدار گمشده نشان می دهد که اخیراً از چاپگر استفاده نشده است. این مقدار تضمین می شود که در بین چاپگرها بی نظیر باشد.
- منبع
منبع چاپگر (کاربر یا خط مشی پیکربندی شده).
- اوری
رشته
چاپگر URI. این می تواند توسط برنامه های افزودنی برای انتخاب چاپگر برای کاربر استفاده شود.
PrinterSource
منبع چاپگر.
Enum
"کاربر" "سیاست"
چاپگر توسط کاربر اضافه شد.
چاپگر از طریق خط مشی اضافه شد.
PrinterStatus
وضعیت چاپگر.
Enum
"درب_پن" "Tray_missing" "out_of_ink" "out_of_paper" "output_full" "paper_jam" "generic_issue" "متوقف شد" "غیرقابل دستیابی" "منقضی شده_ certificate" "موجود"
درب چاپگر باز است. چاپگر هنوز مشاغل چاپی را می پذیرد.
سینی چاپگر از دست رفته است. چاپگر هنوز مشاغل چاپی را می پذیرد.
چاپگر از جوهر خارج است. چاپگر هنوز مشاغل چاپی را می پذیرد.
چاپگر خارج از کاغذ است. چاپگر هنوز مشاغل چاپی را می پذیرد.
منطقه خروجی چاپگر (به عنوان مثال سینی) پر است. چاپگر هنوز مشاغل چاپی را می پذیرد.
چاپگر دارای مربا کاغذی است. چاپگر هنوز مشاغل چاپی را می پذیرد.
برخی از مسئله عمومی. چاپگر هنوز مشاغل چاپی را می پذیرد.
چاپگر متوقف شده و چاپ نمی شود اما هنوز مشاغل چاپی را می پذیرد.
چاپگر غیرقابل دسترسی است و مشاغل چاپی را نمی پذیرد.
گواهی SSL منقضی شده است. چاپگر مشاغل را می پذیرد اما آنها شکست می خورند.
چاپگر در دسترس است.
SubmitJobRequest
خواص
- شغل
کار چاپی ارسال می شود. انواع محتوای پشتیبانی شده "برنامه/PDF" و "Image/PNG" هستند. بلیط کار ابر نباید شامل
FitToPageTicketItem
،PageRangeTicketItem
وReverseOrderTicketItem
باشد زیرا برای چاپ بومی بی ربط هستند.VendorTicketItem
اختیاری است. تمام زمینه های دیگر باید حضور داشته باشند.
SubmitJobResponse
خواص
- job ID
رشته اختیاری
شناسه کار چاپی ایجاد شده. این یک شناسه منحصر به فرد در بین کلیه کارهای چاپی موجود در دستگاه است. اگر وضعیت خوب نباشد ، 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,
callback?: function,
)
کار قبلاً ارسال شده را لغو می کند.
پارامترها
- job ID
رشته
شناسه کار چاپ برای لغو. این باید همان شناسه ای باشد که در یک
SubmitJobResponse
دریافت شده است. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:() => void
برمی گرداند
قول <void>
Chrome 100+وعده ها فقط برای مانیفست V3 و بعد از آن پشتیبانی می شوند ، سایر سیستم عامل ها نیاز به استفاده از تماس تلفنی دارند.
getJobStatus()
chrome.printing.getJobStatus(
jobId: string,
callback?: function,
)
وضعیت کار چاپ را برمی گرداند. در صورت وجود کار چاپی با jobId
داده شده ، این تماس با خطای زمان اجرا شکست می خورد. jobId
: شناسه کار چاپ برای بازگشت وضعیت. این باید همان شناسه ای باشد که در یک SubmitJobResponse
دریافت شده است.
پارامترها
- job ID
رشته
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(status: JobStatus) => void
- وضعیت
برمی گرداند
قول <jobstatus>
وعده ها فقط برای مانیفست V3 و بعد از آن پشتیبانی می شوند ، سایر سیستم عامل ها نیاز به استفاده از تماس تلفنی دارند.
getPrinterInfo()
chrome.printing.getPrinterInfo(
printerId: string,
callback?: function,
)
وضعیت و قابلیت های چاپگر را با فرمت CDD برمی گرداند. در صورت نصب چاپگر با شناسه داده شده ، این تماس با خطای زمان اجرا شکست می خورد.
پارامترها
- چاپی
رشته
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: GetPrinterInfoResponse) => void
- پاسخ
برمی گرداند
- Chrome 100+
وعده ها فقط برای مانیفست V3 و بعد از آن پشتیبانی می شوند ، سایر سیستم عامل ها نیاز به استفاده از تماس تلفنی دارند.
getPrinters()
chrome.printing.getPrinters(
callback?: function,
)
لیست چاپگرهای موجود را در دستگاه برمی گرداند. این شامل اضافه شده دستی ، شرکت و چاپگرهای کشف شده است.
پارامترها
برمی گرداند
وعده < چاپگر []>
Chrome 100+وعده ها فقط برای مانیفست V3 و بعد از آن پشتیبانی می شوند ، سایر سیستم عامل ها نیاز به استفاده از تماس تلفنی دارند.
submitJob()
chrome.printing.submitJob(
request: SubmitJobRequest,
callback?: function,
)
کار را برای چاپ ارسال می کند. اگر برنامه افزودنی در خط مشی PrintingAPIExtensionsAllowlist
ذکر نشده باشد ، از کاربر خواسته می شود کار چاپ را بپذیرد. قبل از Chrome 120 ، این عملکرد وعده ای برنمی گرداند.
پارامترها
- درخواست کنید
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(response: SubmitJobResponse) => void
- پاسخ
برمی گرداند
وعده <submitjobresponse>
Chrome 100+وعده ها فقط برای مانیفست V3 و بعد از آن پشتیبانی می شوند ، سایر سیستم عامل ها نیاز به استفاده از تماس تلفنی دارند.
رویدادها
onJobStatusChanged
chrome.printing.onJobStatusChanged.addListener(
callback: function,
)
هنگام تغییر وضعیت کار ، رویداد اخراج شد. این فقط برای مشاغل ایجاد شده توسط این پسوند اخراج می شود.