Sdílet prostřednictvím


WritePrinter – funkce

Funkce WritePrinter upozorní zařazování tisku na zápis dat do zadané tiskárny.

Poznámka:

WritePrinter podporuje pouze tisk GDI a nesmí se používat pro tisk ve formátu XPS. Pokud vaše tisková úloha používá cestu k tisku XPS nebo OpenXPS, použijte rozhraní XPS Print API. Odesílání tiskových úloh XPS nebo OpenXPS do zařazování pomocí WritePrinteru není podporováno a může vést k nedeterminovaným výsledkům.

Syntaxe

BOOL WritePrinter(
  _In_  HANDLE  hPrinter,
  _In_  LPVOID  pBuf,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcWritten
);

Parametry

hPrinter [in]

Popisovač tiskárny. K načtení úchytu tiskárny použijte funkci OpenPrinter nebo AddPrinter .

pBuf [in]

Ukazatel na pole bajtů obsahujících data, která by měla být zapsána do tiskárny.

cbBuf [in]

Velikost pole v bajtech.

PcWritten [out]

Ukazatel na hodnotu, která přijímá počet bajtů dat, která byla zapsána do tiskárny.

Návratová hodnota

Pokud je funkce úspěšná, návratová hodnota je nenulová hodnota.

Pokud funkce selže, návratová hodnota je nula.

Poznámky

Poznámka:

Jedná se o blokující nebo synchronní funkci a nemusí se vrátit okamžitě. Jak rychle tato funkce vrací, závisí na faktorech doby běhu, jako je stav sítě, konfigurace tiskového serveru a faktory implementace ovladače tiskárny, které se při psaní aplikace obtížně predikují. Volání této funkce z vlákna, které spravuje interakci s uživatelským rozhraním, může znamenat, že aplikace přestane reagovat.

Posloupnost tiskové úlohy je následující:

  1. Chcete-li zahájit tiskovou úlohu, zavolejte Metodu StartDocPrinter.
  2. Chcete-li zahájit každou stránku, zavolejte StartPagePrinter.
  3. Pokud chcete zapisovat data na stránku, zavolejte WritePrinter.
  4. Chcete-li ukončit každou stránku, zavolejte EndPagePrinter.
  5. Opakujte 2, 3 a 4 pro tolik stránek, kolik je potřeba.
  6. Chcete-li ukončit tiskovou úlohu, zavolejte EndDocPrinter.

Pokud se dokument vysoké úrovně (například soubor Adobe PDF nebo Microsoft Word) nebo jiná data tiskárny (například PCL, PS nebo HPGL) odešlou přímo na tiskárnu, nastavení tisku definované v dokumentu převezme nastavení tisku před nastavením tisku systému Windows. Dokumenty výstup, když hodnota pDatatypečlenu DOC_INFO_1 struktury, která byla předána v pDocInfo parametru volání StartDocPrinter je "RAW" musí plně popsat nastavení tiskové úlohy ve stylu DEVMODE v jazyce pochopit hardware.

Ve verzích systému Windows starších než Windows XP může při překročení velikosti stránky ve zařazovaném souboru přibližně 350 MB dojít k selhání tisku a odeslání chybové zprávy. K tomu může dojít například při tisku velkých souborů EMF. Omezení velikosti stránky ve verzích Systému Windows před systémem Windows XP závisí na mnoha faktorech, včetně množství dostupné virtuální paměti, množství paměti přidělené volajícími procesy a množství fragmentace v haldě procesu. Ve Windows XP a novějších verzích Systému Windows musí mít soubory EMF velikost 2 GB nebo menší. Pokud se writePrinter používá k zápisu dat jiných než EMF, například PDL připravených k tiskárně, je velikost souboru omezena pouze dostupným místem na disku.

Příklady

Ukázkový program, který tuto funkci používá, najdete v tématu Postupy: Tisk pomocí rozhraní API pro tisk GDI.

Požadavky

Požadavek Hodnota
Minimální podporovaný klient
Windows 2000 Professional [jenom desktopové aplikace]
Minimální podporovaný server
Windows 2000 Server [jenom desktopové aplikace]
Záhlaví
Winspool.h (včetně Windows.h)
Knihovna
Winspool.lib
Knihovna dll
Spoolss.dll

Viz také

Tisk

funkcí rozhraní API zařazování tisku

EndDocPrinter

EndPagePrinter

Otevřít tiskárnu

StartDocPrinter

StartPagePrinter