共用方式為


3270 列印問題

3270 資料流程不是針對比例字型所設計。 這可能會導致某些列印工作發生問題,導致字元重迭。 [列印伺服器屬性] 頁面的進階設定可讓您設定主機列印服務,以使用不同的定位字元方法。

表單摘要的問題

主機列印服務常見的問題之一是 (FF) 的額外或遺漏表單摘要。 其中一些問題牽涉到 SNA 列印處理明確表單摘要的方式。 其他問題與使用每頁的行數取代 FF 字元有關,造成分頁符號 (表單摘要) 。

當主機列印服務在主機資料流程中收到 FF 字元 ('0x0C') 時,它會保留此字元,直到收到其他資料為止,控制程式代碼 (SCS 或 3270 訂單) 或可列印的字元。 如果收到其他資料,則會將 FF 傳送至印表機,並處理其他資料。 如果未收到進一步的資料,表示我們在作業結束時,就會卸載 FF。 此時,SNA 列印會針對不使用 PDT 或EndDocPrinter的會話呼叫EndDoc來完成未完成的作業,以用於使用 PDT 的會話。 呼叫 EndDoc 時,會將 FF 新增至作業的結尾。 呼叫 EndDocPrinter 時,不會新增 FF。 在此情況下,SNA Print 是否會在作業結尾新增 FF,取決於 PDT 中設定END_JOB參數的方式。 使用 PDT 的替代方法是變更 Windows Printer 屬性中列印處理器的預設資料類型。 如果預設資料類型設定為 RAW [auto FF],則列印驅動程式會檢查 FF 是否存在,並視需要新增一個。

使用 PDT 時,可能會強制 SNA 列印不會卸載最終的 FF。 這需要將登錄專案 FlushFF 新增並設定為 TRUE。

FlushFF:  REG_SZ   
   HKEY_LOCAL_MACHINE  
     SYSTEM  
       CurrentControlSet  
          Services  
             SnaPrint  
               Parameters  
  
作業結束時的 FF PDT 已新增 FF 結束結果
No Yes FF
No No Yes FF
Yes No (取決於 PDT)
No No (取決於 PDT)

許多較舊的主機列印工作依賴每頁的行數來判斷分頁符號。 例如,作業會在每個頁面上使用 66 行,因此在文字後面新增足夠的空白行,讓行總數帶入 66,再開始下一頁的文字。 如果有 30 行的文字,則會在預定下一頁的文字之前新增 36 個空白行。 此方法的缺點是取決於印表機的可列印範圍、每英吋的線條、每頁的線條,以及為作業設定的上邊界。 如果預設只有 65 行符合每頁,產生的列印輸出會顯示「頁面 creep」,其中最後一個空白行會推送至下一頁頂端,然後將兩行推送至第三頁頂端,依此類推。 您可以在 PDT 檔案內修正這個「頁面擷取」,方法是將START_JOB參數設定為零,而每頁的行數設定為 66。 此外,印表機會話屬性應該將每英吋的線條設定為 6。

例如,使用 HP PCL 的印表機,下列專案會新增至 PDF:

在宏區段中:

TOP    EQU 1B 26 6C 30 45    /* Top Margin set to 0 */  
STL    EQU 1B 26 6C 36 36 46        /* Set Text Length to 66 */  
  

針對 [開始作業]

START_JOB = TOP0 STL  
  

主機列印服務的設計目的是在符合下列任一條件時,執行 FF (FF) 包含在 LU 3 列印工作中的表單摘要:

  • 如果在 3270 Erase/Write 或 Erase/Write Alternate 命令中,將 FF 插入為 WCC 之後的第一個字元。

  • 如果 FF 位於有效的 NL 之後, (新行) 順序。

  • 如果 FF 位於任何列印行的最後一個可列印字元位置之後。

    登錄專案可供使用,可強制主機列印服務接受 LU 3 列印工作中的所有表單摘要字元,即使它們不符合上述條件也一樣。 若要新增這個專案,請使用 Regedit.exe 尋找下列索引鍵:

HKEY_LOCAL_MACHINE  
   SYSTEM  
    CurrentControlSet  
      Services  
        SnaPrint  
          Parameters  
  

將下列專案新增至此機碼:

Value Name:    
Data Type:    
String:    

DoAllLU3FF 應該設定為 TRUE。 系統會檢查此登錄專案是否存在。 針對字串輸入的任何值都會啟用這項功能。