Применяется к
Access для Microsoft 365 Access 2021 Access 2019 Access 2016

Применение

Объект Form

Объект Report

Свойство PrtDevMode служит для задания или возврата сведений о режиме устройства печати, указанных для формы или отчета в диалоговом окне Печать. Значение данного свойства типа Variant доступно для чтения и записи.

выражение.PrtDevMode

Выражение Обязательный. Выражение, возвращающее один из объектов в списке Применяется к.

Примечания

Настоятельно рекомендуется обратиться к пакету средств разработки Win32 для получения полной документации по свойствам PrtDevMode, PrtDevNames и PrtMip.

Значение свойства PrtDevMode представляет собой 94-байтовую структуру, которая отражает структуру DEVMODE, определенную в пакете средств разработки Win32. Исчерпывающие сведения об элементах свойства PrtDevMode можно найти в пакете средств разработки Win32.

В свойстве PrtDevMode используются следующие члены.

Член

Описание

DeviceName

Значение типа строка с максимальным размером 32 байта, которое определяет имя устройства, поддерживаемого драйвером, например "HP LaserJet IIISi", если указанным принтером является Hewlett-Packard LaserJet IIISi. Каждый драйвер принтера имеет уникальную строку.

SpecVersion

Значение типа Integer, определяющее номер версии структуры DEVMODE в пакете средств разработки Win32.

DriverVersion

Значение типа Integer, определяющее версию драйвера принтера, назначенную разработчиком драйвера принтера.

Size

Значение типа Integer, определяющее размер структуры DEVMODE в байтах. (Это значение не включает дополнительный член dmDriverData для данных конкретного устройства, которые могут следовать за этой структурой.) Если приложение обрабатывает только независимую от драйвера часть данных, этот член можно использовать для нахождения длины данной структуры без необходимости учета разных версий.

DriverExtra

Значение типа Integer, определяющее размер в байтах дополнительного члена dmDriverData для данных конкретного устройства, которые могут следовать за данной структурой. Если приложение не использует сведения, являющиеся специфическими для устройства, можно задать для этого члена значение 0.

Fields

Значение типа Long, которое определяет, какие из остальных членов структуры DEVMODE инициализированы.

Orientation

Значение типа Integer, определяющее ориентацию бумаги. Может быть равно либо 1 (книжная), либо 2 (альбомная).

PaperSize

Значение типа Integer, определяющее размер бумаги для печати. Если задать для этого члена значение 0 или 256, длина и ширина бумаги будут определяться соответственно членами PaperLength и PaperWidth. В противном случае можно задать для члена PaperSize заранее определенное значение.

PaperLength

Значение типа Integer, определяющее длину бумаги в единицах, равных 1/10 миллиметра. Этот член переопределяет длину бумаги, заданную членом PaperSize, для пользовательских размеров бумаги или для устройств, которые могут печатать на бумаге разного размера, например матричных принтеров.

PaperWidth

Значение типа Integer, определяющее ширину бумаги в единицах, равных 1/10 миллиметра. Этот член переопределяет ширину бумаги, заданную компонентом PaperSize.

Scale

Значение типа Integer, определяющее коэффициент масштабирования для результата печати. Видимый размер страницы изменяется по сравнению с физическим размером страницы путем умножения на коэффициент, равный значению Scale, деленному на 100. Например, бумага размером 215,9 х 279,4 мм (размер Letter) при значении Scale 50 будет содержать столько данных, сколько страница размером 431,8 х 558,8 мм, поскольку текст и рисунки при печати будут в два раза меньше их исходной длины и ширины.

Copies

Значение типа Integer, которое определяет количество копий, печатаемых устройством, если оно поддерживает копии, включающие несколько страниц.

DefaultSource

Значение типа Integer, определяющее лоток по умолчанию, из которого подается бумага.

PrintQuality

Значение типа Integer, определяющее разрешение принтера. Возможны следующие значения: –4 (высокое), –3 (среднее), –2 (низкое) и –1 (черновик).

Color

Значение типа Integer. Для цветных принтеров определяет необходимость печати в цвете. Возможные значения: 1 (цветная печать) и 2 (черно-белая печать).

Duplex

Значение типа Integer. Для принтера с возможностью двусторонней печати указывает, будут ли данные напечатаны на обеих сторонах бумаги. Возможные значения: 1 (односторонняя), 2 (горизонтальная) и 3 (вертикальная).

YResolution

Значение типа Integer, определяющее вертикальное разрешение принтера в точках на дюйм. Если принтер инициализирует этот член, член PrintQuality задает горизонтальное разрешение принтера в точках на дюйм.

TTOption

Значение типа Integer, определяющее способы печати шрифтов TrueType.

Collate

Значение типа Integer, определяющее, будет ли использоваться сортировка при печати нескольких копий. Использование несортированных копий ускоряет печать и повышает производительность принтера, так как данные отправляются на принтер только один раз.

FormName

Строка длиной не более 16 знаков, определяющая размер используемой бумаги, например "Letter" или "Legal".

Pad

Значение типа Long, используемое для заполнения пробелами, знаками или значениями для будущих версий.

Bits

Значение типа Long, определяющее цветовое разрешение дисплея в битах на пиксель.

PW

Значение типа Long, определяющее ширину видимой поверхности устройства (экрана или принтера) в пикселях.

PH

Значение типа Long, определяющее высоту видимой поверхности устройства (экрана или принтера) в пикселях.

DFI

Значение типа Long, определяющее режим отображения устройства.

DFR

Значение типа Long, определяющее частоту в герцах (периодах в секунду) устройства отображения в конкретном режиме.

Примечание: Свойство PrtDevMode можно задать с помощью кода Visual Basic для приложений (VBA).

Значение этого свойства доступно для чтения и записи в режимах конструктора и макета. В других режимах оно доступно только для чтения.

Драйверы принтера могут добавлять данные конкретного устройства сразу после 94 байтов структуры DEVMODE. Поэтому важно, чтобы размер упомянутых выше данных DEVMODE не превышал 94 байта.

Структуру DEVMODE используют только драйверы принтера, экспортирующие функцию ExtDeviceMode.

Приложение может извлекать размеры и наименования бумаги, поддерживаемые принтером, с помощью значений DC_PAPERS, DC_PAPERSIZE и DC_PAPERNAMES для вызова функции DeviceCapabilities.

Прежде чем задать значение члена TTOption, приложения должны определить, как драйвер принтера может использовать шрифты TrueType, с помощью значения DC_TRUETYPE для вызова функции DeviceCapabilities.

Пример

В приведенном ниже примере свойство PrtDevMode используется для проверки определяемого пользователем размера страницы отчета.

Private Type str_DEVMODE    RGB As String * 94End TypePrivate 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 LongEnd TypePublic 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 = NothingEnd Sub

В следующем примере показано, как изменить ориентацию отчета. В этом примере книжная ориентация будет меняться на альбомную или альбомная на книжную в зависимости от текущей ориентации отчета.

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 = NothingEnd Sub

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.