Fungsi WritePrinter

Fungsi WritePrinter memberi tahu penampung cetak bahwa data harus ditulis ke printer yang ditentukan.

Catatan

WritePrinter hanya mendukung pencetakan GDI dan tidak boleh digunakan untuk pencetakan XPS. Jika pekerjaan cetak Anda menggunakan jalur cetak XPS atau OpenXPS, gunakan XPS Print API. Mengirim pekerjaan cetak XPS atau OpenXPS ke penampung menggunakan WritePrinter tidak didukung dan dapat mengakibatkan hasil yang tidak ditentukan.

Sintaks

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

Parameter

hPrinter [in]

Handel ke pencetak. Gunakan fungsi OpenPrinter atau AddPrinter untuk mengambil handel printer.

pBuf [in]

Penunjuk ke array byte yang berisi data yang harus ditulis ke printer.

cbBuf [in]

Ukuran, dalam byte, dari array.

pcWritten [out]

Penunjuk ke nilai yang menerima jumlah byte data yang ditulis ke printer.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah nilai bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol.

Keterangan

Catatan

Ini adalah fungsi pemblokiran atau sinkron dan mungkin tidak segera kembali. Seberapa cepat fungsi ini kembali tergantung pada faktor run-time seperti status jaringan, konfigurasi server cetak, dan faktor implementasi driver printer yang sulit diprediksi saat menulis aplikasi. Memanggil fungsi ini dari utas yang mengelola interaksi dengan antarmuka pengguna dapat membuat aplikasi tampak tidak responsif.

Urutan untuk pekerjaan cetak adalah sebagai berikut:

  1. Untuk memulai pekerjaan cetak, panggil StartDocPrinter.
  2. Untuk memulai setiap halaman, panggil StartPagePrinter.
  3. Untuk menulis data ke halaman, panggil WritePrinter.
  4. Untuk mengakhiri setiap halaman, panggil EndPagePrinter.
  5. Ulangi 2, 3, dan 4 untuk halaman sebanyak yang diperlukan.
  6. Untuk mengakhiri pekerjaan cetak, panggil EndDocPrinter.

Ketika dokumen tingkat tinggi (seperti file Adobe PDF atau Microsoft Word) atau data printer lainnya (PCL, PS, atau HPGL) dikirim langsung ke printer, pengaturan cetak yang ditentukan dalam dokumen mengambil preseden atas pengaturan cetak Windows. Output dokumen ketika nilai anggota pDatatype dari struktur DOC_INFO_1 yang diteruskan dalam parameter pDocInfo dari panggilan StartDocPrinter adalah "RAW" harus sepenuhnya menggambarkan pengaturan pekerjaan cetak gaya DEVMODE dalam bahasa yang dipahami oleh perangkat keras.

Dalam versi Windows sebelum Windows XP, ketika halaman dalam file yang ditampung melebihi sekitar 350 MB, itu bisa gagal mencetak dan tidak mengirim pesan kesalahan. Misalnya, ini dapat terjadi saat mencetak file EMF besar. Batas ukuran halaman dalam versi Windows sebelum Windows XP tergantung pada banyak faktor termasuk jumlah memori virtual yang tersedia, jumlah memori yang dialokasikan dengan proses panggilan, dan jumlah fragmentasi dalam timbunan proses. Di Windows XP dan versi Windows yang lebih baru, file EMF harus berukuran 2GB atau kurang. Jika WritePrinter digunakan untuk menulis data non EMF, seperti PDL siap printer, ukuran file hanya dibatasi oleh ruang disk yang tersedia.

Contoh

Untuk program sampel yang menggunakan fungsi ini, lihat Cara: Mencetak Menggunakan GDI Print API.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung
Windows 2000 Server [hanya aplikasi desktop]
Header
Winspool.h (termasuk Windows.h)
Pustaka
Winspool.lib
DLL
Spoolss.dll

Lihat juga

Pencetakan

Cetak Fungsi API Spooler

EndDocPrinter

EndPagePrinter

OpenPrinter

StartDocPrinter

StartPagePrinter

WritePrinter