Aracılığıyla paylaş


WritePrinter işlevi

WritePrinter işlevi, yazdırma biriktiricisine verilerin belirtilen yazıcıya yazılması gerektiğini bildirir.

Uyarı

WritePrinter yalnızca GDI yazdırmayı destekler ve XPS yazdırma için kullanılmamalıdır. Yazdırma işiniz XPS veya OpenXPS yazdırma yolunu kullanıyorsa XPS Yazdırma API'sini kullanın. WritePrinter kullanılarak biriktiriciye XPS veya OpenXPS yazdırma işlerinin gönderilmesi desteklenmez ve belirsiz sonuçlara neden olabilir.

Sözdizimi

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

Parametreler

hPrinter [in]

Yazıcının tutamacı. Yazıcı tutamacını almak için OpenPrinter veya AddPrinter işlevini kullanın.

pBuf [in]

Yazıcıya yazılması gereken verileri içeren bayt dizisi işaretçisi.

cbBuf [in]

Dizinin bayt cinsinden boyutu.

pcWritten [out]

Yazıcıya yazılan veri bayt sayısını alan bir değerin işaretçisi.

Dönüş değeri

İşlev başarılı olursa, dönüş değeri sıfır olmayan bir değerdir.

İşlev başarısız olursa, dönüş değeri sıfır olur.

Açıklamalar

Uyarı

Bu, engelleyici veya zaman uyumlu bir işlevdir ve hemen döndürülmeyebilir. Bu işlevin ne kadar hızlı döndürüleceği ağ durumu, yazdırma sunucusu yapılandırması ve uygulama yazarken tahmin edilmesi zor olan yazıcı sürücüsü uygulama faktörleri gibi çalışma zamanı faktörlerine bağlıdır. Bu işlevin kullanıcı arabirimiyle etkileşimi yöneten bir iş parçacığından çağrılması, uygulamanın yanıt vermemeye başlamasına neden olabilir.

Yazdırma işinin sırası aşağıdaki gibidir:

  1. Yazdırma işini başlatmak için StartDocPrinter'ı çağırın.
  2. Her sayfayı başlatmak için StartPagePrinter'ı arayın.
  3. Sayfaya veri yazmak için WritePrinter'ı çağırabilirsiniz.
  4. Her sayfayı sonlandırmak için EndPagePrinter'ı çağırabilirsiniz.
  5. Gerektiği kadar çok sayfa için 2, 3 ve 4'i yineleyin.
  6. Yazdırma işini sonlandırmak için EndDocPrinter'ı çağırın.

Üst düzey bir belge (Adobe PDF veya Microsoft Word dosyası gibi) veya diğer yazıcı verileri (PCL, PS veya HPGL gibi) doğrudan bir yazıcıya gönderildiğinde, belgede tanımlanan yazdırma ayarları Windows yazdırma ayarlarından daha önceliklidir. StartDocPrinter çağrısının pDocInfo parametresinde geçirilen DOC_INFO_1 yapısının pDatatype üyesinin değeri "RAW" olduğunda belge çıkışı, DEVMODE stili yazdırma işi ayarlarını donanım tarafından anlaşılan dilde tam olarak açıklamalıdır.

Windows XP'den önceki Windows sürümlerinde, biriktirilmiş bir dosyadaki bir sayfa yaklaşık 350 MB'ı aştığında yazdırılamaz ve hata iletisi gönderemez. Örneğin, büyük EMF dosyaları yazdırıldığında bu durum oluşabilir. Windows'un Windows XP öncesi sürümlerindeki sayfa boyutu sınırı, kullanılabilir sanal bellek miktarı, çağrılan işlemler tarafından ayrılan bellek miktarı ve işlem yığınındaki parçalanma miktarı gibi birçok faktöre bağlıdır. Windows XP ve Windows'un sonraki sürümlerinde EMF dosyalarının boyutu 2 GB veya daha az olmalıdır. Yazıcıya hazır PDL gibi EMF olmayan verileri yazmak için WritePrinter kullanılıyorsa, dosyanın boyutu yalnızca kullanılabilir disk alanıyla sınırlıdır.

Örnekler

Bu işlevi kullanan örnek bir program için bkz . Nasıl Yapılır: GDI Yazdırma API'sini Kullanarak Yazdırma.

Gereksinimler

Gereksinim Değer
Desteklenen en düşük düzeydeki istemci
Windows 2000 Professional [yalnızca masaüstü uygulamaları]
Desteklenen en düşük sunucu
Windows 2000 Server [yalnızca masaüstü uygulamaları]
Başlık
Winspool.h (Windows.h dahil)
Kütüphane
Winspool.lib
DLL
Spoolss.dll

Ayrıca bakınız

Yazdırma

Yazdırma Biriktiricisi API İşlevleri

EndDocPrinter

EndPagePrinter

OpenPrinter

StartDocPrinter

StartPagePrinter