chroom.afdrukken

Beschrijving

Gebruik de chrome.printing API om afdruktaken te verzenden naar printers die op Chromebook zijn geïnstalleerd.

Machtigingen

printing

Beschikbaarheid

AlleenChrome 81+ ChromeOS

Manifest

Voor alle chrome.printing methoden en -gebeurtenissen moet u de toestemming "printing" opgeven in het extensiemanifest . Bijvoorbeeld:

{
  "name": "My extension",
  ...
  "permissions": [
    "printing"
  ],
  ...
}

Voorbeelden

De onderstaande voorbeelden demonstreren het gebruik van elk van de methoden in de afdruknaamruimte. Deze code wordt gekopieerd van of gebaseerd op de api-samples/printing in de extensions-samples GitHub-opslagplaats.

annulerenJob()

In dit voorbeeld wordt de handler onJobStatusChanged gebruikt om een ​​knop 'annuleren' te verbergen wanneer de jobStatus niet PENDING of IN_PROGRESS is. Houd er rekening mee dat op sommige netwerken of wanneer een Chromebook rechtstreeks op de printer is aangesloten, deze statussen mogelijk te snel voorbijgaan, waardoor de knop Annuleren lang genoeg zichtbaar is om te kunnen worden gebeld. Dit is een sterk vereenvoudigd afdrukvoorbeeld.

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() en getPrinterInfo()

Voor deze functies wordt één voorbeeld gebruikt, omdat voor het verkrijgen van printerinformatie een printer-ID vereist is, die wordt opgehaald door getPrinters() aan te roepen. In dit voorbeeld worden de naam en beschrijving van de standaardprinter in de console geregistreerd. Dit is een vereenvoudigde versie van het afdrukvoorbeeld.

​​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()

De methode submitJob() vereist drie dingen.

  • Een ticket die specificeert welke mogelijkheden van de printer moeten worden gebruikt. Als de gebruiker een keuze moet maken uit de beschikbare mogelijkheden, kunt u deze voor een specifieke printer ophalen met behulp van getPrinterInfo() .
  • Een SubmitJobRequest structuur, die de te gebruiken printer specificeert en het bestand of de datum die moet worden afgedrukt. Deze structuur bevat een verwijzing naar de ticket .
  • Een klodder van het bestand of de gegevens die moeten worden afgedrukt.

Het aanroepen van submitJob() activeert een dialoogvenster waarin de gebruiker wordt gevraagd het afdrukken te bevestigen. Gebruik de PrintingAPIExtensionsAllowlist om de bevestiging te omzeilen.

Dit is een vereenvoudigde versie van het afdrukvoorbeeld. Merk op dat het ticket is gekoppeld aan de SubmitJobRequest -structuur (regel 8) en dat de af te drukken gegevens worden geconverteerd naar een blob (regel 10). Het verkrijgen van de ID van de printer (regel 1) is in het voorbeeld ingewikkelder dan hier wordt weergegeven.

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);
  }
});

Afdrukken op rol

Dit voorbeeld laat zien hoe u een printerticket kunt maken voor continu (of rol) afdrukken, wat vaak wordt gebruikt bij het afdrukken van bonnen. Het submitJobRequest object voor het afdrukken op rollen is hetzelfde als het object dat wordt weergegeven in het voorbeeld submitJob() .

Als u de standaardwaarde voor papiersnijden wilt wijzigen, gebruikt u de sleutel vendor_ticket_item . (De standaard varieert van printer tot printer.) Indien opgenomen, moet deze sleutel een array zijn met één lid: een object waarvan id 'finishings' is. De waarde kan 'trim' zijn voor printers die de rol aan het einde van het afdrukken afsnijden, of 'none' voor printers waarbij de afdruktaak moet worden afgescheurd.

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}
  }
};

Sommige printers ondersteunen de optie "finishings" niet. Om te bepalen of uw printer dit doet, roept u getPrinterInfo() aan en zoekt u naar een "display_name" van "finishings/11" .

"vendor_capability": [
  {
    "display_name": "finishings/11",
    "id": "finishings/11",
    "type": "TYPED_VALUE",
    "typed_value_cap": {
      "value_type": "BOOLEAN"
    }
  },
  ...
]

De waarden in de media_size sleutel van een ticket zijn specifiek voor elke printer. Om een ​​geschikt formaat te selecteren, roept u getPrinterInfo() op. De geretourneerde GetPrinterResponse bevat een reeks ondersteunde mediaformaten op "media_size"."option" . Kies een optie waarvan de waarde "is_continuous_feed" waar is. Gebruik de hoogte- en breedtewaarden voor het ticket.

"media_size": {
  "option": [
  {
    "custom_display_name": "",
    "is_continuous_feed": true,
    "max_height_microns": 2000000,
    "min_height_microns": 25400,
    "width_microns": 50800
  },
  ...
  ]
}

Soorten

GetPrinterInfoResponse

Eigenschappen

  • mogelijkheden

    object optioneel

    Printermogelijkheden in CDD-formaat . Mogelijk ontbreekt het pand.

  • De status van de printer.

JobStatus

Status van de afdruktaak.

Enum

"IN BEHANDELING"
De afdruktaak is ontvangen aan de Chrome-kant, maar is nog niet verwerkt.

"IN_PROGRESS"
De afdruktaak wordt verzonden om af te drukken.

"mislukt"
De afdruktaak is onderbroken vanwege een fout.

"GEANNULEERD"
Afdruktaak is geannuleerd door de gebruiker of via API.

"GEDRUKT"
De afdruktaak is zonder fouten afgedrukt.

Printer

