IBM i 的 APPC 列印
APPC 列印,例如 LU 1 列印,會在數據流中使用 SCS 控制程式代碼。 APPC 列印中可使用的SCS控制程式碼集更為廣泛,而且允許比 LU 1 列印所描述的集合更多的格式設定選項。 IBM i 也提供額外的方法來格式化稱為主機列印轉換 (HPT) 。 啟用 HPT 後,IBM i 負責將列印作業轉譯成印表機可以了解的數據。
下圖顯示 IBM i 和主機整合伺服器之間的 APPC 連線,以便將印表作業傳送至本機印表機:
主機印轉換 (HPT)
當主機使用 SCS 控制件代碼來格式化列印輸出時,列印模擬器會將 SCS 代碼和字元轉譯成印表機可以使用 Windows 印表機驅動程式和 Windows 印印系統了解的數據。 啟用 HPT 後,IBM i 會將數據轉換成印表機控制代碼,再將數據傳送至主機整合伺服器。 離開IBM i之後,主機的這個輸出不需要進一步處理。 列印模擬器的唯一責任是將數據提交至印表機。
HPT 會在列印會話的裝置描述中於IBM i上啟用。 啟用 HPT 時,會使用 SCS 控制程式碼 '0x03',在標示為 ASCII 透明 (ATRN) 區段中,將預先轉譯的列印作業傳送至主機整合伺服器。 ATRN 控制程式代碼提供與 LU 1 列印一節中詳述的透明 (TRN) 控制項程式代碼相同的函式。 ATRN 表示數據是 ASCII,應該以透明方式處理,而不是從 EBCDIC 轉換為 ASCII。
使用預設的 5224 印表裝置啟用主機轉換功能
停止與列印裝置相關聯的列印寫入器。
與列印裝置不同。
發出下列命令:
chgdevprt devd(<print device>) transform(*YES) mfrtypmdl(<LAN printer type>)
常見的 LAN 印表機類型包括:*HP4、*HPHP、*HPII、*IBM4039。 若要查看可用選項的完整清單,請在 MFRTYPMDL 參數上提示 (F4) 。
列印裝置上會有所不同。
啟動列印寫入器。
如需主機列印轉換功能的詳細資訊,請參閱「IBM i Printer 裝置程式設計」手冊 (SC41-3713) ,或「IBM i Printing IV」redbook (GG24-4389) 。 這兩者皆可從IBM取得。
SCS 程式代碼
SCS 控制件代碼完整記載於 IBM 主機列印指南 中, (檔編號 SC31-7145) 。 所有 SCS 控制件代碼都落在 『0x00』–'0x3F 的範圍內。 這些代碼的範圍從單一位元組程序代碼,例如下標 '0x38' 到多個字節代碼,後面接著數個參數,例如設定水準格式 '0x2BC1...'
下列清單包含一些常用的SCS控制程式代碼:
注意
在 SCS 控制件程式代碼中,[L] 等於長度,而 (Abv) 代表一位元節參數。
ASCII 透明度 (ATRN) — '0x03[L] (P1) (。.) (Pn) '
此 SCS 控制件程式代碼表示未掃描 SCS 代碼但未觸控到列印輸出的數據區段。 此外,此控件程式代碼表示數據是 ASCII。 數據區段的範圍是由長度位元組表示。 使用 HPT 作業時,長度位元組通常為「0xFF」。
範例
030441424344
03 — ATRN
04 — 長度為 4
41424344 — ABCD 的 ASCII 十六進位值
SCS 控制件程式代碼格式化 (非 HPT)
如果在列印會話的 [裝置描述] 中停用 HPT,SCS 控件代碼將用於列印作業的格式設定。 APPC 列印也支援先前針對 LU 1 列印詳述的 SCS 控件代碼、SHF、SVF、SLD 和 SPD。 APPC 列印中常用的是 SCS 控制程式程式代碼簡報位置 (PP) '0x34'。 此控制程式程式碼允許水準或垂直移動列印位置,相對於上一個位置或絕對位置。
下表列出簡報位置 SCS 控制件程式代碼的四種形式:
簡報位置 SCS 控制件程式代碼 | Description |
---|---|
絕對水平簡報位置 (AHPP) '0x34C0 (nn) ' | nn — 要設定列印位置的數據行編號。 範例 34C00F 34C0 - AHPP 0F — 欄號 15 |
相對水平簡報位置 (RHPP) '0x34C8 (nn) ' | nn — 要從目前列印位置移動的數據行數目。 範例 34C80F 34C8 — RHPP 0F - 15 個數據行 |
絕對垂直簡報位置 (AVPP) '0x34C4 (nn) ' | nn — 要設定列印位置的行號。 範例 34C40F 34C4 — AVPP 0F - 行號 15 |
相對垂直簡報位置 (RVPP) '0x344C (nn) ' | nn — 要從目前列印位置移動的行數。 範例 344C0F 344C — RVPP 0F - 15 行 |
範例主機數據
下列範例顯示來自主機的範例數據,以及數據的說明和產生的印印輸出:
2BC10684 01840542 2BC20642 04420A21
34C404 C1C2C3C4 344C01 34C004 E6E7E8E9
下表顯示資料所產生的列印輸出,其中ABCD位於最上層列印線,而WXYZ縮排在下一行:
資料 | 解譯 |
---|---|
2BC1068401840542 | SHF,每行 132 個字元,LM 1,RM 132 |
2BC2064204420A21 | SVF,每頁 66 行,TM 4,BM 66 |
34C404 | AVPP 會將列印位置設定為第 4 行 |
C1C2C3C4 | ABCD 的 EBCDIC 十六進位值 |
344C01 | RVPP 會將列印位置設定為向下一行 |
34C004 | AHPP 會將列印位置設定為第 4 欄 |
E6E7E8E9 | WXYZ 的 EBCDIC 十六進位值 |