Freigeben über


Unterstützung für Pseudo-Vector-Grafiken

Wichtig

Es wird empfohlen, den IPP-Klassentreiber von Microsoft zusammen mit Druckunterstützungs-Apps (PSA) zu verwenden, um die Druckoberfläche in Windows 10 und 11 für die Entwicklung von Druckergeräten anzupassen.

Weitere Informationen finden Sie im Leitfaden zum Erstellen von Druckunterstützungs-Apps.

Geräte, die keine echten Vektorgrafiken unterstützen, können die Unterstützung nutzen, die Unidrv für Pseudovektorgrafiken bereitstellt. Wenn Sie dieses Feature verwenden, lädt Unidrv einfarbige schwarze Rechtecke und horizontale und vertikale Linien direkt auf ein Nichtvektorgrafikgerät herunter, wodurch der Aufwand beim Rendern dieser Figuren auf einer Rasteroberfläche reduziert wird. Dadurch wird auch die Größe der Ausgabedaten reduziert, was den Druckerdurchsatz für Geräte verbessern kann, die Rasterdaten nicht effizient verarbeiten.

Um von diesem Feature zu profitieren, muss ein Minidriver für ein Nichtvektorgrafikgerät nur den Befehl CmdRectBlackFill unterstützen. Diese Funktion ist deaktiviert, wenn die Druckoptimierungsfunktion auf der Registerkarte Erweitert der Eigenschaftenseiten des Druckers deaktiviert ist.

Das Pseudovektorgrafikfeature fängt Aufrufe von DrvBitBlt, DrvStrokePath und DrvLineTo ab, um zu bestimmen, ob ein durchgehendes schwarzes Rechteck oder eine vertikale oder horizontale Linie gezeichnet werden soll. Wenn Unidrv die zu zeichnende Figur als gültiges Rechteck erkennt (eines, das schwarz ist, keine komplexe Beschneidung aufweist und keinen ROP mit den aktuellen Zielbits verwendet), wird sie in einem Rechteckarray gespeichert, anstatt auf der Oberfläche gezeichnet zu werden.

Der schwierigste Aspekt des Pseudovektorgrafikfeatures besteht darin, Probleme mit der Z-Reihenfolge zu vermeiden, die durch Objekte verursacht werden, die über zuvor gezeichneten Objekten gezeichnet werden müssen. Die Objekte oben müssen möglicherweise einen Teil eines schwarzen Rechtecks löschen oder überschreiben. Wenn das schwarze Rechteck bereits auf das Gerät heruntergeladen wurde, wird ein später auf der Systemoberfläche gezeichnetes Objekt möglicherweise nicht ordnungsgemäß gezeichnet.

Die Lösung für dieses Problem besteht darin, ein gültiges Rechteck vorübergehend zu speichern, anstatt es sofort auf der Oberfläche zu zeichnen. Wenn ein neues Objekt auf der Oberfläche gezeichnet werden soll, überprüft Unidrv es, um festzustellen, ob sich das Objekt mit einem schwarzen Rechteck überlappt. Wenn ja, wird der überlappende Teil des schwarzen Rechtecks zuerst auf der Oberfläche gezeichnet, bevor das neue Objekt gezeichnet wird, wodurch die richtige Z-Reihenfolge beibehalten wird. Beim ersten Zeichnen des Rechtecks wird auch die Möglichkeit berücksichtigt, dass dem neuen Objekt, das gezeichnet werden soll, möglicherweise ein ROP zugeordnet ist, einschließlich eines, das mit dem Ziel interagiert.

Darüber hinaus ist es möglich, dass das zu zeichnende neue Objekt komplexe Beschneidung enthält, sodass die resultierende Abbildung kein Rechteck mehr ist. Nach Abschluss des Band- oder Seitenrenderings können alle verbleibenden schwarzen Rechtecke direkt auf das Gerät heruntergeladen werden, ohne dass Probleme mit der Z-Reihenfolge auftreten. Unidrv verwaltet eine Liste von bis zu 256 Rechtecken pro Band und verkettet nach Möglichkeit BitBlt-Rechtecke.

Probleme mit Pseudovektorgrafiken

Die Funktion für Pseudovektorgrafiken kann die Z-Reihenfolge in bestimmten Situationen ändern, insbesondere wenn Text direkt auf das Gerät heruntergeladen wird und nachfolgende Objekte mit komplexem Clipping mit diesem Text interagieren müssen.