Properti PrtDevMode

Berlaku untuk

Objek Form

Objek Report

Anda dapat menggunakan properti PrtDevMode untuk mengatur atau mengembalikan informasi mode perangkat pencetakan yang ditentukan untuk formulir atau laporan dalam kotak dialog Cetak. Membaca/menulis Variant.

ekspresi.PrtDevMode

ekspresi Diperlukan. Sebuah ekspresi yang mengembalikan salah satu objek dalam daftar Berlaku Untuk.

Keterangan

Sebaiknya, periksa Kit Pengembangan Perangkat Lunak Win32 untuk dokumentasi lengkap tentang properti PrtDevMode, PrtDevNames, dan PrtMip.

Pengaturan properti PrtDevMode adalah struktur 94 byte yang mencerminkan struktur DEVMODE yang ditentukan dalam Kit Pengembangan Perangkat Lunak Win32. Untuk informasi lengkap tentang anggota properti PrtDevMode, periksa Kit Pengembangan Perangkat Lunak Win32.

Properti ModePrtDevmenggunakan anggota berikut ini.

Anggota

Deskripsi

DeviceName

Sebuah string dengan ukuran maksimal 32 byte, menentukan nama perangkat yang didukung driver seperti "HP LaserJet IIISi" jika Hewlett-Packard LaserJet IIISi adalah printer yang ditentukan. Setiap driver printer memiliki string yang unik.

SpecVersion

Sebuah Integer yang menentukan nomor versi struktur DEVMODE dalam Kit Pengembangan Perangkat Lunak Win32.

DriverVersion

Sebuah Integer yang menentukan nomor versi driver printer yang ditetapkan oleh pengembang driver printer.

Size (Ukuran)

Sebuah Integer yang menentukan ukuran struktur DEVMODE dalam byte. (Nilai ini tidak menyertakan anggota opsional dmDriverData untuk data khusus perangkat, yang dapat mengikuti struktur ini.) Jika aplikasi hanya memanipulasi data yang bukan merupakan bagian driver, Anda dapat menggunakan anggota ini untuk mencari tahu panjang struktur ini tanpa harus menjelaskan versi yang berbeda.

DriverExtra

Sebuah Integer yang menentukan ukuran dmDriverData opsional, dalam byte, untuk data khusus perangkat, yang dapat mengikuti struktur ini. Jika aplikasi tidak menggunakan informasi khusus perangkat, atur anggota ini ke 0.

Fields

Sebuah nilai Long yang menentukan sisa anggota mana dalam struktur DEVMODE yang telah dimulai.

Orientation

Sebuah Integer yang menentukan orientasi kertas. Bilangan dapat berupa 1 (potret) atau 2 (lanskap).

PaperSize

Sebuah Integer yang menentukan ukuran kertas untuk mencetak. Jika anggota ini diatur ke 0 atau 256, panjang dan lebar kertas masing-masing ditentukan oleh anggota PaperLength dan PaperWidth. Jika tidak, atur anggota PaperSize dengan nilai yang sudah ditentukan sebelumnya.

PaperLength

Sebuah Integer yang menentukan panjang kertas dalam satuan 1/10 milimeter. Anggota ini menimpa panjang kertas yang ditentukan oleh anggota PaperSize untuk ukuran kertas kustom atau untuk perangkat seperti printer dot matriks yang dapat mencetak pada berbagai ukuran kertas.

PaperWidth

Sebuah Integer yang menentukan lebar kertas dalam satuan 1/10 milimeter. Anggota ini menimpa lebar kertas yang ditentukan oleh anggota PaperSize.

Scale

Sebuah Integer yang menentukan faktor untuk penentuan skala output cetak. Ukuran halaman sebenarnya diskalakan dari ukuran fisik halaman dengan faktor skala/100. Sebagai contoh, selembar kertas berukuran 8,5 x 11 inci (ukuran letter) dengan nilai Skala 50 akan berisi data sebanyak yang terdapat pada halaman berukuran 17 x 22 inci karena teks dan grafik outputnya berukuran setengah dari ketinggian dan lebar aslinya.

Copies

Sebuah Integer yang menentukan jumlah salinan yang dicetak jika perangkat pencetakan mendukung salinan beberapa halaman.

DefaultSource

Sebuah Integer yang menentukan tempat default untuk memasukkan kertas.

PrintQuality

Sebuah Integer yang menentukan resolusi printer. Nilainya adalah –4 (tinggi), –3 (sedang), –2 (rendah), dan – 1 (draf).

Color

Sebuah Integer. Untuk printer warna, menentukan apakah output dicetak berwarna. Nilainya adalah 1 (warna) dan 2 (satu warna).

Duplex

Sebuah Integer. Untuk printer yang dapat melakukan pencetakan dupleks, menentukan apakah hasil akan dicetak di kedua sisi kertas. Nilainya adalah 1 (simpleks), 2 (horizontal), dan 3 (vertikal).

YResolution

Sebuah Integer yang menentukan resolusi y dari printer dalam titik per inci (dpi). Jika printer memulai anggota ini, anggota PrintQuality menentukan resolusi x dari printer dalam dpi.

TTOption

Sebuah Integer yang menentukan cara font TrueType akan dicetak.

Collate

Sebuah Integer yang menentukan apakah kolase harus digunakan ketika mencetak beberapa salinan. Menggunakan salinan yang tidak dikolase akan menghasilkan output yang lebih cepat dan efisien karena data hanya dikirimkan sekali ke printer.

FormName

String dengan ukuran maksimal 16 karakter yang menentukan ukuran kertas yang akan digunakan; misalnya, "Letter" atau “Legal".

