列印 DEVMODE 結構體 簡述

來源:互聯網
上載者:User
 DEVMODE結構具有如下形式:
typedef struct _devicemode
{ /* dvmd */
  TCHAR  dmDeviceName[32];
  WORD   dmSpecVersion;
  WORD   dmDriverVersion;
  WORD   dmSize;
  WORD   dmDriverExtra;
  DWORD  dmFields;
  short  dmOrientation;
  short  dmPaperSize;
  short  dmPaperLength;
  short  dmPaperWidth;
  short  dmScale;
  short  dmCopies;
  short  dmDefaultSource;
  short  dmPrintQuality;
  short  dmColor;
  short  dmDuplex;
  short  dmYResolution;
  short  dmTTOption;
  short  dmCollate;
  TCHAR  dmFormName[32];
  WORD   dmUnusedPadding;
  USHORT dmBitsPerPel;
  DWORD  dmPelsWidth;
  DWORD  dmPelsHeight;
  DWORD  dmDisplayFlags;
  DWORD  dmDisplayFrequency;
} DEVMODE;

DEVMODE資料結構中包含了有關裝置初始化和印表機環境的資訊。

成員:

dmDeviceName 指定了驅動程式支援的裝置名稱;例如,對於PCL/HP LaserJet系列,會是CL/HP雷射印表機。這個字串在裝置驅動程式之間是相互不同的。
dmSpecVersion 指定了初始化資料的版本數字,這個結構就基於這些資料。
dmDriverVersion 指定了印表機驅動程式開發商分配的印表機驅動程式版本號碼。
dmSize 指定了DEVMODE結構的大小,以位元組為單位,不包括dmDriverData(與裝置有關)成員。如果應用程式僅操作資料中與驅動程式無關的部分,它就可以使用這個成員以確定該結構的長度,而並不需要有不同版本的記錄。
dmDriverExtra 包含了這個結構後面的私人驅動程式資料的數目,以位元組為單位。如果裝置驅動程式不使用該裝置專屬的資訊,就把這個成員設為零。
dmFields 指定了DEVMODE結構的其餘成員中哪些已被初始化。第0位(定義為DM)ORIENTATION)代表dmOrientation,第1位(定義為DM_PAPERSIZE)代表dmPaperSize等等。印表機驅動出現僅支援那些適合列印技術的成員。
dmOrientation 選擇紙的方向。這個成員可以為DMORIENT_PORTRAIT(1)或DMORIENT_ LANDSCAPE(2)。
dmPaperSize 選擇將用於列印的紙張大小。如果紙張的長度和寬度都用dmPaperLength和dmPaperWidth成員來設定的話,這個成員可以被設為0。否則,dwPaperSize成員可以被設為以下值之一:

DMPAPER_LETTER letter, 8 1/2×1 英寸
MPAPER_LEGAL Legal, 8 1/2×14 英寸
DMPAPER_A4 A4 letter, 210×297 毫米
DMPAPER_CSHEET C letter, 17×22 英寸
DMPAPER_DSHEET D letter, 22×34 英寸
DMPAPER_ESHEET E letter, 34×44 英寸
DMPAPER_LETTERSMALL letter small, 8 1/2×11 英寸
DMPAPER_TABLOID Tabloid, 11×17 英寸
DMPAPER_LEDGER Ledger, 17×11 英寸
DMPAPER_STATEMENT Statement, 5 1/2×8 1/2 英寸
DMPAPER_EXECUTIVE Executive, 7 1/4×10 1/2 英寸
DMPAPER_A3 A3 Sheet, 297×420 毫米
DMPAPER_A4SMALL A4 Small Sheet, 210×297 毫米
DMPAPER_A5 A5 Sheet, 148×210 毫米
DMPAPER_B4 B4 Sheet, 250×354 毫米
DMPAPER_B5 B5 Sheet, 182×257 毫米
DMPAPER_FOLIO Folio, 8 1/2×13 英寸
DMPAPER_QUARTO Quarto, 215×275 毫米
DMPAPER_10X14 10×14 英寸
DMPAPER_11X17 11×17 英寸
DMPAPER_NOTE Note, 8 1/2×11 英寸
DMPAPER_ENV_9 #9 EnVelope, 3 7/8×8 7/8 英寸
DMPAPER_ENV_10 #10 EnVelope, 4 1/8×9 1/2 英寸
DMPAPER_ENV_11 #11 EnVelope, 4 1/2×10 3/8 英寸
DMPAPER_ENV_12 #12 EnVelope, 4 3/4×11 英寸
DMPAPER_ENV_14 #14 EnVelope, 5×11 1/2 英寸
DMPAPER_ENV_DL DL EnVelope, 110×220 毫米
DMPAPER_ENV_C5 C5 EnVelope, 162×229 毫米
DMPAPER_ENV_C3 C3 EnVelope, 324×458 毫米
DMPAPER_ENV_C4 C4 EnVelope, 229×324 毫米
DMPAPER_ENV_C6 C6 EnVelope, 114×162 毫米
DMPAPER_ENV_C65 C65 EnVelope, 114×229 毫米
DMPAPER_ENV_B4 B4 EnVelope, 250×353 毫米
DMPAPER_ENV_B5 B5 EnVelope, 176×250 毫米
DMPAPER_ENV_B6 B6 EnVelope, 176×125 毫米
DMPAPER_ENV_ITALY Italy EnVelope, 110×230 毫米
DMPAPER_ENV_MONARCH Monarch EnVelope, 3 7/8×7 1/2 英寸
DMPAPER_ENV_PERSONAL 6 3/4 EnVelope, 3 5/8×6 1/2 英寸
DMPAPER_FANFOLD_US US Std Fanfold, 14 7/8×11 英寸
DMPAPER_FANFOLD_STD_GERMAN German Std Fanfold, 8 1/2×12 英寸
DMPAPER_FANFOLD_LGL_GERMAN German Legal Fanfold, 8 1/2×13 英寸

