Thuộc tính PrtDevMode

Áp dụng cho

Đối tượng Form

Đối tượng Report

Bạn có thể sử dụng thuộc tính PrtDevMode để đặt hoặc trả về thông tin chế độ thiết bị in được chỉ định cho một biểu mẫu hoặc báo cáo trong hộp thoại In. Đọc/ghi Biến.

expression.PrtDevMode

Cần có expression. Một biểu thức trả về một trong các đối tượng thuộc danh sách Áp dụng Cho.

Ghi chú

Chúng tôi khuyên bạn nên tham khảo Bộ công cụ Phát triển Phần mềm Win32 để xem tài liệu hướng dẫn đầy đủ về thuộc tính PrtDevMode, PrtDevNamesPrtMip.

Cài đặt thuộc tính PrtDevMode là một cấu trúc 94 byte phản chiếu cấu trúc DEVMODE được xác định trong Bộ công cụ Phát triển Phần mềm Win32. Để biết đầy đủ thông tin về các phần tử thuộc tính PrtDevMode, hãy tham khảo Bộ công cụ Phát triển Phần mềm Win32.

Thuộc tính PrtDevMode sử dụng các phần tử sau đây.

Phần tử

Mô tả

DeviceName

Một chuỗi chứa tối đa 32 byte chỉ định tên của thiết bị mà trình điều khiển hỗ trợ — ví dụ: "HP LaserJet IIISi" nếu Hewlett-Packard LaserJet IIISi là máy in được chỉ định. Mỗi trình điểu khiển máy in có một chuỗi duy nhất.

SpecVersion

Một Số nguyên chỉ rõ số phiên bản của cấu trúc DEVMODE trong Bộ công cụ Phát triển Phần mềm Win32.

DriverVersion

Một Số nguyên chỉ rõ số phiên bản của trình điều khiển máy in do nhà phát triển trình điều khiển máy in gán.

Kích cỡ

Một Số nguyên chỉ rõ kích cỡ, theo đơn vị byte, của cấu trúc DEVMODE. (Giá trị này không bao gồm phần tử dmDriverData tùy chọn cho dữ liệu dành riêng cho thiết bị để có thể tuân theo cấu trúc này.) Nếu ứng dụng chỉ thao tác phần độc lập với trình điều khiển của dữ liệu, bạn có thể sử dụng phần tử này để tìm hiểu độ dài của cấu trúc này mà không phải quan tâm đến các phiên bản khác nhau.

DriverExtra

Một Số nguyên chỉ rõ kích cỡ, theo đơn vị byte, của phần tử dmDriverData tùy chọn cho dữ liệu dành riêng cho thiết bị để tuân theo cấu trúc này. Nếu ứng dụng không sử dụng thông tin dành riêng cho thiết bị, bạn hãy đặt phần tử này thành 0.

Fields

Một giá trị dạng Dài chỉ rõ thành phần nào trong số các phần tử còn lại trong cấu trúc DEVMODE đã được khởi tạo.

Orientation

Một Số nguyên chỉ rõ hướng của giấy. Số nguyên này có thể là 1 (dọc) hoặc 2 (ngang).

PaperSize

Một Số nguyên chỉ rõ kích cỡ của giấy dùng để in. Nếu bạn đặt phần tử này thành 0 hoặc 256, chiều dài và chiều rộng của giấy được xác định tương ứng bởi các phần tử PaperLength và PaperWidth. Nếu không, bạn có thể đặt phần tử PaperSize thành một giá trị được xác định trước.

PaperLength

Một Số nguyên chỉ rõ chiều dài của giấy theo đơn vị 1/10 milimét. Phần tử này sẽ ghi đè chiều dài của giấy được xác định bởi phần tử PaperSize cho kích cỡ giấy tùy chỉnh hoặc các thiết bị như máy in kim có thể in trên một loạt kích cỡ giấy khác nhau.

PaperWidth

Một Số nguyên chỉ rõ chiều rộng của giấy theo đơn vị 1/10 milimét. Phần tử này sẽ ghi đè chiều rộng của giấy được xác định bởi phần tử PaperSize.

Scale

Một Số nguyên chỉ rõ hệ số tỷ lệ của bản in ra. Kích cỡ trang rõ ràng được chia tỷ lệ từ kích cỡ thực tế của trang theo hệ số tỷ lệ/100. Ví dụ: một mẩu giấy có kích cỡ 8,5 x 11 inch (kích cỡ letter) với giá trị Tỷ lệ là 50 sẽ chứa nhiều dữ liệu như trang có kích cỡ 17 x 22 inch vì văn bản và đồ họa in ra sẽ bằng một nửa chiều cao và chiều rộng ban đầu.