Eigenschappen

  • beschrijving

    snaar

    De voor mensen leesbare beschrijving van de printer.

  • Identiteitskaart

    snaar

    De identificatie van de printer; gegarandeerd uniek onder de printers op het apparaat.

  • is standaard

    Booleaans

    De vlag die aangeeft of de printer voldoet aan de DefaultPrinterSelection -regels. Houd er rekening mee dat er meerdere printers kunnen worden gemarkeerd.

  • naam

    snaar

    De naam van de drukker.

  • recentGebruikteRank

    nummer optioneel

    De waarde die aangeeft hoe recent de printer is gebruikt voor afdrukken vanuit Chrome. Hoe lager de waarde, hoe recenter de printer is gebruikt. De minimumwaarde is 0. Een ontbrekende waarde geeft aan dat de printer onlangs niet is gebruikt. Deze waarde is gegarandeerd uniek onder printers.

  • De bron van de printer (gebruiker of beleid geconfigureerd).

  • uri

    snaar

    De printer-URI. Dit kan door extensies worden gebruikt om de printer voor de gebruiker te kiezen.

PrinterSource

De bron van de printer.

Enum

"GEBRUIKER"
Printer is toegevoegd door gebruiker.

"BELEID"
Printer is toegevoegd via beleid.

PrinterStatus

De status van de printer.

Enum

"DOOR_OPEN"
De deur van de printer staat open. Printer accepteert nog steeds afdruktaken.

"TRAY_MISSING"
De lade van de printer ontbreekt. Printer accepteert nog steeds afdruktaken.

"OUT_OF_INK"
De printer heeft geen inkt meer. Printer accepteert nog steeds afdruktaken.

"OUT_OF_PAPER"
Er is geen papier meer in de printer. Printer accepteert nog steeds afdruktaken.

"OUTPUT_FULL"
Het uitvoergebied van de printer (bijvoorbeeld lade) is vol. Printer accepteert nog steeds afdruktaken.

"PAPER_JAM"
Er is een papierstoring in de printer. Printer accepteert nog steeds afdruktaken.

"GENERIC_ISSUE"
Een algemeen probleem. Printer accepteert nog steeds afdruktaken.

"GESTOPT"
De printer is gestopt en drukt niet af, maar accepteert nog steeds afdruktaken.

"ONBEREIKBAAR"
De printer is onbereikbaar en accepteert geen afdruktaken.

"EXPIRED_CERTIFICAAT"
Het SSL-certificaat is verlopen. De printer accepteert taken, maar deze mislukken.

"BESCHIKBAAR"
De printer is beschikbaar.

SubmitJobRequest

Eigenschappen

  • functie

    De afdruktaak die moet worden verzonden. Ondersteunde inhoudstypen zijn "application/pdf" en "image/png". Het Cloud Job Ticket mag geen velden FitToPageTicketItem , PageRangeTicketItem en ReverseOrderTicketItem bevatten, omdat deze niet relevant zijn voor native afdrukken. VendorTicketItem is optioneel. Alle andere velden moeten aanwezig zijn.

SubmitJobResponse

Eigenschappen

  • baanId

    tekenreeks optioneel

    De ID van de gemaakte afdruktaak. Dit is een unieke identificatie voor alle afdruktaken op het apparaat. Als de status niet OK is, is jobId null.

  • De status van het verzoek.

SubmitJobStatus

De status van submitJob aanvraag.

Enum

"OK"
Verzonden afdrukopdrachtverzoek wordt geaccepteerd.

"USER_REJECTED"
Het verzonden afdruktaakverzoek wordt door de gebruiker afgewezen.

Eigenschappen

MAX_GET_PRINTER_INFO_CALLS_PER_MINUTE

Het maximale aantal keren dat getPrinterInfo per minuut kan worden gebeld.

Waarde

20

MAX_SUBMIT_JOB_CALLS_PER_MINUTE

Het maximale aantal keren dat submitJob per minuut kan worden aangeroepen.

Waarde

40

Methoden

cancelJob()

Belofte
chrome.printing.cancelJob(
  jobId: string,
  callback?: function,
)

Annuleert een eerder ingediende taak.

Parameters

  • baanId

    snaar

    De ID van de afdruktaak die moet worden geannuleerd. Dit moet dezelfde ID zijn die wordt ontvangen in een SubmitJobResponse .

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retouren

  • Beloof <nietig>

    Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getJobStatus()

BeloofChrome 135+
chrome.printing.getJobStatus(
  jobId: string,
  callback?: function,
)

Retourneert de status van de afdruktaak. Deze aanroep mislukt met een runtimefout als de afdruktaak met de opgegeven jobId niet bestaat. jobId : De id van de afdruktaak waarvan de status moet worden geretourneerd. Dit moet dezelfde ID zijn die wordt ontvangen in een SubmitJobResponse .

Parameters

  • baanId

    snaar

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (status: JobStatus) => void

Retouren

  • Belofte< TaakStatus >

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getPrinterInfo()

Belofte
chrome.printing.getPrinterInfo(
  printerId: string,
  callback?: function,
)

Retourneert de status en mogelijkheden van de printer in CDD-indeling . Deze aanroep mislukt met een runtimefout als er geen printers met een opgegeven ID zijn geïnstalleerd.

Parameters

Retouren

  • Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getPrinters()

Belofte
chrome.printing.getPrinters(
  callback?: function,
)

Retourneert de lijst met beschikbare printers op het apparaat. Dit omvat handmatig toegevoegde, zakelijke en ontdekte printers.

Parameters

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (printers: Printer[]) => void

Retouren

  • Beloof < Printer []>

    Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

submitJob()

Belofte
chrome.printing.submitJob(
  request: SubmitJobRequest,
  callback?: function,
)

Verzendt de taak voor afdrukken. Als de extensie niet wordt vermeld in het PrintingAPIExtensionsAllowlist -beleid, wordt de gebruiker gevraagd de afdruktaak te accepteren. Vóór Chrome 120 leverde deze functie geen belofte op.

Parameters

Retouren

  • Beloof < SubmitJobResponse >

    Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

Evenementen

onJobStatusChanged

chrome.printing.onJobStatusChanged.addListener(
  callback: function,
)

Gebeurtenis geactiveerd wanneer de status van de taak wordt gewijzigd. Deze wordt alleen ontslagen voor de banen die door deze uitbreiding worden gecreëerd.

Parameters

  • terugbellen

    functie

    De callback parameter ziet er als volgt uit:

    (jobId: string, status: JobStatus) => void