dmPaperLength 重定義由dmPaperSize成員指定的紙張長度,可用於自訂紙張大小,也可以用於點陣印表機,這種印表機能打出任意長度的紙張。這些值與這個結構中其他指定物理長度的值都是以0.1毫米為單位的。
dmPaperWidth 重載由dmPaperSize成員指定的紙張寬度。
dmScale 指定了列印輸出的縮放因子。實際的頁面大小為物理紙張的大小乘以dmScale/100。例如,對於信紙大小的紙張,如果dmScale的值為50,它將可以容納相當於17×22英寸頁面的內容,因為輸出的文本和圖形的寬、高都將是原始大小的一半。
dmCopies 如果裝置支援多頁拷貝,則選擇了要列印的拷貝數目。
dmDefaultSource 保留,必須為0。
dmPrintQuality 指定了印表機的解析度。有四種預定義的與裝置無關的值:
DMRES_HIGH
DMRES_MEDIUM
DMRES_LOW
DMRES_DRAFT
如果給定了一個正值,它就指定了每英寸列印的點數(DPI),因此是與裝置有關的。
dmColor 對於彩色印表機,在彩色和單色之間切換。下面是可能的取值:
·DMCOLOR_COLOR
·DMCOLOR_MONOCHROME
dmDuplex 為支援雙面列印的印表機選擇雙面列印方式。可能的取值如下:
·DMDUP_SIMPLEX
·DMDUP_HORIZONTAL
·DMDUP_VERTICAL
dmYResolution 指定了印表機在y方向的解析度,以每英寸的點數為單位。如果印表機對該成員進行了初始化,dmPrintQuality成員指定了印表機在x方向的解析度,以DPI為單位。
dmTTOption 指明如何列印TrueType字型。這個成員可以取如下值之一:

· DMTT_BITMAP 把TrueType字型作為圖形列印。這是點陣印表機的預設動作。
· DMTT_DOWNLOAD 將TrueType字型作為可下載字型下載。這是使用Printer Control Language(PCL)的惠普印表機的預設動作。
· DMTT_SUBDEV 用TrueType字型替代裝置字型。這是PostScript系列印表機的預設動作。

dmCollate 指定在列印多份拷貝的時候是否使用校對。使用DMCOLLATE_FALSE後能夠得到更快更有效輸出,因為不管要列印多少份拷貝,只向印表機傳送一次資料。印表機僅被通知再列印一頁。這個成員可以是下列值之一:

· DMCOLLATE_TRUE 當列印多份拷貝時進行校對。
· DMCOLLATE_FALSE 當列印多份拷貝時不進行校對。

dmFormName 指定了要使用的格式名字。例如,Letter或Legal。這些名字的完整集合可以通過Windows的EnumForms函數獲得。
dmUnusedPadding 用於將結構對齊到DWORD邊界。不能使用或引用這個成員。它的名字和用法是保留的,在以後的版本中可能會變化。
dmBitsPerPel 指定了顯示裝置的顏色解析度,以像素的位元為單位。例如,16色使用4位,256色使用8位,而65536色使用16位。
dmPelsWidth 指定了可見裝置表面的以像素為單位的寬度。dmPelsHeight指定了可見裝置表面的以像素為單位的高度。
dmDisplayFlags 指定了裝置的顯示模式。下面是有效標誌:

· DM_GRAYSCALE 指定顯示使用了無顏色裝置。如果沒有設定這個標誌,就假定彩色模式。
· DM_INTERLACED 指定了隔行顯示模式。如果沒有設定這個標誌,就假定非隔行模式。

dmDisplayFrequency 指定了顯示裝置的特定模式所使用的以赫茲為單位的頻率(每秒的周期數)。

注釋:
在dmDisplayMode成員後面將是一些裝置驅動程式的私人資料。以位元組為單位的私人資料數目是由dmDriverExtra成員指定的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.