印表機功能屬性
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
印表機功能屬性是 一般列印屬性 ,可指定會影響所有紙張大小和方向的印表機特性,例如頁面邊界、旋轉和文字列印功能。
Attribute name | 屬性參數 | 註解 |
---|---|---|
MemoryUsage | 常數清單,指出儲存在印表機記憶體中的數據類型。 可以是一或多個:字型點陣向量。 如果印表機列出數據類型,但不支援,則會予以忽略。 | 選擇性。 如果未指定,預設值為 LIST(FONT、RASTER、VECTOR)。 如需詳細資訊,請參閱 描述印表機記憶體組態。 |
OEMCustomData | 在呼叫 IPrintOemDriverUni::D rvGetGPDData 時,要提供給轉譯外掛程式的引號文字字串。 | 如果轉譯外掛程式呼叫 IPrintOemDriverUni::D rvGetGPDData,則為必要專案。 文字字串內容的解譯取決於轉譯外掛程式。 這個屬性是可重新放置的全域屬性;它可能會放在根層級(請參閱 僅限根層級的屬性),表示它與列印機組態沒有相依性,或者如果有些相依性,它可能會與 Option 或 Case 建構一起出現。 |
OutputOrderReversed? | TRUE 或 FALSE,指出多頁檔是否從最後一頁排序到第一頁。 | 選擇性。 如果未指定,預設值為 FALSE。 EXTERN_GLOBAL符號不應該與 OutputOrderReversed 搭配使用? |
ReselectFont | 常數清單,指出 Unidrv 必須重新選取目前字型之後的作業。 可以開啟下列命令:AFTER_GRXDATA - 在任何 CmdSendXxxxData 點陣數據發射命令之後。 AFTER_XMOVE - 在任何 x 移動 游標命令之後。 AFTER_FF - 在 CmdFF 命令之後。 | 選擇性。 如果未指定,Unidrv 不會重新選取字型。 |
ReverseBandOrderForEvenPages? | TRUE 或 FALSE,表示是否啟用反向帶狀。 這個屬性可用來支援具有 autoduplex 功能的印表機;也就是說,能夠在紙張兩側列印的印表機。 下表後面的章節包含詳細資訊。 | 此屬性的預設值為 FALSE。 將此屬性設定為 TRUE 可啟用反向帶狀順序。 這個屬性是可重新放置的全域屬性。 它可能會放在根層級(請參閱 僅限根層級的屬性),表示它與列印機組態沒有相依性,或者如果有些相依性,它可能會與 Option 或 Case 建構一起出現。 |
RotateCoordinate? | TRUE 或 FALSE,表示印表機是否支援命令來旋轉座標系統以符合頁面方向。 | 選擇性。 如果未指定,預設值為 FALSE。 如果 為 TRUE,方向功能的選項項目必須指定印表機命令。 無法放在 Case 專案中。 |
RotateFont? | TRUE 或 FALSE,指出印表機是否自動旋轉字型以符合頁面方向。 | 選擇性。 如果未指定,預設值為 FALSE。 如果 為 TRUE,則 RotateCoordinate? 也必須是 TRUE。 無法放在 Case 專案中。 |
RotateRaster? | TRUE 或 FALSE,指出印表機是否自動旋轉點陣數據以符合頁面方向。 | 選擇性。 如果未指定,預設值為 FALSE。 如果 為 TRUE,則 RotateCoordinate? 也必須是 TRUE。 無法放在 Case 專案中。 |
TextCaps | 常數清單,指出印表機的文字功能。 可以包含 GetDeviceCaps 中所述的一或多個TC_xxx旗標。 | 選擇性。 如果未指定,Unidrv 會假設不支援任何文字功能。 |
ReverseBandOrderForEvenPages 的其他資訊?
Autoduplex 功能的副作用是,列印的頁面底部邊緣會送回印表機,成為下一頁的上邊緣。 若要維持第二頁相對於第一頁的方向,第二頁的點陣影像必須以反向順序傳送至列印機。 換句話說,如果印表機先傳送頂端掃描行來列印前方,它必須先列印後端底端掃描行。
當 ReverseBandOrderForEvenPages? 為 TRUE 且雙工開啟時,Unidrv 會以偶數頁的反向順序列舉每個頻帶(奇數頁的後側)。 OEM 轉譯外掛程式在傳送至印表機之前,只需要快取一個數據帶。 每個訊帶內的掃描線順序不會反轉,因此外掛程式仍必須處理該工作,而且也必須反轉每個掃描行內的位順序。 雖然這是外掛程式的額外工作,但優點是外掛程式不需要快取任何點陣數據,而且可以立即開始將數據傳送至印表機。
只有當雙工設定為 「Flip on Long Edge」 時,才會評估 ReverseBandOrderForEvenPages? 屬性。 雙工設定為 「在 Short Edge 上翻轉」時,會忽略這個屬性。
ReverseBandOrderForEvenPages? 屬性和驅動程式模擬旋轉的值都會影響列舉帶的方式,如下表所示。 當 ReverseBandOrderForEvenPages? 為 TRUE 時,會套用以 TRUE 開頭的數據行中指定的帶列舉順序,並選取雙工,而要列印的頁面是第二個(或後方)。 否則會套用以 FALSE 開頭的數據行。
驅動程式模擬旋轉 | TRUE 和偶數頁面 | FALSE 或奇數頁面 |
---|---|---|
CCW_ROTATE90 | SW_LTOR | SW_RTOL |
CCW_ROTATE270 | SW_RTOL | SW_LTOR |
無旋轉 | SW_UP | SW_DOWN |
圖例:SW_LTOR = 由左至右,SW_RTOL = 由右至左,SW_UP = 由下至上,SW_DOWN = 由上至下。
OEM 轉譯外掛程式可以在不使用 ReverseBandOrderForEvenPages? 屬性的情況下支援自動duplexing。 外掛程式可以快取整個頁面的所有數據,並將其傳送至印表機,從底端掃描行開始。 該掃描行以及該頁面上的所有其他項目都必須以反向順序傳送。
OEM 轉譯外掛程式負責使用每個掃描行來反轉位的順序,以及將數據傳送至印表機時,每個頻帶的掃描行順序。 若要判斷何時必須這麼做,您可以使用索引SVI_PAGENUMBER呼叫 IPrintOemDriverUni::D rvGetStandardVariable 來取得 PageNumber 標準變數的值。 如果頁碼為奇數,則不需要反轉。 如果已選取數位偶數,而且已選取雙工,則需要反轉。