,

Beschrijving

Gebruik de chrome.printing API om afdruktaken te verzenden naar printers die op Chromebook zijn geïnstalleerd.

Machtigingen

printing

Beschikbaarheid

AlleenChrome 81+ ChromeOS

Manifest

Voor alle chrome.printing methoden en -gebeurtenissen moet u de toestemming "printing" opgeven in het extensiemanifest . Bijvoorbeeld:

{
  "name": "My extension",
  ...
  "permissions": [
    "printing"
  ],
  ...
}

Voorbeelden

De onderstaande voorbeelden demonstreren het gebruik van elk van de methoden in de afdruknaamruimte. Deze code wordt gekopieerd van of gebaseerd op de api-samples/printing in de extensions-samples GitHub-opslagplaats.

annulerenJob()

In dit voorbeeld wordt de handler onJobStatusChanged gebruikt om een ​​knop 'annuleren' te verbergen wanneer de jobStatus niet PENDING of IN_PROGRESS is. Houd er rekening mee dat op sommige netwerken of wanneer een Chromebook rechtstreeks op de printer is aangesloten, deze statussen mogelijk te snel voorbijgaan, waardoor de knop Annuleren lang genoeg zichtbaar is om te kunnen worden gebeld. Dit is een sterk vereenvoudigd afdrukvoorbeeld.

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() en getPrinterInfo()

Voor deze functies wordt één voorbeeld gebruikt, omdat voor het verkrijgen van printerinformatie een printer-ID vereist is, die wordt opgehaald door getPrinters() aan te roepen. In dit voorbeeld worden de naam en beschrijving van de standaardprinter in de console geregistreerd. Dit is een vereenvoudigde versie van het afdrukvoorbeeld.

​​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()

De methode submitJob() vereist drie dingen.

  • Een ticket die specificeert welke mogelijkheden van de printer moeten worden gebruikt. Als de gebruiker een keuze moet maken uit de beschikbare mogelijkheden, kunt u deze voor een specifieke printer ophalen met behulp van getPrinterInfo() .
  • Een SubmitJobRequest structuur, die de te gebruiken printer specificeert en het bestand of de datum die moet worden afgedrukt. Deze structuur bevat een verwijzing naar de ticket .
  • Een klodder van het bestand of de gegevens die moeten worden afgedrukt.

Het aanroepen van submitJob() activeert een dialoogvenster waarin de gebruiker wordt gevraagd het afdrukken te bevestigen. Gebruik de PrintingAPIExtensionsAllowlist om de bevestiging te omzeilen.

Dit is een vereenvoudigde versie van het afdrukvoorbeeld. Merk op dat het ticket is gekoppeld aan de SubmitJobRequest -structuur (regel 8) en dat de af te drukken gegevens worden geconverteerd naar een blob (regel 10). Het verkrijgen van de ID van de printer (regel 1) is in het voorbeeld ingewikkelder dan hier wordt weergegeven.

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);
  }
});

Afdrukken op rol

Dit voorbeeld laat zien hoe u een printerticket kunt maken voor continu (of rol) afdrukken, wat vaak wordt gebruikt bij het afdrukken van bonnen. Het submitJobRequest object voor het afdrukken op rollen is hetzelfde als het object dat wordt weergegeven in het voorbeeld submitJob() .

Als u de standaardwaarde voor papiersnijden wilt wijzigen, gebruikt u de sleutel vendor_ticket_item . (De standaard varieert van printer tot printer.) Indien opgenomen, moet deze sleutel een array zijn met één lid: een object waarvan id 'finishings' is. De waarde kan 'trim' zijn voor printers die de rol aan het einde van het afdrukken afsnijden, of 'none' voor printers waarbij de afdruktaak moet worden afgescheurd.

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}
  }
};

Sommige printers ondersteunen de optie "finishings" niet. Om te bepalen of uw printer dit doet, roept u getPrinterInfo() aan en zoekt u naar een "display_name" van "finishings/11" .

"vendor_capability": [
  {
    "display_name": "finishings/11",
    "id": "finishings/11",
    "type": "TYPED_VALUE",
    "typed_value_cap": {
      "value_type": "BOOLEAN"
    }
  },
  ...
]

De waarden in de media_size sleutel van een ticket zijn specifiek voor elke printer. Om een ​​geschikt formaat te selecteren, roept u getPrinterInfo() op. De geretourneerde GetPrinterResponse bevat een reeks ondersteunde mediaformaten op "media_size"."option" . Kies een optie waarvan de waarde "is_continuous_feed" waar is. Gebruik de hoogte- en breedtewaarden voor het ticket.

"media_size": {
  "option": [
  {
    "custom_display_name": "",
    "is_continuous_feed": true,
    "max_height_microns": 2000000,
    "min_height_microns": 25400,
    "width_microns": 50800
  },
  ...
  ]
}

Soorten

GetPrinterInfoResponse

Eigenschappen

  • mogelijkheden

    object optioneel

    Printermogelijkheden in CDD-formaat . Mogelijk ontbreekt het pand.

  • De status van de printer.

JobStatus

Status van de afdruktaak.

Enum

"IN BEHANDELING"
De afdruktaak is ontvangen aan de Chrome-kant, maar is nog niet verwerkt.

"IN_PROGRESS"
De afdruktaak wordt verzonden om af te drukken.

"mislukt"
De afdruktaak is onderbroken vanwege een fout.

"GEANNULEERD"
Afdruktaak is geannuleerd door de gebruiker of via API.

"GEDRUKT"
De afdruktaak is zonder fouten afgedrukt.

Printer

