الخاصية PrtDevMode

ينطبق على

عنصر Form

عنصر Report

يمكنك استخدام الخاصية ‏PrtDevMode‏ لتعيين معلومات وضع جهاز الطباعة المحددة لأحد النماذج أو التقارير في مربع الحوار طباعة أو عرضها. Variant قراءة/كتابة.

تعبير.‏‏PrtDevMode‏

تعبير‏ Required أي تعبير يقوم بإرجاع أحد العناصر الواردة في القائمة "ينطبق على".

ملاحظات

يوصى بشدة بمراجعة عدة تطوير برامج Win32 للاطلاع على الوثائق الكاملة حول خصائص ‏PrtDevMode‏ و‏PrtDevNames‏ و‏PrtMip‏.

إعداد الخاصية PrtDevMode هو بنية مكونة من 94 بايت تعكس بنية DEVMODE المعرفة في عدة تطوير برامج Win32. للحصول على معلومات كاملة حول أعضاء خاصية PrtDevMode، الرجاء مراجعة عدة تطوير برامج Win32.

تستخدم خاصية PrtDevMode الأعضاء التالية.

العضو

الوصف

DeviceName

عبارة عن سلسلة مكونة من 32 بايت كحد أقصى، وتعمل على تحديد اسم الجهاز الذي يدعمه برنامج التشغيل، على سبيل المثال "HP LaserJet IIISi" إذا كانت الطابعة المحددة هي "Hewlett-Packard LaserJet IIISi". فلكل برنامج تشغيل طابعة سلسلة فريدة.

SpecVersion

عبارة عن عدد صحيح يحدد رقم إصدار بنية DEVMODE في عدة تطوير برامج Win32.

DriverVersion

عبارة عن عدد صحيح يحدد رقم إصدار برنامج تشغيل الطابعة التي قام بتعيينها مطور برنامج تشغيل الطابعة.

Size

عبارة عن عدد صحيح يحدد حجم بنية DEVMODE بالبايت. (لا تتضمن هذه القيمة العضو الاختياري dmDriverData للبيانات الخاصة بالجهاز، التي يمكنها اتباع هذه البنية.) إذا كان أحد التطبيقات يعالج جزء البيانات الخاص ببرنامج التشغيل وحده، فيمكنك استخدام هذا العضو لمعرفة طول البنية دون الحاجة إلى حساب الإصدارات المختلفة.

DriverExtra

عبارة عن عدد صحيح يحدد الحجم بالبايت للعضو الاختياري dmDriverData للبيانات الخاصة بالجهاز، التي يمكنها اتباع هذه البنية. في حالة عدم استخدام التطبيق لمعلومات خاصة بالجهاز، قم بتعيين هذا العضو على القيمة 0.

Fields

عبارة عن قيمة ‏Long تحدد أي الأعضاء المتبقية في بنية DEVMODE تمت تهيئته.

Orientation

عبارة عن عدد صحيح يحدد اتجاه الورقة. يمكن أن يكون 1 (عمودي) أو 2 (أفقي).

PaperSize

عبارة عن عدد صحيح يحدد حجم الورقة التي سيتم الطباعة عليها. إذا قمت بتعيين هذا العضو إلى القيمة 0 أو 256، فسيتم تحديد طول الورقة وعرضها بالعضوين PaperLength وPaperWidth على التوالي. بخلاف ذلك، يمكنك تعيين العضو PaperSize إلى قيمة سبق تحديدها.

PaperLength

عبارة عن عدد صحيح يحدد طول الورق بوحدات من 1 إلى 10 مليمتر. يتجاوز هذا العضو طول الورق المحدد بواسطة العضو PaperSize إلى أحجام صفحات مخصصة لأجهزة مثل الطابعات النقطية التي يمكنها الطباعة على مجموعة متنوعة من أحجام الورق.

PaperWidth

عبارة عن عدد صحيح يحدد عرض الورق بوحدات من 1 إلى 10 مليمتر. يتجاوز هذا العضو عرض الورقة المحدد بواسطة العضو PaperSize.

Scale

