Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja StartDocPrinter powiadamia bufor wydruku, że dokument ma być buforowany do drukowania.
Składnia
DWORD StartDocPrinter(
_In_ HANDLE hPrinter,
_In_ DWORD Level,
_In_ LPBYTE pDocInfo
);
Parametry
-
hPrinter [in]
-
Uchwyt drukarki. Użyj funkcji OpenPrinter lub AddPrinter , aby pobrać uchwyt drukarki.
-
Poziom [in]
-
Wersja struktury, do której wskazuje pDocInfo . Ta wartość musi być 1.
-
pDocInfo [in]
-
Wskaźnik do struktury DOC_INFO_1 opisujący dokument do wydrukowania.
Wartość zwracana
Jeśli funkcja powiedzie się, zwracana wartość zidentyfikuje zadanie drukowania.
Jeśli funkcja zakończy się niepowodzeniem, zwracana wartość to zero.
Uwagi
Uwaga / Notatka
Jest to funkcja blokująca lub synchroniczna i może nie zwracać natychmiast. Szybkość zwracania tej funkcji zależy od czynników czasu wykonywania, takich jak stan sieci, konfiguracja serwera wydruku i czynniki implementacji sterownika drukarki, które są trudne do przewidzenia podczas pisania aplikacji. Wywołanie tej funkcji z wątku, który zarządza interakcją z interfejsem użytkownika, może sprawić, że aplikacja będzie wydawała się nie odpowiadać.
Typowa sekwencja zadania drukowania jest następująca:
- Aby rozpocząć zadanie drukowania, wywołaj metodę StartDocPrinter.
- Aby rozpocząć każdą stronę, wywołaj metodę StartPagePrinter.
- Aby zapisać dane na stronie, wywołaj funkcję WritePrinter.
- Aby zakończyć każdą stronę, wywołaj funkcję EndPagePrinter.
- Powtórz 2, 3 i 4 dla jak największej liczby stron w razie potrzeby.
- Aby zakończyć zadanie drukowania, wywołaj metodę EndDocPrinter.
Należy pamiętać, że wywoływanie funkcji StartPagePrinter i EndPagePrinter może nie być konieczne, na przykład jeśli typ danych drukowania zawiera informacje o stronie.
Gdy strona w buforowanych plikach przekracza około 350 MB, może ona nie drukować i nie wysyłać komunikatu o błędzie. Na przykład może to wystąpić podczas drukowania dużych plików EMF. Limit rozmiaru strony zależy od wielu czynników, w tym ilości dostępnej pamięci wirtualnej, ilości pamięci przydzielonej przez wywoływanie procesów i ilości fragmentacji w stercie procesu.
Przykłady
Przykładowy program korzystający z tej funkcji można znaleźć w temacie How To: Print Using the GDI Print API (Instrukcje: drukowanie przy użyciu interfejsu API drukowania GDI).
Wymagania
| Wymaganie | Wartość |
|---|---|
| Minimalny obsługiwany klient |
Windows 2000 Professional [tylko aplikacje klasyczne] |
| Minimalny obsługiwany serwer |
Windows 2000 Server [tylko aplikacje klasyczne] |
| Nagłówek |
|
| Biblioteka |
|
| DLL |
|
| Nazwy Unicode i ANSI |
StartDocPrinterW (Unicode) i StartDocPrinterA (ANSI) |