Eigenschappen

  • beschrijving

    snaar

    De voor mensen leesbare beschrijving van de printer.

  • Identiteitskaart

    snaar

    De identificatie van de printer; gegarandeerd uniek onder de printers op het apparaat.

  • is standaard

    Booleaans

    De vlag die aangeeft of de printer voldoet aan de DefaultPrinterSelection -regels. Houd er rekening mee dat er meerdere printers kunnen worden gemarkeerd.

  • naam

    snaar

    De naam van de drukker.

  • recentGebruikteRank

    nummer optioneel

    De waarde die aangeeft hoe recent de printer is gebruikt voor afdrukken vanuit Chrome. Hoe lager de waarde, hoe recenter de printer is gebruikt. De minimumwaarde is 0. Een ontbrekende waarde geeft aan dat de printer onlangs niet is gebruikt. Deze waarde is gegarandeerd uniek onder printers.

  • De bron van de printer (gebruiker of beleid geconfigureerd).

  • uri

    snaar

    De printer-URI. Dit kan door extensies worden gebruikt om de printer voor de gebruiker te kiezen.

PrinterSource

De bron van de printer.

Enum

"GEBRUIKER"
Printer is toegevoegd door gebruiker.

"BELEID"
Printer is toegevoegd via beleid.

PrinterStatus

De status van de printer.

Enum

"DOOR_OPEN"
De deur van de printer staat open. Printer accepteert nog steeds afdruktaken.

"TRAY_MISSING"
De lade van de printer ontbreekt. Printer accepteert nog steeds afdruktaken.

"OUT_OF_INK"
De printer heeft geen inkt meer. Printer accepteert nog steeds afdruktaken.

"OUT_OF_PAPER"
Er is geen papier meer in de printer. Printer accepteert nog steeds afdruktaken.

"OUTPUT_FULL"
Het uitvoergebied van de printer (bijvoorbeeld lade) is vol. Printer accepteert nog steeds afdruktaken.

"PAPER_JAM"
Er is een papierstoring in de printer. Printer accepteert nog steeds afdruktaken.

"GENERIC_ISSUE"
Een algemeen probleem. Printer accepteert nog steeds afdruktaken.

"GESTOPT"
De printer is gestopt en drukt niet af, maar accepteert nog steeds afdruktaken.

"ONBEREIKBAAR"
De printer is onbereikbaar en accepteert geen afdruktaken.

"EXPIRED_CERTIFICAAT"
Het SSL-certificaat is verlopen. De printer accepteert taken, maar deze mislukken.

"BESCHIKBAAR"
De printer is beschikbaar.

SubmitJobRequest

Eigenschappen

  • functie

    De afdruktaak die moet worden verzonden. Ondersteunde inhoudstypen zijn "application/pdf" en "image/png". Het Cloud Job Ticket mag geen velden FitToPageTicketItem , PageRangeTicketItem en ReverseOrderTicketItem bevatten, omdat deze niet relevant zijn voor native afdrukken. VendorTicketItem is optioneel. Alle andere velden moeten aanwezig zijn.

SubmitJobResponse

Eigenschappen

  • baanId

    tekenreeks optioneel

    De ID van de gemaakte afdruktaak. Dit is een unieke identificatie voor alle afdruktaken op het apparaat. Als de status niet OK is, is jobId null.

  • De status van het verzoek.

SubmitJobStatus

De status van submitJob aanvraag.

Enum

"OK"
Verzonden afdrukopdrachtverzoek wordt geaccepteerd.

"USER_REJECTED"
Het verzonden afdruktaakverzoek wordt door de gebruiker afgewezen.

Eigenschappen

MAX_GET_PRINTER_INFO_CALLS_PER_MINUTE

Het maximale aantal keren dat getPrinterInfo per minuut kan worden gebeld.

Waarde

20

MAX_SUBMIT_JOB_CALLS_PER_MINUTE

Het maximale aantal keren dat submitJob per minuut kan worden aangeroepen.

Waarde

40

Methoden

cancelJob()

Belofte
chrome.printing.cancelJob(
  jobId: string,
  callback?: function,
)

Annuleert een eerder ingediende taak.

Parameters

  • baanId

    snaar

    De ID van de afdruktaak die moet worden geannuleerd. Dit moet dezelfde ID zijn die wordt ontvangen in een SubmitJobResponse .

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retouren

  • Beloof <nietig>

    Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getJobStatus()

BeloofChrome 135+
chrome.printing.getJobStatus(
  jobId: string,
  callback?: function,
)

Retourneert de status van de afdruktaak. Deze aanroep mislukt met een runtimefout als de afdruktaak met de opgegeven jobId niet bestaat. jobId : De id van de afdruktaak waarvan de status moet worden geretourneerd. Dit moet dezelfde ID zijn die wordt ontvangen in een SubmitJobResponse .

Parameters

  • baanId

    snaar

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (status: JobStatus) => void

Retouren

  • Belofte< TaakStatus >

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getPrinterInfo()

Belofte
chrome.printing.getPrinterInfo(
  printerId: string,
  callback?: function,
)

Retourneert de status en mogelijkheden van de printer in CDD-indeling . Deze aanroep mislukt met een runtimefout als er geen printers met een opgegeven ID zijn geïnstalleerd.

Parameters

Retouren

  • Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getPrinters()

Belofte
chrome.printing.getPrinters(
  callback?: function,
)

Retourneert de lijst met beschikbare printers op het apparaat. Dit omvat handmatig toegevoegde, zakelijke en ontdekte printers.

Parameters

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (printers: Printer[]) => void

Retouren

  • Beloof < Printer []>

    Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

submitJob()

Belofte
chrome.printing.submitJob(
  request: SubmitJobRequest,
  callback?: function,
)

Verzendt de taak voor afdrukken. Als de extensie niet wordt vermeld in het PrintingAPIExtensionsAllowlist -beleid, wordt de gebruiker gevraagd de afdruktaak te accepteren. Vóór Chrome 120 leverde deze functie geen belofte op.

Parameters

Retouren

  • Beloof < SubmitJobResponse >

    Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

Evenementen

onJobStatusChanged

chrome.printing.onJobStatusChanged.addListener(
  callback: function,
)

Gebeurtenis geactiveerd wanneer de status van de taak wordt gewijzigd. Deze wordt alleen ontslagen voor de banen die door deze uitbreiding worden gecreëerd.

Parameters

  • terugbellen

    functie

    De callback parameter ziet er als volgt uit:

    (jobId: string, status: JobStatus) => void

