Застосовується до
Access для Microsoft 365 Access 2021 Access 2019 Access 2016

Стосується

Об’єкт Form

Об’єкт Report

За допомогою властивості PrtDevMode можна задати або повернути дані про режим пристрою друку, указані для форми або звіту в діалоговому вікні Друк. Variant (читання та записування).

вираз.PrtDevMode

expression — обов’язковий аргумент. Вираз, який повертає один з об'єктів у списку "Застосовується до".

Примітки

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

Властивість PrtDevMode – це 94-байтна структура, яка віддзеркалює структуру DEVMODE, визначену в пакеті розробки Win32. Щоб отримати повну інформацію про членів властивості PrtDevMode , див. пакет Win32 Software Development Kit.

Нижче наведено елементи властивості PrtDevMode.

Елемент

Опис

DeviceName

Рядок розміром не більше 32 байти, який указує ім’я підтримуваного драйвером пристрою (наприклад, HP LaserJet IIISi, якщо вибрано принтер Hewlett-Packard LaserJet IIISi). Рядок кожного драйвера унікальний.

SpecVersion

Ціле число, яке вказує номер версії структури DEVMODE у пакеті інструментів розробки Win32.

DriverVersion

Ціле число, яке вказує версію драйвера принтера, визначену розробником цього драйвера.

Size

Ціле число, яке вказує розмір структури DEVMODE у байтах. (Це значення не включає необов’язковий елемент dmDriverData даних пристрою, які можуть мати таку ж структуру). Якщо програма використовує лише незалежні від драйвера дані, за допомогою цього елемента можна визначити довжину структури, не враховуючи різні версії.

DriverExtra

Ціле число, яке вказує розмір (у байтах) необов’язкового елемента dmDriverData даних пристрою, які можуть мати таку ж структуру. Якщо програма не використовує дані пристрою, задайте цьому елементу значення 0

Fields

Довге значення, яке вказує, які з елементів структури DEVMODE, що залишилися, ініціалізовано.

Orientation

Ціле число, яке визначає орієнтацію паперу. Доступні значення: 1 (книжкова) або 2 (альбомна).

PaperSize

Ціле число, яке визначає розмір паперу для друку. Якщо задати значення в діапазоні від 0 до 256, довжина й ширина аркуша визначаються на основі елементів PaperLength і PaperWidth відповідно. В іншому разі ви можете задати елементу PaperSize стандартне значення.

PaperLength

Ціле число, яке визначає довжину паперу, використовуючи крок в 1/10 міліметра. Цей елемент перевизначає вказану в елементі PaperSize спеціальну довжину паперу або довжину паперу для пристроїв (наприклад, матричних принтерів), які можуть друкувати на папері різних розмірів.

PaperWidth

Ціле число, яке визначає ширину паперу, використовуючи крок в 1/10 міліметра. Цей елемент перевизначає ширину паперу, указану в елементі PaperSize.

Scale

Ціле число, яке визначає коефіцієнт, на основі якого змінюватиметься розмір друкованого вмісту. Видимий розмір сторінки розраховується на основі її фізичного розміру, помноженого на значення масштабу, розділеного на 100. Наприклад, на аркуші паперу розміром 216 x 279 мм (Letter) зі значенням масштабу 50 може вміститися стільки ж даних, як і на сторінці розміром 432 x 559 мм, тому що розмір вихідного тексту й графічних об’єктів у два рази менший від оригінальної довжини й ширини.

Copies

Ціле число, яке визначає кількість копій, які друкуються, якщо пристрій друку підтримує багатосторонні копії.

DefaultSource

Ціле число, яке визначає стандартний лоток, з якого подається папір.

PrintQuality

Ціле число, яке задає роздільну здатність принтера. Доступні значення: 4 (висока), 3 (середня), 2 (низька) і 1 (якість чернетки).

Color

Ціле число. Якщо використовується кольоровий принтер, визначає, чи потрібно друкувати вміст у кольорі. Доступні значення: 1 (колір) і 2 (чорно-білий).

Duplex

Ціле число. Якщо використовується принтер, що підтримує двобічний друк, визначає, чи потрібно друкувати вміст на обох сторонах аркуша паперу. Доступні значення: 1 (симплексний), 2 (горизонтальний) і 3 (вертикальний).

YResolution

Ціле число, яке визначає роздільну здатність площини Y принтера в точках на дюйм. Якщо принтер ініціалізує цей елемент, PrintQuality визначає роздільну здатність площини X принтера в точках на дюйм.

TTOption

Ціле число, яке визначає спосіб друку шрифтів TrueType.

Collate

Ціле число, яке визначає, чи слід використовувати параметри сортування під час друку кількох копій. Якщо не використовувати їх, вміст друкується швидше та якісніше, тому що дані надсилаються на принтер лише один раз.

FormName

Рядок, розміром щонайбільше 16 символів, що визначає розмір паперу, який слід використовувати (наприклад, Letter або Legal).

Pad

Довге значення, яке дає змогу збільшити пробіли, символи або значення майбутніх версій.

Bits

Довге значення, яке визначає глибину кольору (у бітах на піксель) пристрою відображення.

PW

Довге значення, яке визначає ширину (у пікселях) видимої поверхні пристрою (екрана або пристрою).

PH

Довге значення, яке визначає висоту (у пікселях) видимої поверхні пристрою (екрана або пристрою).

DFI

Довге значення, яке визначає режим відображення пристрою.

DFR

Довге значення, яке визначає частоту (у Гц) пристрою відображення в певному режимі.

Примітка.: Властивість PrtDevMode можна встановити за допомогою коду Visual Basic for Applications (VBA).

У режимі конструктора або розмітки ця властивість доступна для читання та записування, а в інших поданнях – лише для читання.

Драйвери можуть додавати дані про пристрій відразу після 94-байтної структури DEVMODE. Тому важливо, щоб розмір указаних вище даних DEVMODE не перевищував 94 байти.

Лише драйвери принтерів, які експортують функцію ExtDeviceMode, використовують структуру DEVMODE.

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

Перш ніж задавати значення елемента TTOption, програми мають визначити, чи підтримує драйвер принтера шрифти TrueType. Для цього потрібно викликати функцію DeviceCapabilities, задавши значення DC_TRUETYPE.

Приклад

У прикладі нижче властивість 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

Потрібна додаткова довідка?

Потрібні додаткові параметри?

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