عبارة عن عدد صحيح يحدد العامل الذي سيتم من خلاله قياس المواد المطبوعة. يتم قياس حجم الصفحة الظاهر من حجم الصفحة الفعلي بعامل مقياس‏‏‏/100. على سبيل المثال، قد تحتوي ورقة بقياس 8.5 في 11 بوصة (حجم ورقة letter) وقيمة Scale تساوي 50 على نفس عدد البيانات في صفحة بقياس 17 في 22 بوصة لأن ارتفاع النص والرسومات الناتجة وعرضها سيكون نصف ارتفاعها وعرضها الأصلي.

Copies

عبارة عن عدد صحيح يحدد عدد النسخ المطبوعة إذا كان جهاز الطباعة يدعم نسخ متعددة الصفحات.

DefaultSource

عبارة عن عدد صحيح يحدد السلة الافتراضية التي ستقوم بإمداد الورق.

PrintQuality

عبارة عن عدد صحيح يحدد دقة الطابعة. القيم هي-4 (مرتفعة) و–3 (متوسطة) و–2 (منخفضة) و–1 (مسودة).

Color

عبارة عن عدد صحيح. يحدد هذا العدد في الطابعة بالألوان ما إذا كان الناتج قد تمت طباعته بالألوان. القيم هي 1 (لون) و2 (أحادي اللون).

Duplex

عبارة عن عدد صحيح. يحدد هذا العدد ما إذا كان الناتج قد تمت طباعته على وجهي الورقة بالنسبة للطابعات التي يمكنها القيام بالطباعة المزدوجة. القيم هي 1 (أحادي) و2 (أفقي) و3 (عمودي).

YResolution

عبارة عن عدد صحيح يحدد الدقة-ص للطابعة بواسطة عدد النقاط في البوصة (dpi). في حالة تهيئة الطابعة لهذا العضو، فسيحدد العضو PrintQuality الدقة-س للطابعة بواسطة عدد النقاط في البوصة.

TTOption

عبارة عن عدد صحيح يحدد كيفية طباعة خطوط TrueType.

Collate

عبارة عن عدد صحيح يحدد ما إذا كان يجب استخدام الترتيب عند طباعة عدة نسخ. يوفر استخدام النسخ غير المرتبة ناتج بشكل أسرع وأكثر فعالية حيث يتم إرسال البيانات إلى الطابعة مرة واحدة فقط.

FormName

عبارة عن سلسلة تحتوي على 16 حرفاً كحد أقصى لتحديد حجم الورقة الذي سيتم استخدامه، على سبيل المثال، "Letter" أو "Legal".

Pad

عبارة عن قيمة ‏Long‏‏ يتم استخدامها لإكمال المسافات أو الأحرف أو القيم للإصدارات القادمة.

Bits

عبارة عن قيمة ‏Long‏ تحدد دقة اللون لجهاز العرض بوحدات البت في كل بكسل.

PW

عبارة عن قيمة ‏Long‏ تحدد عرض سطح الجهاز المرئي (الشاشة أو الطابعة) بالبكسل.

PH

عبارة عن قيمة ‏Long‏ تحدد ارتفاع سطح الجهاز المرئي (الشاشة أو الطابعة) بالبكسل.

DFI

عبارة عن قيمة ‏Long‏ تحدد وضع العرض للجهاز.

DFR

عبارة عن قيمة ‏Long‏ تحدد معدل تكرار جهاز العرض في وضع معين بالهرتز (عدد الدورات في الثانية).


ملاحظة: يمكنك تعيين الخاصية ‏PrtDevMode‏ باستخدام التعليمة البرمجية

يتم تعيين إعداد هذه الخاصية على قراءة/كتابة في طريقة عرض "التصميم"، والقراءة فقط في طرق العرض الأخرى.

يمكن لبرامج تشغيل الطابعات إضافة بيانات خاصة بالأجهزة مباشرة بعد 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 * 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

يوضح المثال التالي كيفية تغيير اتجاه التقرير. يقوم هذا المثال بتبديل الاتجاه من عمودي إلى أفقي أو من أفقي إلى عمودي حسب الاتجاه الحالي للتقرير.

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
تعزيز مهارات Office
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider

هل كانت المعلومات مفيدة؟

نشكرك على ملاحظاتك!

شكراً لك على الملاحظات! يبدو أنه من المفيد إيصالك بأحد وكلاء دعم Office لدينا.

×