,

Beschrijving

Gebruik de chrome.printing API om afdruktaken te verzenden naar printers die op Chromebook zijn geïnstalleerd.

Machtigingen

printing

Beschikbaarheid

AlleenChrome 81+ ChromeOS

Manifest

Voor alle chrome.printing methoden en -gebeurtenissen moet u de toestemming "printing" opgeven in het extensiemanifest . Bijvoorbeeld:

{
  "name": "My extension",
  ...
  "permissions": [
    "printing"
  ],
  ...
}

Voorbeelden

De onderstaande voorbeelden demonstreren het gebruik van elk van de methoden in de afdruknaamruimte. Deze code wordt gekopieerd van of gebaseerd op de api-samples/printing in de extensions-samples GitHub-opslagplaats.

annulerenJob()

In dit voorbeeld wordt de handler onJobStatusChanged gebruikt om een ​​knop 'annuleren' te verbergen wanneer de jobStatus niet PENDING of IN_PROGRESS is. Houd er rekening mee dat op sommige netwerken of wanneer een Chromebook rechtstreeks op de printer is aangesloten, deze statussen mogelijk te snel voorbijgaan, zodat de knop Annuleren lang genoeg zichtbaar is om te kunnen worden gebeld. Dit is een sterk vereenvoudigd afdrukvoorbeeld.

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() en getPrinterInfo()

Voor deze functies wordt één voorbeeld gebruikt, omdat voor het verkrijgen van printerinformatie een printer-ID vereist is, die wordt opgehaald door getPrinters() aan te roepen. In dit voorbeeld worden de naam en beschrijving van de standaardprinter in de console geregistreerd. Dit is een vereenvoudigde versie van het afdrukvoorbeeld.

​​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()

De methode submitJob() vereist drie dingen.

  • Een ticket die specificeert welke mogelijkheden van de printer moeten worden gebruikt. Als de gebruiker een keuze moet maken uit de beschikbare mogelijkheden, kunt u deze voor een specifieke printer ophalen met behulp van getPrinterInfo() .
  • Een SubmitJobRequest structuur, die de te gebruiken printer specificeert en het bestand of de datum die moet worden afgedrukt. Deze structuur bevat een verwijzing naar de ticket .
  • Een klodder van het bestand of de gegevens die moeten worden afgedrukt.

Het aanroepen van submitJob() activeert een dialoogvenster waarin de gebruiker wordt gevraagd het afdrukken te bevestigen. Gebruik de PrintingAPIExtensionsAllowlist om de bevestiging te omzeilen.

Dit is een vereenvoudigde versie van het afdrukvoorbeeld. Merk op dat het ticket is gekoppeld aan de SubmitJobRequest -structuur (regel 8) en dat de af te drukken gegevens worden geconverteerd naar een blob (regel 10). Het verkrijgen van de ID van de printer (regel 1) is in het voorbeeld ingewikkelder dan hier wordt weergegeven.

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);
  }
});

Afdrukken op rol

Dit voorbeeld laat zien hoe u een printerticket kunt maken voor continu (of rol) afdrukken, wat vaak wordt gebruikt bij het afdrukken van bonnen. Het submitJobRequest object voor het afdrukken op rollen is hetzelfde als het object dat wordt weergegeven in het voorbeeld submitJob() .

Als u de standaardwaarde voor papiersnijden wilt wijzigen, gebruikt u de sleutel vendor_ticket_item . (De standaard varieert van printer tot printer.) Indien opgenomen, moet deze sleutel een array zijn met één lid: een object waarvan id 'finishings' is. De waarde kan 'trim' zijn voor printers die de rol aan het einde van het afdrukken afsnijden, of 'none' voor printers waarbij de afdruktaak moet worden afgescheurd.

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}
  }
};

Sommige printers ondersteunen de optie "finishings" niet. Om te bepalen of uw printer dit doet, roept u getPrinterInfo() aan en zoekt u naar een "display_name" van "finishings/11" .

"vendor_capability": [
  {
    "display_name": "finishings/11",
    "id": "finishings/11",
    "type": "TYPED_VALUE",
    "typed_value_cap": {
      "value_type": "BOOLEAN"
    }
  },
  ...
]

De waarden in de media_size sleutel van een ticket zijn specifiek voor elke printer. Om een ​​geschikt formaat te selecteren, roept u getPrinterInfo() op. De geretourneerde GetPrinterResponse bevat een reeks ondersteunde mediaformaten op "media_size"."option" . Kies een optie waarvan de waarde "is_continuous_feed" waar is. Gebruik de hoogte- en breedtewaarden voor het ticket.

"media_size": {
  "option": [
  {
    "custom_display_name": "",
    "is_continuous_feed": true,
    "max_height_microns": 2000000,
    "min_height_microns": 25400,
    "width_microns": 50800
  },
  ...
  ]
}

Soorten

GetPrinterInfoResponse

Eigenschappen

  • mogelijkheden

    object optioneel

    Printermogelijkheden in CDD-formaat . Mogelijk ontbreekt het pand.

  • De status van de printer.

JobStatus

Status van de afdruktaak.

Enum

"IN BEHANDELING"
De afdruktaak is ontvangen aan de Chrome-kant, maar is nog niet verwerkt.

"IN_PROGRESS"
De afdruktaak wordt verzonden om af te drukken.

"mislukt"
De afdruktaak is onderbroken vanwege een fout.

"GEANNULEERD"
Afdruktaak is geannuleerd door de gebruiker of via API.

"GEDRUKT"
De afdruktaak is zonder fouten afgedrukt.

Printer

