Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De Direct2Dprint control is een nieuw onderdeel in de Direct2D-module in Windows 8. Met dit onderdeel kunnen Direct2D-apps hun Direct2D-tekenoproepen (wat betreft statuswijzigingen en rending primitieven) opnieuw gebruiken om afdrukresultaten te leveren die vergelijkbaar zijn met wat u op het scherm ziet.
De ID2D1PrintControl interface vertegenwoordigt een virtuele afdruktaak: u kunt een Direct2D afdrukbesturingselement maken om een nieuwe afdruktaak te starten, Direct2D-inhoud door te geven voor elke pagina die u wilt afdrukken en vervolgens het afdrukbesturingselement sluiten om een afdruktaak te voltooien.
Notitie
Een afdrukbesturing wordt toegewezen aan één en precies één afdruktaak en u kunt het niet opnieuw gebruiken.
De Direct2D afdrukbesturingselement converteert en optimaliseert de doorgegeven direct2D-inhoud voor het afdruksubsysteem, dat werkt met de echte printers om de werkelijke afdruk te leveren. Alle afdrukspecifieke details zijn verborgen voor Direct2D-apps, wat betekent dat Direct2D-apps kunnen afdrukken zonder te weten op welke apparaten ze tekenen of hoe de tekeningen worden vertaald naar afdrukken.
Als u wilt afdrukken met Direct2D-, moet u één Direct2D-opdrachtlijst voorbereiden voor elke pagina die u wilt afdrukken en die opdrachtlijst doorgeven aan het besturingselement Direct2D-afdruk. Als u die Direct2D-opdrachtlijst wilt voorbereiden, maakt en stelt u een opdrachtlijst in als het tekendoel van de huidige apparaatcontext en tekent u vervolgens naar die apparaatcontext, precies alsof u tekent op een bitmapdoel voor weergave. Zie apparaten en apparaatcontexten voor meer informatie over apparaten en doelen.
Het diagram hier illustreert de interactie tussen de app, apparaatcontext, bitmapdoel, opdrachtlijstdoel en het afdrukbeheer.
Notitie
De onderdelen van Windows Print Sub-System en Printer zijn grijs omdat ze volledig zijn verborgen voor Direct2D--apps.
Voorbeeld
Het volledige proces voor het afdrukken van Direct2D-inhoud omvat de volgende stappen.
- Maak een afdrukbeheer om een afdruktaak te starten.
- Voeg een pagina toe aan het afdrukbeheer door een opdrachtlijst door te geven.
- Herhaal stap 2 voor elke pagina in de rest van het document
- Sluit het afdrukbeheer om de afdruktaak te voltooien.
Hier volgt een codevoorbeeld met het proces.
ID2D1CommandList* commandList;
// Skip command list creation and drawing for simplicity.
// Set print control properties.
D2D1_PRINT_CONTROL_PROPERTIES printControlProperties;
printControlProperties.rasterDPI = 150.0f; // Use the default rasterization DPI for all unsupported Direct2D commands
// or options.
printControlProperties.fontSubset = D2D1_PRINT_FONT_SUBSET_MODE_DEFAULT; // Using the default font subset strategy.
printControlProperties.colorSpace = D2D1_COLOR_SPACE_SRGB; // Color space for vector graphics in Direct2D print control.
// Create a Direct2D Print Control to initiate a print job.
ID2D1PrintControl* d2dPrintControl;
d2dDevice->CreatePrintControl(
wicFactory,
documentTarget,
printControlProperties,
&d2dPrintControl
);
// Add Direct2D drawing commands encapsulated in a command list.
// You can add in more pages by calling this API multiple times.
d2dPrintControl->AddPage(commandList);
// Close the print control to complete a print job.
d2dPrintControl->Close();
Verwante onderwerpen
de prestaties van Direct2D-toepassingen verbeteren en afdrukken