Copies

Một Số nguyên chỉ rõ số bản được in nếu thiết bị in hỗ trợ in bản nhiều trang.

DefaultSource

Một Số nguyên chỉ rõ ngăn mặc định cấp giấy.

PrintQuality

Một Số nguyên chỉ rõ độ phân giải của máy in. Các giá trị là –4 (cao), –3 (trung bình), –2 (thấp) và – 1 (bản thảo).

Color

Một Số nguyên. Đối với máy in màu, số này sẽ chỉ rõ bản in ra có được in màu không. Các giá trị là 1 (màu) và 2 (đơn sắc).

Duplex

Một Số nguyên. Đối với máy in có khả năng in hai mặt, số này sẽ chỉ rõ bản in ra có được in trên cả hai mặt giấy không. Các giá trị là 1 (một mặt giấy), 2 (ngang) và 3 (dọc).

YResolution

Một Số nguyên chỉ rõ độ phân giải y của máy in theo đơn vị số điểm ảnh trên mỗi inch (dpi). Nếu máy in khởi tạo phần tử này, phần tử PrintQuality sẽ chỉ rõ độ phân giải x của máy in theo đơn vị dpi.

TTOption

Một Số nguyên chỉ rõ phông chữ TrueType sẽ được in như thế nào.

Collate

Một Số nguyên chỉ rõ có sử dụng đối chiếu khi in nhiều bản hay không. Sử dụng bản không đối chiếu sẽ giúp in ra nhanh hơn, hiệu quả hơn, vì dữ liệu chỉ được gửi đến máy in một lần.

FormName

Một chuỗi có tối đa 16 ký tự chỉ rõ kích cỡ giấy được sử dụng; ví dụ: "Letter" hoặc "Legal".

Pad

Một giá trị dạng Dài được sử dụng để chèn khoảng trống, ký tự hoặc giá trị cho các bản sau này.

Bits

Một giá trị dạng Dài chỉ rõ độ phân giải màu của thiết bị hiển thị theo đơn vị số bit trên mỗi điểm ảnh.

PW

Một giá trị dạng Dài chỉ rõ chiều rộng của bề mặt thiết bị hiển thị (màn hình hoặc máy in) theo đơn vị điểm ảnh.

PH

Một giá trị dạng Dài chỉ rõ chiều cao của bề mặt thiết bị hiển thị (màn hình hoặc máy in) theo đơn vị điểm ảnh.

DFI

Một giá trị dạng Dài chỉ rõ chế độ hiển thị trên thiết bị.

DFR

Một giá trị dạng Dài chỉ rõ tần suất của thiết bị hiển thị trong một chế độ cụ thể theo đơn vị hertz (số chu kỳ trong mỗi giây).


Ghi chú: Bạn có thể đặt thuộc tính PrtDevMode bằng cách sử dụng mã Visual Basic for Applications (VBA).

Thuộc tính này được đặt thành đọc/ghi trong cửa sổ Thiết kế hoặc dạng xem Bố trí và chỉ đọc ở các dạng xem khác.

Trình điều khiển máy in có thể thêm ngay lập tức dữ liệu dành riêng cho thiết bị sau 94 byte của cấu trúc DEVMODE. Vì lý do này, dữ liệu DEVMODE đã nêu ở trên không được vượt quá 94 byte.

Chỉ trình điều khiển máy in xuất hàm ExtDeviceMode mới sử dụng cấu trúc DEVMODE.

Một ứng dụng có thể truy xuất kích cỡ giấy và tên được máy in hỗ trợ bằng cách sử dụng các giá trị DC_PAPERS, DC_PAPERSIZE và DC_PAPERNAMES để gọi hàm DeviceCapabilities.

Trước khi đặt giá trị của phần tử TTOption, ứng dụng sẽ tìm hiểu cách trình điều khiển máy in có thể sử dụng phông chữ TrueType bằng cách sử dụng giá trị DC_TRUETYPE để gọi hàm DeviceCapabilities.

Ví dụ

Ví dụ sau đây sẽ sử dụng thuộc tính PrtDevMode để kiểm tra kích cỡ trang do người dùng xác định đối với báo cáo:

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

Ví dụ sau đây trình bày cách thay đổi hướng của báo cáo. Ví dụ này sẽ chuyển hướng từ dọc sang ngang hoặc từ ngang sang dọc tùy theo hướng hiện tại của báo cáo.

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
Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×