Właściwość PrtDevMode

Dotyczy:

Obiekt Form

Obiekt Report

Właściwość PrtDevMode służy do ustawiania lub zwracania informacji o trybie urządzenia drukującego, które zostało określone dla formularza lub raportu w oknie dialogowym Drukowanie. Właściwość od odczytu i zapisu typu Variant (wariant).

wyrażenie.PrtDevMode

wyrażenie — wymagane. Wyrażenie, które zwraca jeden z obiektów na liście Dotyczy.

Spostrzeżenia

Zaleca się skorzystanie z zestawu Win32 Software Development Kit, w którym znajduje się pełna dokumentacja właściwości PrtDevMode, PrtDevNames i PrtMip.

Wartość właściwości PrtDevMode jest 94-bajtową strukturą odwzorowującą strukturę DEVMODE zdefiniowaną w zestawie Win32 Software Development Kit. Pełne informacje o elementach członkowskich właściwości PrtDevMode można znaleźć w zestawie Win32 Software Development Kit.

Właściwość PrtDevMode składa się z następujących elementów członkowskich.

Element członkowski

Opis

DeviceName

Jest to ciąg o maksymalnej długości 32 bajtów, określający nazwę urządzenia obsługiwanego przez sterownik, na przykład „HP LaserJet IIISi” w wypadku drukarki Hewlett-Packard LaserJet IIISi. Każdy sterownik drukarki ma niepowtarzalny ciąg identyfikacyjny.

SpecVersion

Liczba całkowita, określająca numer wersji struktury DEVMODE w zestawie Win32 Software Development Kit.

DriverVersion

Liczba całkowita określająca numer wersji sterownika drukarki przypisany przez twórcę tego sterownika.

Size

Liczba całkowita zawierająca wyrażony w bajtach rozmiar struktury DEVMODE. (Ta wartość nie obejmuje opcjonalnego elementu członkowskiego dmDriverData dotyczącego danych specyficznych dla urządzenia, który może wystąpić za tą strukturą). Jeśli aplikacja operuje jedynie na części danych niezależnej od sterownika, można posłużyć się tym elementem do określenia długości tej struktury bez konieczności brania pod uwagę różnych wersji sterowników.

DriverExtra

Liczba całkowita zawierająca wyrażony w bajtach rozmiar opcjonalnego elementu członkowskiego dmDriverData dotyczącego danych specyficznych dla urządzenia, który może wystąpić za tą strukturą. Jeśli aplikacja nie używa informacji specyficznych dla urządzenia, ten element otrzymuje wartość 0.

Fields

Liczba długa określająca pozostałe elementy członkowskie w strukturze DEVMODE, które zostały zainicjowane.

Orientation

Liczba całkowita określająca orientację papieru. Może wynosić 1 (pionowa) lub 2 (pozioma).

PaperSize

Liczba całkowita określająca rozmiar papieru do drukowania. Jeśli ten element członkowski zostanie ustawiony na 0 lub 256, długość i szerokość papieru będą określone odpowiednio przez elementy PaperLength i PaperWidth. W przeciwnym razie elementowi PaperSize można przypisać predefiniowaną wartość.

PaperLength

Liczba całkowita określająca długość papieru w jednostkach 1/10 milimetra. Ten element członkowski zastępuje długość papieru określoną w elemencie PaperSize dla niestandardowych rozmiarów papieru lub dla urządzeń, takich jak drukarka igłowa, które mogą drukować na papierach o różnych rozmiarach.

PaperWidth

Liczba całkowita określająca szerokość papieru w jednostkach 1/10 milimetra. Ten element członkowski zastępuje szerokość papieru określoną w elemencie PaperSize.

Scale

Liczba całkowita określająca współczynnik skalowania wydruku. Rzeczywisty rozmiar papieru jest skalowany według współczynnika Scale/100. Na przykład kartka o wymiarach 8,5 na 11 cali (format Letter) z wartością Scale równą 50 może pomieścić tyle danych, co strona o wymiarach 17 na 22 cale, ponieważ wysokość i szerokość tekstu oraz grafiki na wydruku będą dwukrotnie mniejsze niż normalnie.