Eigenschappen

  • beschrijving

    snaar

    De voor mensen leesbare beschrijving van de printer.

  • Identiteitskaart

    snaar

    De identificatie van de printer; gegarandeerd uniek onder de printers op het apparaat.

  • is standaard

    Booleaans

    De vlag die aangeeft of de printer voldoet aan de DefaultPrinterSelection -regels. Houd er rekening mee dat er meerdere printers kunnen worden gemarkeerd.

  • naam

    snaar

    De naam van de drukker.

  • recentGebruikteRank

    nummer optioneel

    De waarde die aangeeft hoe recent de printer is gebruikt voor afdrukken vanuit Chrome. Hoe lager de waarde, hoe recenter de printer is gebruikt. De minimumwaarde is 0. Een ontbrekende waarde geeft aan dat de printer onlangs niet is gebruikt. Deze waarde is gegarandeerd uniek onder printers.

  • De bron van de printer (gebruiker of beleid geconfigureerd).

  • uri

    snaar

    De printer-URI. Dit kan door extensies worden gebruikt om de printer voor de gebruiker te kiezen.

PrinterSource

De bron van de printer.

Enum

"GEBRUIKER"
Printer is toegevoegd door gebruiker.

"BELEID"
Printer is toegevoegd via beleid.

PrinterStatus

De status van de printer.

Enum

"DOOR_OPEN"
De deur van de printer staat open. Printer accepteert nog steeds afdruktaken.

"TRAY_MISSING"
De lade van de printer ontbreekt. Printer accepteert nog steeds afdruktaken.

"OUT_OF_INK"
De printer heeft geen inkt meer. Printer accepteert nog steeds afdruktaken.

"OUT_OF_PAPER"
Er is geen papier meer in de printer. Printer accepteert nog steeds afdruktaken.

"OUTPUT_FULL"
Het uitvoergebied van de printer (bijvoorbeeld lade) is vol. Printer accepteert nog steeds afdruktaken.

"PAPER_JAM"
Er is een papierstoring in de printer. Printer accepteert nog steeds afdruktaken.

"GENERIC_ISSUE"
Een algemeen probleem. Printer accepteert nog steeds afdruktaken.

"GESTOPT"
De printer is gestopt en drukt niet af, maar accepteert nog steeds afdruktaken.

"ONBEREIKBAAR"
De printer is onbereikbaar en accepteert geen afdruktaken.

"EXPIRED_CERTIFICAAT"
Het SSL-certificaat is verlopen. De printer accepteert taken, maar deze mislukken.

"BESCHIKBAAR"
De printer is beschikbaar.

SubmitJobRequest

Eigenschappen

  • functie

    De afdruktaak die moet worden verzonden. Ondersteunde inhoudstypen zijn "application/pdf" en "image/png". Het Cloud Job Ticket mag geen velden FitToPageTicketItem , PageRangeTicketItem en ReverseOrderTicketItem bevatten, omdat deze niet relevant zijn voor native afdrukken. VendorTicketItem is optioneel. Alle andere velden moeten aanwezig zijn.

SubmitJobResponse

Eigenschappen

  • baanId

    tekenreeks optioneel

    De ID van de gemaakte afdruktaak. Dit is een unieke identificatie voor alle afdruktaken op het apparaat. Als de status niet OK is, is jobId null.

  • De status van het verzoek.

SubmitJobStatus

De status van submitJob aanvraag.

Enum

"OK"
Verzonden afdrukopdrachtverzoek wordt geaccepteerd.

"USER_REJECTED"
Het verzonden afdruktaakverzoek wordt door de gebruiker afgewezen.

Eigenschappen

MAX_GET_PRINTER_INFO_CALLS_PER_MINUTE

Het maximale aantal keren dat getPrinterInfo per minuut kan worden gebeld.

Waarde

20

MAX_SUBMIT_JOB_CALLS_PER_MINUTE

Het maximale aantal keren dat submitJob per minuut kan worden aangeroepen.

Waarde

40

Methoden

cancelJob()

Belofte
chrome.printing.cancelJob(
  jobId: string,
  callback?: function,
)

Annuleert een eerder ingediende taak.

Parameters

  • baanId

    snaar

    De ID van de afdruktaak die moet worden geannuleerd. Dit moet dezelfde ID zijn die wordt ontvangen in een SubmitJobResponse .

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retouren

  • Beloof <nietig>

    Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getJobStatus()

BeloofChrome 135+
chrome.printing.getJobStatus(
  jobId: string,
  callback?: function,
)

Retourneert de status van de afdruktaak. Deze aanroep mislukt met een runtimefout als de afdruktaak met de opgegeven jobId niet bestaat. jobId : De id van de afdruktaak waarvan de status moet worden geretourneerd. Dit moet dezelfde ID zijn die wordt ontvangen in een SubmitJobResponse .

Parameters

  • baanId

    snaar

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (status: JobStatus) => void

Retouren

  • Belofte< TaakStatus >

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getPrinterInfo()

Belofte
chrome.printing.getPrinterInfo(
  printerId: string,
  callback?: function,
)

Retourneert de status en mogelijkheden van de printer in CDD-indeling . Deze aanroep mislukt met een runtimefout als er geen printers met een opgegeven ID zijn geïnstalleerd.

Parameters

Retouren

  • Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getPrinters()

Belofte
chrome.printing.getPrinters(
  callback?: function,
)

Retourneert de lijst met beschikbare printers op het apparaat. Dit omvat handmatig toegevoegde, zakelijke en ontdekte printers.

Parameters

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (printers: Printer[]) => void

Retouren

  • Beloof < Printer []>

    Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

submitJob()

Belofte
chrome.printing.submitJob(
  request: SubmitJobRequest,
  callback?: function,
)

Verzendt de taak voor afdrukken. Als de extensie niet wordt vermeld in het PrintingAPIExtensionsAllowlist -beleid, wordt de gebruiker gevraagd de afdruktaak te accepteren. Vóór Chrome 120 leverde deze functie geen belofte op.

Parameters

Retouren

  • Beloof < SubmitJobResponse >

    Chroom 100+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

Evenementen

onJobStatusChanged

chrome.printing.onJobStatusChanged.addListener(
  callback: function,
)

Gebeurtenis geactiveerd wanneer de status van de taak wordt gewijzigd. Deze wordt alleen ontslagen voor de banen die door deze uitbreiding worden gecreëerd.

Parameters

  • terugbellen

    functie

    De callback parameter ziet er als volgt uit:

    (jobId: string, status: JobStatus) => void