Pad

Sebuah nilai Long yang digunakan untuk memperpanjang spasi, karakter, atau nilai untuk versi mendatang.

Bits

Sebuah nilai Long yang menentukan resolusi warna perangkat tampilan dalam satuan bit per piksel.

PW

Sebuah nilai Long yang menentukan lebar, dalam piksel, dari permukaan perangkat yang terlihat (layar atau printer).

PH

Suatu nilai Long yang menentukan tinggi permukaan perangkat yang terlihat (layar atau printer) dalam piksel.

DFI

Sebuah nilai Long yang menentukan mode tampilan perangkat.

DFR

Sebuah nilai Long yang menentukan frekuensi, dalam hertz (siklus per detik), dari perangkat tampilan dalam mode tertentu.


Catatan: Anda dapat mengatur properti PrtDevMode menggunakan kode Visual Basic for Applications (VBA).

Pengaturan properti ini adalah baca/tulis dalam tampilan Desain atau tampilan Tata Letak, dan baca-saja dalam tampilan lain.

Driver printer dapat menambahkan data khusus perangkat langsung setelah 94 byte struktur DEVMODE. Karena alasan ini, penting bahwa data DEVMODE yang dijelaskan di atas tidak melebihi 94 byte.

Hanya driver printer yang mengekspor fungsi ExtDeviceMode yang menggunakan struktur DEVMODE.

Aplikasi dapat mengambil ukuran kertas dan nama yang didukung oleh printer menggunakan nilai DC_PAPERS, DC_PAPERSIZE dan DC_PAPERNAMES untuk menjalankan fungsi DeviceCapabilities.

Sebelum mengatur nilai anggota TTOption, aplikasi harus mengetahui bagaimana driver printer dapat menggunakan font TrueType menggunakan nilai DC_TRUETYPE untuk menjalankan fungsi DeviceCapabilities.

Contoh

Contoh berikut ini menggunakan properti PrtDevMode untuk memeriksa ukuran halaman yang ditentukan pengguna untuk laporan:

Private Type str_DEVMODE
RGB As String * 94
End Type
Private Type type_DEVMODE
strDeviceName As String * 32
intSpecVersion As Integer
intDriverVersion As Integer
intSize As Integer
intDriverExtra As Integer
lngFields As Long
intOrientation As Integer
intPaperSize As Integer
intPaperLength As Integer
intPaperWidth As Integer
intScale As Integer
intCopies As Integer
intDefaultSource As Integer
intPrintQuality As Integer
intColor As Integer
intDuplex As Integer
intResolution As Integer
intTTOption As Integer
intCollate As Integer
strFormName As String * 32
lngPad As Long
lngBits As Long
lngPW As Long
lngPH As Long
lngDFI As Long
lngDFr As Long
End Type
Public Sub CheckCustomPage(ByVal rptName As String)
Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
Dim strDevModeExtra As String
Dim rpt As Report
Dim intResponse As Integer
' Opens report in Design view.
DoCmd.OpenReport rptName, acDesign
Set rpt = Reports(rptName)
If Not IsNull(rpt.PrtDevMode) Then
strDevModeExtra = rpt.PrtDevMode
' Gets current DEVMODE structure.
DevString.RGB = strDevModeExtra
LSet DM = DevString
If DM.intPaperSize = 256 Then
' Display user-defined size.
intResponse = MsgBox("The current custom page size is " & _
DM.intPaperWidth / 254 & " inches wide by " & _
DM.intPaperLength / 254 & " inches long. Do you want " & _
"to change the settings?", vbYesNo + vbQuestion)
Else
' Currently not user-defined.
intResponse = MsgBox("The report does not have a custom page size. " & _
"Do you want to define one?", vbYesNo + vbQuestion)
End If
If intResponse = vbYes Then
' User wants to change settings. Initialize fields.
DM.lngFields = DM.lngFields Or DM.intPaperSize Or _
DM.intPaperLength Or DM.intPaperWidth
' Set custom page.
DM.intPaperSize = 256
' Prompt for length and width.
DM.intPaperLength = InputBox("Please enter page length in inches.") * 254
DM.intPaperWidth = InputBox("Please enter page width in inches.") * 254
' Update property.
LSet DevString = DM
Mid(strDevModeExtra, 1, 94) = DevString.RGB
rpt.PrtDevMode = strDevModeExtra
End If
End If
Set rpt = Nothing
End Sub

Contoh berikut ini memperlihatkan cara untuk mengubah orientasi laporan. Contoh ini akan mengubah orientasi dari potret ke lanskap atau lanskap ke potret tergantung pada orientasi laporan saat ini.

Public Sub SwitchOrient(ByVal strName As String)
Const DM_PORTRAIT = 1
Const DM_LANDSCAPE = 2
Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
Dim strDevModeExtra As String
Dim rpt As Report
' Opens report in Design view.
DoCmd.OpenReport strName, acDesign
Set rpt = Reports(strName)
If Not IsNull(rpt.PrtDevMode) Then
strDevModeExtra = rpt.PrtDevMode
DevString.RGB = strDevModeExtra
LSet DM = DevString
DM.lngFields = DM.lngFields Or DM.intOrientation
' Initialize fields.
If DM.intOrientation = DM_PORTRAIT Then
DM.intOrientation = DM_LANDSCAPE
Else
DM.intOrientation = DM_PORTRAIT
End If
' Update property.
LSet DevString = DM
Mid(strDevModeExtra, 1, 94) = DevString.RGB
rpt.PrtDevMode = strDevModeExtra
End If
Set rpt = Nothing
End Sub
Kembangkan keterampilan Office Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung ke Office Insiders

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×