Copies

Liczba całkowita określająca liczbę kopii, jeśli urządzenie drukujące obsługuje wydruk wielu kopii strony.

DefaultSource

Liczba całkowita określająca domyślny pojemnik, z którego jest pobierany papier.

PrintQuality

Liczba całkowita określająca rozdzielczość drukarki. Dopuszczalne wartości to: -4 (wysoka), -3 (średnia), -2 (niska) i -1 (robocza).

Color

Liczba całkowita. W przypadku drukarek kolorowych określa, czy dane wyjściowe będą drukowane w kolorze. Dopuszczalne wartości to: 1 (wydruk kolorowy) i 2 (wydruk monochromatyczny).

Duplex

Liczba całkowita. W przypadku drukarek z możliwością wydruku dwustronnego określa, czy dane wyjściowe będą drukowane na obu stronach papieru. Dopuszczalne wartości to: 1 (wydruk jednostronny), 2 (wydruk poziomy) i 3 (wydruk pionowy).

YResolution

Liczba całkowita określająca rozdzielczość osi y drukarki, wyrażoną w punktach na cal (dpi). Jeśli drukarka inicjuje ten element członkowski, wówczas wartość PrintQuality określa rozdzielczość osi x drukarki, również wyrażoną w punktach na cal.

TTOption

Liczba całkowita określająca sposób wydruku czcionek TrueType.

Collate

Liczba całkowita określająca, czy podczas wydruku wielu kopii są one sortowane. Jeśli sortowanie kopii jest wyłączone, wydruk przebiega szybciej, ponieważ dane są wysyłane do drukarki tylko raz.

FormName

Ciąg składający się z maksymalnie 16 znaków, określający rozmiar używanego papieru, na przykład „Letter” lub „A4”.

Pad

Liczba długa, która jest używana do wypełniania spacjami, znakami lub wartościami. Przeznaczona do przyszłych zastosowań.

Bits

Liczba długa zawierająca wyrażoną w bitach na piksel rozdzielczość kolorów urządzenia drukującego.

PW

Liczba długa zawierająca wyrażoną w pikselach szerokość widocznej powierzchni urządzenia (ekranu lub drukarki).

PH

Liczba długa zawierająca wyrażoną w pikselach wysokość widocznej powierzchni urządzenia (ekranu lub drukarki).

DFI

Liczba długa określająca tryb wyświetlania urządzenia.

DFR

Liczba długa zawierająca wyrażoną w Hz (liczbie cyklów na sekundę) częstotliwość urządzenia wyświetlającego w określonym trybie.


Uwaga : Właściwość PrtDevMode można ustawiać przy użyciu kodu w języku Visual Basic for Applications (VBA).

Ta właściwość jest dostępna do odczytu i zapisu w widoku projektu lub układu oraz tylko do odczytu w pozostałych widokach.

Urządzenia drukujące mogą dodawać dane specyficzne dla urządzenia zaraz za 94 bajtami struktury DEVMODE. Z tego względu ważne jest, aby wymienione powyżej dane struktury DEVMODE nie przekroczyły 94 bajtów.

Struktury DEVMODE używają jedynie drukarki eksportujące funkcję ExtDeviceMode.

Aplikacja może pobrać rozmiary papieru oraz nazwy obsługiwane przez drukarkę z wartości DC_PAPERS, DC_PAPERSIZE i DC_PAPERNAMES przekazanych w wywołaniu funkcji DeviceCapabilities.

Przed ustawieniem wartości elementu TTOption aplikacja powinna stwierdzić, w jaki sposób sterownik drukarki korzysta z czcionek True Type. W tym celu należy wywołać funkcję DeviceCapabilities z wartością DC_TRUETYPE.

Przykład

W poniższym przykładzie pokazano użycie właściwości PrtDevMode do sprawdzania rozmiaru strony raportu zdefiniowanej przez użytkownika:

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

W tym przykładzie pokazano, jak zmieniać orientację raportu. W tym przypadku orientacja zostanie przełączona z pionowej na poziomą lub odwrotnie — w zależności od bieżącej orientacji raportu.

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
Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×