Sdílet prostřednictvím


Podpora ovladačů pro přizpůsobené uživatelské rozhraní

Důležitý

Moderní tisková platforma je upřednostňovaná pro komunikaci s tiskárnami ve Windows. Doporučujeme použít ovladač třídy doručené pošty IPP od Microsoftu spolu s tiskovými podpůrnými aplikacemi (PSA) k přizpůsobení prostředí tisku ve Windows 10 a 11 pro vývoj zařízení tiskárny.

Další informace najdete v průvodci návrhem aplikace Podpora tisku.

Model ovladače tisku v4 byl vyvinut s integrovanou podporou přizpůsobení uživatelského rozhraní pomocí rozšíření tiskárny nebo aplikací pro zařízení UPW pro tisk.

Další aspekty návrhu přizpůsobení uživatelského rozhraní jsou popsány v následujících částech.

Všechny ovladače tisku v4 pracují s předvolbami tisku, ale je důležité udržovat hranice mezi konfigurací a vrstvami uživatelského rozhraní, aby se zajistila maximální konzistence ve všech scénářích. Vzhledem k tomu, že nemusí existovat žádná rozšíření tiskárny nebo aplikace pro zařízení UPW nebo byly nainstalovány automaticky, ovladače tisku v4 musí zajistit funkčnost ovladačů tisku bez přizpůsobeného prostředí předvoleb tiskárny. Konkrétně to znamená, že podpora PrintTicket a PrintCapabilities by měla být úplná a komplexní v implementaci omezení GPD/PPD + JavaScript v ovladači.

Některé ověřování omezení v rozšíření tiskárny nebo aplikaci zařízení UPW může být užitečné z hlediska zajištění vysoce informativního interaktivního prostředí, ale nemělo by nahradit ověření ovladače, které je považováno za autoritativní.

Rozšíření tiskáren a aplikace zařízení UWP by měly používat metodu IPrinterQueue::SendBidiQuery místo přímého síťového volání na síťový prostředek. Pokud je potřeba kontaktovat síťový prostředek, mělo by se to udělat v jiném vlákně nebo asynchronně, aby se předešlo zablokování uživatelského rozhraní. Data by se měla ukládat do mezipaměti po načtení, aby se budoucí volání urychlila.

Oznámení o tiskárně

Oznámení o tiskárně jsou řízena Bidi a souborem DriverEvent XML. Aby bylo možné lépe spravovat životnost baterie a minimalizovat přerušení, budou se však oznámení zobrazovat pouze v případě, že uživatel tiskne.

Zatímco předvolby tisku jsou závislé na kontextu aplikace, která tiskne, oznámení tiskárny nejsou závislá na kontextu. Následující vývojový diagram vysvětluje rozhodovací strom, který systém Windows používá k určení chování oznámení tiskárny. Pokud jsou k dispozici, mají aplikace pro zařízení UPW přednost před rozšířeními tiskáren.

vývojový diagram chování oznámení tiskárny.

Je důležité si uvědomit, že pokud se pokusíte použít vlastní uživatelské rozhraní k zobrazení oznámení v prostředí Windows 8 voláním GetForegroundWindow, okno oznámení se nezobrazí. Důvodem je, že operační systém se pokusí přiřadit vyšší prioritu vláknu, které vytvoří okno popředí pomocí GetForegroundWindow, a to není povoleno pro dialogy v prostředí Windows 8. Pokud chcete k zobrazení oznámení v prostředí Windows 8 použít vlastní uživatelské rozhraní, musíte to udělat voláním GetDesktopWindow.

Vytváření událostí ovladačů. Ovladače tisku V4 používají soubor XML DriverEvent k popisu dotazů Bidi a triggerů, které by měly způsobit vyvolání události ovladače. A je důležité si uvědomit, že události ovladačů podporují pouze standardní řetězce. Další informace o standardních řetězcích naleznete v tématu Výchozí řetězce prostředků AsyncUI. V aktuální implementaci to způsobí vytvoření a publikování zprávy AsyncUIBalloon pomocí protokolu MS-PAN. Tato implementace se může v budoucnu změnit, aby se zlepšil výkon, proto je důležité vyvinout ovladač tisku v4 tak, aby nebyl závislý na základním protokolu.

Následující diagram znázorňuje využití protokolu.

využívání protokolu v souvislosti s událostmi ovladače.

Ukázka XML události ovladače . Následující fragment kódu XML určuje jednu událost ovladače. Událost zkontroluje, jestli žlutá barva je menší než 21% z celkové kapacity podle hlášení Bidi. Pokud k tomu dojde, vytvoří se zpráva AsyncUIBalloon s řetězcem, na který odkazuje resourceID 132. Jinými slovy, zpráva by říkala, že "'%1' dochází toner/inkoust.", kde Zdroj 2002 ("Žlutá") by byl nahrazen za %1.

<de:DriverEvents xmlns:de="https://schemas.microsoft.com/windows/2011/08/printing/driverevents" schemaVersion="4.0">
  <DriverEvent eventId="{A04CF0FC-1CEB-4C62-B967-6F0AE5C5F81E}">
    <Transport>USB</Transport>
    <Transport>WSD</Transport>
    <Query>\Printer.Consumables</Query>
    <Trigger result="\Printer.Consumables.Yellow:Level" comparison="LessThan" value="21">
      <StandardMessage resourceId="132">
        <StringParameter index="1" resourceId="2002" />
      </StandardMessage>
    </Trigger>
  </DriverEvent>
</de:DriverEvents>

schéma událostí ovladače. Schéma DriverEvent je k dispozici v sadě Windows Driver Kit jako \Include\um\PrinterDriverEvents.xsd.

ověření XML události ovladače. Pokud v manifestu ovladače správně popíšete xml DriverEvent, soubor XML se automaticky ověří nástrojem INFGate.

AsyncUIBalloon

Výchozí prostředky souboru prostředků řetězce AsyncUI

IPrinterQueue::SendBidiQuery

MS-PAN protokol