Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi WritePrinter memberi tahu penampung cetak bahwa data harus ditulis ke printer yang ditentukan.
Nota
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.
Sintaksis
BOOL WritePrinter(
_In_ HANDLE hPrinter,
_In_ LPVOID pBuf,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcWritten
);
Parameter-parameternya
-
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.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah nilai bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol.
Komentar
Nota
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:
- Untuk memulai pekerjaan cetak, panggil StartDocPrinter.
- Untuk memulai setiap halaman, panggil StartPagePrinter.
- Untuk menulis data ke halaman, panggil WritePrinter.
- Untuk mengakhiri setiap halaman, panggil EndPagePrinter.
- Ulangi 2, 3, dan 4 untuk halaman sebanyak yang diperlukan.
- 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 melalui 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 dapat 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 memanggil proses, dan jumlah fragmentasi dalam tumpukan 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 API Cetak GDI.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Kepala Halaman |
|
Perpustakaan |
|
DLL |
|