,

Beschrijving

Gebruik de chrome.printing API om afdruktaken te verzenden naar printers die op Chromebook zijn geïnstalleerd.

Machtigingen

printing

Beschikbaarheid

AlleenChrome 81+ ChromeOS

Manifest

Voor alle chrome.printing methoden en -gebeurtenissen moet u de toestemming "printing" opgeven in het extensiemanifest . Bijvoorbeeld:

{
  "name": "My extension",
  ...
  "permissions": [
    "printing"
  ],
  ...
}

Voorbeelden

De onderstaande voorbeelden demonstreren het gebruik van elk van de methoden in de afdruknaamruimte. Deze code wordt gekopieerd van of gebaseerd op de api-samples/printing in de extensions-samples GitHub-opslagplaats.

annulerenJob()

In dit voorbeeld wordt de handler onJobStatusChanged gebruikt om een ​​knop 'annuleren' te verbergen wanneer de jobStatus niet PENDING of IN_PROGRESS is. Houd er rekening mee dat op sommige netwerken of wanneer een Chromebook rechtstreeks op de printer is aangesloten, deze statussen mogelijk te snel voorbijgaan, waardoor de knop Annuleren lang genoeg zichtbaar is om te kunnen worden gebeld. Dit is een sterk vereenvoudigd afdrukvoorbeeld.

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() en getPrinterInfo()

Voor deze functies wordt één voorbeeld gebruikt, omdat voor het verkrijgen van printerinformatie een printer-ID vereist is, die wordt opgehaald door getPrinters() aan te roepen. In dit voorbeeld worden de naam en beschrijving van de standaardprinter in de console geregistreerd. Dit is een vereenvoudigde versie van het afdrukvoorbeeld.

​​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()

De methode submitJob() vereist drie dingen.

  • Een ticket die aangeeft welke mogelijkheden van de printer moeten worden gebruikt. Als de gebruiker moet selecteren uit beschikbare mogelijkheden, kunt u deze ophalen voor een specifieke printer met getPrinterInfo() .
  • Een SubmitJobRequest -structuur, die de te gebruiken printer aangeeft en het bestand of datum om af te drukken. Deze structuur bevat een verwijzing naar de ticket .
  • Een blob van het bestand of gegevens om af te drukken.

Oproeping submitJob() activeert een dialoogvenster met de gebruiker om het afdrukken te bevestigen. Gebruik de PrintingAPIExtensionsAllowlist om de bevestiging te omzeilen.

Dit is een vereenvoudigde versie van het printvoorbeeld. Merk op dat het ticket is gekoppeld aan de SubmitJobRequest -structuur (regel 8) en dat de te afdrukken gegevens worden omgezet in een blob (regel 10). Het verkrijgen van de ID van de printer (regel 1) is ingewikkelder in het monster dan hier wordt getoond.

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);
  }
});

Rol afdrukken

Dit voorbeeld laat zien hoe je een printerticket kunt bouwen voor continu (of rol) afdrukken, dat vaak wordt gebruikt met ontvangstafdrukken. Het submitJobRequest -object voor roll -afdrukken is hetzelfde als dat getoond voor het voorbeeld submitJob() .

Als u de standaardwaarde voor het snijden van papier moet wijzigen, gebruikt u de sleutel vendor_ticket_item . (De standaardinstelling varieert van printer tot printer.) Wanneer opgenomen, moet deze sleutel een array zijn met één lid: een object waarvan id 'finishings' is. De waarde kan 'trim' zijn voor printers die de rol aan het einde van het afdrukken snijden of 'none' voor printers die vereisen dat de afdruktaak wordt afgescheurd.

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}
  }
};

Sommige printers ondersteunen de optie "finishings" niet. Om te bepalen of uw printer dat doet, belt u getPrinterInfo() en zoek u naar een "display_name" van "finishings/11" .

"vendor_capability": [
  {
    "display_name": "finishings/11",
    "id": "finishings/11",
    "type": "TYPED_VALUE",
    "typed_value_cap": {
      "value_type": "BOOLEAN"
    }
  },
  ...
]

De waarden in de media_size -toets van een ticket zijn specifiek voor elke printer. Om een ​​geschikte maat te selecteren, belt getPrinterInfo() . De geretourneerde GetPrinterResponse bevat een reeks ondersteunde mediafroottes op "media_size"."option" . Kies een optie waarvan de waarde "is_continuous_feed" waar is. Gebruik zijn hoogte- en breedtewaarden voor het ticket.

"media_size": {
  "option": [
  {
    "custom_display_name": "",
    "is_continuous_feed": true,
    "max_height_microns": 2000000,
    "min_height_microns": 25400,
    "width_microns": 50800
  },
  ...
  ]
}

Soorten

GetPrinterInfoResponse

Eigenschappen

  • mogelijkheden

    Object optioneel

    Printermogelijkheden in CDD -formaat . Het onroerend goed kan ontbreken.

  • De status van de printer.

JobStatus

Status van de afdruktaak.

Opsommen

"IN BEHANDELING"
Afdruktaak wordt ontvangen aan Chrome -kant, maar is nog niet verwerkt.

"In_progress"
Afdruktaak wordt verzonden voor afdrukken.

"Mislukt"
De afdruktaak werd onderbroken vanwege enige fout.

"GEANNULEERD"
Afdruktaak is geannuleerd door de gebruiker of via API.

"Gedrukt"
Afdruktaak werd zonder fouten afgedrukt.

Printer

Eigenschappen

  • beschrijving

    snaar

    De mens-leesbare beschrijving van de printer.

  • Identiteitskaart

    snaar

    De identificatie van de printer; Gegarandeerd uniek onder printers op het apparaat.

  • isdefault

    Booleaans

    De vlag die laat zien of de printer past bij standaardprintersElectieregels . Merk op dat verschillende printers kunnen worden gemarkeerd.

  • naam

    snaar

    De naam van de printer.

  • onlangs gebruikte Rank

    Nummer optioneel

    De waarde die laat zien hoe recent de printer werd gebruikt voor het afdrukken van Chrome. Hoe lager de waarde is, hoe recenter de printer werd gebruikt. De minimumwaarde is 0. Ontbrekende waarde geeft aan dat de printer recent niet is gebruikt. Deze waarde is gegarandeerd uniek onder printers.

  • De bron van de printer (geconfigureerd gebruiker of beleid).

  • Uri

    snaar

    De printer uri. Dit kan worden gebruikt door extensies om de printer voor de gebruiker te kiezen.

