Dela via


Hantera Device-Managed ytor

Viktig

Den moderna utskriftsplattformen är Windows bästa sätt att kommunicera med skrivare. Vi rekommenderar att du använder Microsofts IPP-drivrutin för inkorgsklass tillsammans med Print Support Apps (PSA) för att anpassa utskriftsupplevelsen i Windows 10 och 11 för enhetsutveckling av skrivare.

Mer information finns i designguiden för Print-supportappen.

När Unidrv återger utskriftssidans bilder använder den GDI-hanterade ritytor. Alla bilder återges som bitmappar. För enheter med funktioner som inte kan utnyttjas av det här scenariot, till exempel möjligheten att rita vektorer, kan du tillhandahålla anpassat drivrutinsstöd för en enhetshanterad rityta. För att stödja en enhetshanterad yta måste du tillhandahålla ett återgivnings-plugin-program som implementerar följande:

Hooking-funktionerna kan inte anropa GDI:s Eng-prefixerade stödtjänster när de ritar på en enhetshanterad yta. De kan dock skapa en tillfällig bitmappsyta och sedan skicka den ytans handtag till Eng-prefixerade ritfunktioner (se Rendering av ett utskriftsjobb).

Metoden IPrintOemUni::D riverDMS anropas varje gång ett utskriftsjobb ska renderas, så återgivnings-plugin-programmet kan ange typen av återgivningsyta (GDI-hanterad eller enhetshanterad) för varje jobb. Om du baserar ytvalet på ett valbart alternativ i användargränssnittet måste du också ange ett insticksprogram för användargränssnittet.

Rita text på en yta Device-Managed

Återgivnings-plugin-programmet måste koppla ut Unidrvs DrvTextOut- funktion (tillsammans med alla andra grafik-DDI-ritfunktioner). Att skapa text för en enhetshanterad yta innebär interaktion mellan följande fyra funktioner:

Stegen för att visa text på en enhetshanterad yta är följande:

  1. GDI anropar Unidrv:s funktion DrvTextOut.

  2. Unidrv anropar återgivnings-plugin-programmets DrvTextOut hooking-funktion.

  3. Funktionen hooking skickar kommandon till enheten för att ange textens pensel, rotation och klippområde.

  4. Hooking-funktionen anropar Unidrvs IPrintOemDriverUni::DrvUniTextOut-metod, som använder nedladdade teckensnitt för att mata ut texten. Den här metoden hanterar även avklipp baserade på glyfer.

  5. Om IPrintOemDriverUni::D rvUniTextOut inte kan använda ett nedladdningsbart teckensnitt (eftersom teckensnittet inte är tillgängligt eller roteras), anropar det återgivnings-plugin-programmets IPrintOemUni::TextOutAsBitmap metod, som ritar texten som en bitmapp.

  6. När IPrintOemDriverUni::DrvUniTextOut returneras måste funktionen DrvTextOut hooking rita understrykningar och genomstrykningar, baserat på de rektanglar som anges av DrvTextOut funktionen prclExtra parameter, med vektorkommandon (om det stöds).