Udostępnij przez


StartDocPrinter, funkcja

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:

  1. Aby rozpocząć zadanie drukowania, wywołaj metodę StartDocPrinter.
  2. Aby rozpocząć każdą stronę, wywołaj metodę StartPagePrinter.
  3. Aby zapisać dane na stronie, wywołaj funkcję WritePrinter.
  4. Aby zakończyć każdą stronę, wywołaj funkcję EndPagePrinter.
  5. Powtórz 2, 3 i 4 dla jak największej liczby stron w razie potrzeby.
  6. 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
Winspool.h (w tym Windows.h)
Biblioteka
Winspool.lib
DLL
Winspool.drv
Nazwy Unicode i ANSI
StartDocPrinterW (Unicode) i StartDocPrinterA (ANSI)

Zobacz także

AddJob

DOC_INFO_1

DOC_INFO_2

EndDocPrinter

EndPagePrinter

OtwórzDrukarkę

drukowanie

funkcje interfejsu API buforu wydruku

StartPagePrinter

WritePrinter