PrinterSource

De bron van de printer.

Opsommen

"GEBRUIKER"
Printer is toegevoegd door de gebruiker.

"BELEID"
Printer is toegevoegd via beleid.

PrinterStatus

De status van de printer.

Opsommen

"Deur_open"
De deur van de printer is open. Printer accepteert nog steeds afdruktaken.

"Tray_missing"
Het dienblad van de printer ontbreekt. Printer accepteert nog steeds afdruktaken.

"Out_of_ink"
De printer is uit inkt. Printer accepteert nog steeds afdruktaken.

"Out_of_paper"
De printer is uit papier. Printer accepteert nog steeds afdruktaken.

"Output_full"
Het uitgangsgebied van de printer (bijv. Lade) is vol. Printer accepteert nog steeds afdruktaken.

"Paper_jam"
De printer heeft een papieren jam. Printer accepteert nog steeds afdruktaken.

"Generic_issue"
Een generiek probleem. Printer accepteert nog steeds afdruktaken.

"Gestopt"
De printer wordt gestopt en print niet, maar accepteert nog steeds printtaken.

"Onbereikbaar"
De printer is onbereikbaar en accepteert geen taken van print.

"Verlopen_certificaat"
Het SSL -certificaat is verlopen. Printer accepteert banen, maar ze falen.

"BESCHIKBAAR"
De printer is beschikbaar.

SubmitJobRequest

Eigenschappen

  • functie

    De afdruktaak die moet worden ingediend. Ondersteunde inhoudstypen zijn "Application/PDF" en "Image/PNG". Het cloud -taakticket mag FitToPageTicketItem , PageRangeTicketItem en ReverseOrderTicketItem Fields niet omvatten, omdat ze niet relevant zijn voor native printen. VendorTicketItem is optioneel. Alle andere velden moeten aanwezig zijn.

SubmitJobResponse

Eigenschappen

  • Jobid

    String optioneel

    De ID van gemaakte printtaak. Dit is een unieke identificatie tussen alle gedrukte taken op het apparaat. Als de status niet OK is, is JobId nietig.

  • De status van het verzoek.

SubmitJobStatus

De status van het verzoek van submitJob .

Opsommen

"OK"
Verzonden afdrukaanvraag wordt geaccepteerd.

"User_rejected"
Verzonden afdrukaanvraag wordt afgewezen door de gebruiker.

Eigenschappen

MAX_GET_PRINTER_INFO_CALLS_PER_MINUTE

Het maximale aantal keren dat getPrinterInfo , kan per minuut worden genoemd.

Waarde

20

MAX_SUBMIT_JOB_CALLS_PER_MINUTE

Het maximale aantal keren dat submitJob per minuut kan worden genoemd.

Waarde

40

Methoden

cancelJob()

Belofte
chrome.printing.cancelJob(
  jobId: string,
  callback?: function,
)

Annulerings eerder ingediende taak.

Parameters

  • Jobid

    snaar

    De ID van de afdruktaak om te annuleren. Dit zou dezelfde ID moeten zijn die wordt ontvangen in een SubmitJobResponse .

  • callback

    functie optioneel

    De callback -parameter ziet eruit als:

    () => void

Terugkeer

  • Belofte <void>

    Chrome 100+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

getJobStatus()

Beloof Chrome 135+
chrome.printing.getJobStatus(
  jobId: string,
  callback?: function,
)

Retourneert de status van de afdruktaak. Deze oproep mislukt met een runtime -fout als de afdruktaak bij de gegeven jobId niet bestaat. jobId : de ID van de afdruktaak om de status van te retourneren. Dit zou dezelfde ID moeten zijn die wordt ontvangen in een SubmitJobResponse .

Parameters

  • Jobid

    snaar

  • callback

    functie optioneel

    De callback -parameter ziet eruit als:

    (status: JobStatus) => void

Terugkeer

  • Belofte <jobstatus>

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

getPrinterInfo()

Belofte
chrome.printing.getPrinterInfo(
  printerId: string,
  callback?: function,
)

Retourneert de status en mogelijkheden van de printer in CDD -indeling . Deze oproep mislukt met een runtime -fout als er geen printers met een gegeven ID zijn geïnstalleerd.

Parameters

Terugkeer

  • Chrome 100+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

getPrinters()

Belofte
chrome.printing.getPrinters(
  callback?: function,
)

Retourneert de lijst met beschikbare printers op het apparaat. Dit omvat handmatig toegevoegd, onderneming en ontdekte printers.

Parameters

  • callback

    functie optioneel

    De callback -parameter ziet eruit als:

    (printers: Printer[]) => void

Terugkeer

  • Belofte < printer []>

    Chrome 100+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

submitJob()

Belofte
chrome.printing.submitJob(
  request: SubmitJobRequest,
  callback?: function,
)

Dient de taak voor om af te drukken. Als de extensie niet wordt vermeld in het beleid PrintingAPIExtensionsAllowlist , wordt de gebruiker gevraagd om de afdruktaak te accepteren. Vóór Chrome 120 heeft deze functie geen belofte geretourneerd.

Parameters

Terugkeer

  • Chrome 100+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

Evenementen

onJobStatusChanged

chrome.printing.onJobStatusChanged.addListener(
  callback: function,
)

Evenement ontslagen wanneer de status van de taak wordt gewijzigd. Dit wordt alleen ontslagen voor de banen die door deze extensie zijn gecreëerd.

Parameters

  • callback

    functie

    De callback -parameter ziet eruit als:

    (jobId: string, status: JobStatus) => void