Menggunakan GetOptionAttribute
Penting
Platform cetak modern adalah sarana komunikasi pilihan Windows dengan printer. Kami menyarankan agar Anda menggunakan driver kelas kotak masuk IPP Microsoft, bersama dengan Print Support Apps (PSA), untuk menyesuaikan pengalaman cetak di Windows 10 dan 11 untuk pengembangan perangkat printer.
Untuk informasi selengkapnya, lihat Platform cetak modern dan panduan desain aplikasi dukungan Cetak.
Fungsi ini hanya didukung untuk fitur PostScript Printer Driver (PPD). Jika atribut tertentu tidak tersedia, GetOptionAttribute mengembalikan E_INVALIDARG.
Parameter output untuk atribut opsi umum
Dalam tabel berikut, parameter pdwDataType mengambil nilai dari jenis enumerasi EATTRIBUTE_DATATYPE.
Atribut opsi umum | Parameter output |
---|---|
DisplayName | pdwDataType: kADT_UNICODE pbData: untai (karakter) Unicode yang dihentikan null dari string terjemahan nama kata kunci opsi pcbNeeded: jumlah byte string Unicode yang diacu oleh pbData (termasuk terminator null) Atribut opsi ini tersedia untuk opsi apa pun yang dapat dikembalikan EnumOptions pada fitur PPD. |
Doa | pdwDataType: kADT_BINARY pbData: array byte untuk InvocationValue opsi pcbNeeded: jumlah byte data biner yang ditujukkan oleh pbData Atribut opsi ini tersedia untuk opsi apa pun yang dapat dikembalikan EnumOptions pada fitur PPD. Jika InvocationValue opsi kosong, fungsi mengatur pdwDataType seperti di atas, atur pcbNeeded = 0, lalu kembalikan S_OK. |
OrderDependencyValue | pdwDataType: kADT_LONG pbData: urutan relatif yang ditentukan oleh kata kunci OrderDependency atau NonUIOrderDependency PPD untuk opsi ini. Perhatikan bahwa parameter pertama kata kunci ini adalah angka riil yang dikonversi ke LONG dan dikembalikan. pcbNeeded: sizeof(LONG) Atribut opsi ini hanya tersedia untuk opsi yang memiliki entri OrderDependency atau*NonUIOrderDependency di PPD, dan entri tidak menghilangkan optionKeyword. |
OrderDependencySection | pdwDataType: kADT_ASCII pbData: string ASCII yang dihentikan null yang berisi salah satu nama bagian berikut: "ExitServer" "Prolog" "DocumentSetup" "PageSetup" "JCLSetup" "AnySetup" pcbNeeded: jumlah byte string ASCII yang diakhiri oleh pbData (termasuk terminator null) Atribut opsi ini hanya tersedia untuk opsi yang memiliki entri OrderDependency atau NonUIOrderDependency di PPD, dan entri tidak menghilangkan optionKeyword. |
Parameter output untuk atribut opsi tertentu
Selain atribut opsi umum yang dijelaskan sebelumnya, atribut opsi yang tercantum dalam tabel berikut dapat memiliki batasan saat tersedia. Beberapa atribut tersedia untuk semua opsi fitur PPD tertentu, sementara yang lain hanya tersedia untuk opsi tertentu dari fitur PPD mereka. Batasan tersebut tercantum untuk setiap atribut opsi.
Kata kunci | Atribut opsi | Parameter output |
---|---|---|
InputSlot | ||
RequiresPageRegion | pdwDataType: kADT_BOOL pbData: TRUE jika kode pemanggilan PageRegion harus dikirim dengan kode pemanggilan InputSlot, dan FALSE sebaliknya. Ini didasarkan pada kata kunci RequiresPageRegion PPD. Jika kata kunci dihilangkan untuk opsi slot input ini, TRUE dikembalikan untuk atribut ini. pcbNeeded: sizeof(BOOL) Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "InputSlot", kecuali untuk opsi yang dihasilkan driver "*UseFormTrayTable". |
|
OutputBin | ||
OutputOrderReversed | pdwDataType: kADT_BOOL pbData: TRUE jika urutan output binOption adalah "Reverse", dan FALSE jika urutan outputnya adalah "Normal". Ini didasarkan pada kata kunci DefaultOutputOrder dan ageStackOrder PPD. pcbNeeded: sizeof(BOOL) Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "OutputBin". |
|
PageSize | ||
ImageableArea | pdwDataType: kADT_RECT pbData: kotak pembatas area gambar opsi PageSize, seperti yang ditentukan oleh kata kunci ImageableArea PPD, dikembalikan dalam struktur RECT, yang anggota kiri dan bawahnya berisi nilai llx dan lly, dan anggota kanan dan atasnya berisi nilai urx dan ury. Semua nilai berada dalam mikron. Nilai llx PPD, dan lly dibulatkan ke atas ke bilangan bulat terdekat sebelum dikonversi menjadi mikron. Nilai urx dan ury PPD dibulatkan ke bawah ke bilangan bulat terdekat sebelum dikonversi menjadi mikron. pcbNeeded: sizeof(RECT) Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "PageSize", kecuali opsi "CustomPageSize". |
|
PaperDimension | pdwDataType: kADT_SIZE pbData: dimensi fisik opsi PageSize, seperti yang ditentukan oleh kata kunci PaperDimension PPD, dikembalikan dalam struktur SIZE, yang anggota cx-nya berisi nilai lebar dan anggota cy-nya berisi nilai tinggi. Semua nilai berada dalam mikron. pcbNeeded: sizeof(SIZE) Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "PageSize", kecuali opsi "CustomPageSize". |
|
Ukuran Halaman: CustomPageSize | ||
HWMargins | pdwDataType: kADT_RECT pbData: empat nilai yang ditentukan oleh kata kunci HWMargins PPD dikembalikan dalam struktur RECT. Semua nilai berada dalam mikron. pcbNeeded: sizeof(RECT) Atribut opsi ini hanya tersedia untuk opsi "CustomPageSize" dari fitur PPD "PageSize". |
|
MaxMediaHeight | pdwDataType: kADT_DWORD pbData: nilai yang ditentukan oleh kata kunci PPD *MaxMediaHeight, dalam mikron. pcbNeeded: sizeof(DWORD) Atribut opsi ini hanya tersedia untuk opsi "CustomPageSize" dari fitur PPD "PageSize". |
|
MaxMediaWidth | pdwDataType: kADT_DWORD pbData: nilai yang ditentukan oleh kata kunci MaxMediaWidth PPD, dalam mikron. pcbNeeded: sizeof(DWORD) Atribut opsi ini hanya tersedia untuk opsi "CustomPageSize" dari fitur PPD "PageSize". |
|
ParamCustomPageSize | pdwDataType: kADT_CUSTOMSIZEPARAMS pbData: array elemen CUSTOMPARAM_MAX, di mana setiap elemen adalah struktur CUSTOMSIZEPARAM . Setiap elemen array ini menyimpan nilai yang ditentukan dalam entri paramOption kata kunci ParamCustomPageSize PPD. Untuk nilai paramOption selain "Orientasi", nilai lMinVal dan lMaxVal berada dalam mikron. Untuk nilai "Orientasi", lMinVal dan lMaxVal berada dalam rentang [0, 3]. pcbNeeded: sizeof(CUSTOMSIZEPARAM) * CUSTOMPARAM_MAX Atribut opsi ini hanya tersedia untuk opsi "CustomPageSize" dari fitur PPD "PageSize". Untuk informasi selengkapnya, lihat catatan berikut di ParamCustomPageSize. |
|
InstallMemory | ||
VMOption | pdwDataType: kADT_DWORD pbData: nilai yang ditentukan oleh kata kunci VMOption PPD, atau 0 jika PPD tidak menentukan kata kunci VMOption untuk opsi ini. pcbNeeded: sizeof(DWORD) Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "InstalledMemory". |
|
FCacheSize | pdwDataType: kADT_DWORD pbData: nilai yang ditentukan oleh kata kunci FCacheSize PPD, atau 0 jika PPD tidak menentukan kata kunci FCacheSize untuk opsi ini. pcbNeeded: sizeof(DWORD) Atribut opsi ini tersedia untuk opsi apa pun dari fitur PPD "InstalledMemory". |
Catatan tentang ParamCustomPageSize
Berikut adalah beberapa kode sampel yang menunjukkan cara mendapatkan urutan asli file PPD, min, dan nilai maks entri "Lebar ParamCustomPageSize". Konstanta CUSTOMPARAM_WIDTH, yang didefinisikan dalam printoem.h, menunjukkan offset struktur CUSTOMSIZEPARAM yang berisi informasi yang terkait dengan entri Lebar. Struktur ini adalah salah satu CUSTOMPARAM_MAX struktur CUSTOMSIZEPARAM yang membentuk array struktur tersebut. Header printoem.h mendefinisikan sekumpulan konstanta bernama CUSTOMPARAM_XXX mencantumkan offset struktur dalam array ini (Lebar, Tinggi, LebarOffset, HeightOffset, dan Orientasi).
PCUSTOMSIZEPARAM pCSParam;
pCSParam = (PCUSTOMSIZEPARAM)pbData + CUSTOMPARAM_WIDTH;
order = pCSParam->dwOrder;
// Convert lMinVal and lMaxVal from microns to points.
// To convert microns to inches, divide by 25400.
// To convert inches to points, multiply by 72.
min = pCSParam->lMinVal / 25400.0 * 72.0;
max = pCSParam->lMaxVal / 25400.0 * 72.0;