Megosztás a következőn keresztül:


WritePrinter függvény

A WritePrinter függvény értesíti a nyomtatásisor-kezelőt, hogy az adatokat a megadott nyomtatóra kell írni.

Megjegyzés:

A WritePrinter csak a GDI-nyomtatást támogatja, és nem használható XPS-nyomtatáshoz. Ha a nyomtatási feladat az XPS vagy az OpenXPS nyomtatási útvonalat használja, használja az XPS Print API-t. Az XPS- vagy OpenXPS-nyomtatási feladatok a WritePrinter használatával történő elküldése nem támogatott, és meghatározatlan eredményeket eredményezhet.

Szemantika

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

Paraméterek

hPrinter [in]

Egy fogópont a nyomtatóhoz. Nyomtatófogópont lekéréséhez használja az OpenPrinter vagy az AddPrinter függvényt.

pBuf [in]

Mutató egy bájttömbre, amely tartalmazza a nyomtatóra írandó adatokat.

cbBuf [in]

A tömb mérete bájtban.

pcWritten [out]

Egy olyan értékre mutató mutató, amely a nyomtatóra írt adatok bájtjainak számát fogadja.

Visszaadott érték

Ha a függvény sikeres, a visszatérési érték nem érték.

Ha a függvény sikertelen, a visszatérési érték nulla.

Megjegyzések

Megjegyzés:

Ez egy blokkoló vagy szinkron függvény, és előfordulhat, hogy nem azonnal tér vissza. A függvény visszatérési ideje olyan futásidejű tényezőktől függ, mint a hálózati állapot, a nyomtatókiszolgáló konfigurációja és a nyomtatóillesztő implementálási tényezői, amelyeket nehéz előrejelezni az alkalmazások írásakor. Ha ezt a függvényt egy olyan szálról hívja meg, amely kezeli a felhasználói felülettel való interakciót, az alkalmazás nem válaszolhat.

A nyomtatási feladatok sorrendje a következő:

  1. Nyomtatási feladat indításához hívja meg a StartDocPrintert.
  2. Az egyes lapok indításához hívja meg a StartPagePrintert.
  3. Ha adatokat szeretne írni egy lapra, hívja meg a WritePrintert.
  4. Az egyes lapok befejezéséhez hívja meg az EndPagePrintert.
  5. Ismételje meg a 2, 3 és 4 elemet a szükséges számú oldal esetében.
  6. A nyomtatási feladat befejezéséhez hívja meg az EndDocPrintert.

Ha egy magas szintű dokumentumot (például Adobe PDF- vagy Microsoft Word-fájlt) vagy más nyomtatóadatokat (például PCL, PS vagy HPGL) közvetlenül egy nyomtatóra küld, a dokumentumban meghatározott nyomtatási beállítások elsőbbséget élveznek a Windows nyomtatási beállításaival szemben. A dokumentumok kimenete, ha a StartDocPrinter-híváspDocInfo paraméterében átadott DOC_INFO_1 struktúra pDatatype tagjának értéke "RAW" lesz, teljes mértékben le kell írnia a DEVMODE stílusú nyomtatási feladat beállításait a hardver által értelmezett nyelven.

A Windows XP előtti windowsos verziókban, ha egy beszúrt fájl egy lapja meghaladja a 350 MB-ot, a nyomtatás sikertelen lehet, és nem küld hibaüzenetet. Ez például nagy EMF-fájlok nyomtatásakor fordulhat elő. A Windows xp előtti Windows-verziók oldalméretkorlátja számos tényezőtől függ, például a rendelkezésre álló virtuális memória mennyiségétől, a hívási folyamatok által lefoglalt memória mennyiségétől és a folyamat halomtöredezettségének mennyiségétől. A Windows XP és a Windows újabb verzióiban az EMF-fájloknak legalább 2 GB méretűnek kell lenniük. Ha a WritePrinter nem EMF-adatok, például nyomtatóra kész PDL írására szolgál, a fájl méretét csak a rendelkezésre álló lemezterület korlátozza.

Példák

A függvényt használó mintaprogramokkal kapcsolatban lásd : Útmutató: Nyomtatás a GDI Print API használatával.

Követelmények

Követelmény Érték
Minimálisan támogatott ügyfél
Windows 2000 Professional [csak asztali alkalmazások]
Minimálisan támogatott kiszolgáló
Windows 2000 Server [csak asztali alkalmazások]
Fejléc
Winspool.h (a Windows.h-t is tartalmazza)
Könyvtár
Winspool.lib
DLL
Spoolss.dll

Lásd még

Nyomtatás

Nyomtatásisor-kezelő API Functions

EndDocPrinter

EndPagePrinter

OpenPrinter

StartDocPrinter

StartLapNyomtató