簡體   English   中英

在.net中的點矩陣打印機上打印

[英]print on dot matrix printer in .net

任何人都可以告訴我代碼在C#Windows應用程序中如何在點矩陣打印機上打印文檔。

您可以“圖形化”打印到點陣,這是Windows內置的,盡管速度較慢。

但是,如果只想以簡單的格式打印純文本,則需要將轉義命令發送到點矩陣打印機,這比圖形打印更快。 不同的打印機具有不同的轉義命令。

以下是典型的轉義命令(用於epson): http : //www.printfil.com/manualen/c5.htm

這可能會有所幫助: https : //web.archive.org/web/20051212193242/http : //sacpcug.org : 80/archives/0306/prc0603.html

然后在VB6中我要做的是打印到“ 通用/純文本”打印機,打開PRN或LPT1作為文件句柄,然后在文件句柄上打印轉義命令,所有轉義命令將被重定向到連接到LPT1或LPT1的任何打印機。 PRN。 您可以使用C#執行相同的操作,只需打開PRN或LPT1作為文件,然后打印到它即可。

要添加通用/純文本打印機,請控制面板>打印機>添加打印機。 在制造商上,選擇“通用”,然后在打印機上,選擇“通用/僅文本”。

您可以對具有自己的轉義命令來打印條形碼的Zebra打印機執行相同的操作(在常規/純文本上打印),這比讓Windows以圖形方式對其進行打印要快。

當您使用噴墨打印機或激光打印機進行打印時,通常不會使用打印機的內置字體。 您使用Windows字體。 發生的情況是打印機驅動程序要么構建像素的圖像(包括文本),然后將其發送到打印機,要么將旨在繪制線條,樣條曲線和其他形狀的命令發送給打印機,並使用表示為線條和樣條的字體(概述)。

當您使用較舊的點矩陣打印機進行打印時,可以這樣做,但是速度很慢。 每行文本都必須由像素“構建”,並且文本行通常與打印頭的通過不匹配(特別是對於大於或小於12點的字體)。

使用這些打印機的原始方法(按預期的方式)是將文本的實際ASCII碼發送到打印機。 發送數字65(十進制),您將得到一個大寫字母(大寫)“ A”。 數字49(十進制)將打印數字“ 1”,而數字32將是空白,數字33將是感嘆號(“!”),依此類推。 一個字節=一個字符。 點矩陣打印機具有自己的內置字體,並會在其字體ROM中查找ASCII代碼,然后從中確定確切的時間,確定何時產生這些字母時,哪些打印線必須准確地敲打頁面。

通過使用ESCape代碼,您可以指定以下效果:偽粗體(基本敲擊字母兩次,第二個副本向右移一個點寬),雙倍寬(連續兩次敲擊每列電線以得到每次通常會敲打一次,從而使字母的寬度加倍),加下划線(無論底部是否需要字母形狀,都將底線完全打到底),依此類推。

打印機自己的ROM處理了有關打印線等所有這些機械細節。 您的程序必須提供的是文本的實際ASCII碼(包括控制碼,例如數字13 [Carriage Return aka CR],以將打印頭返回到左邊緣[或者,對於雙向打印機,請准備打印下一行(按上一行的相反順序),通常后跟數字10 [換行,也稱為LF],將紙卷向上一行以准備打印下一行。

如果要使用打印機沒有的精美字體打印或打印圖形,則必須使用ESCape代碼將打印機設置為“圖形模式”,在該模式下,您基本上發送了字節,其位將指定觸發單個直接在程序控制下打印頭的導線,而不是在打印機的Font ROM中查找字符形狀。 當您使用特定於打印機的驅動程序從Windows正常打印時,通常會發生這種情況。

對於菊花輪或其他固定字符的打印機( 例如, IBM Selectric類型的滾珠機構),ASCII代碼會將滾輪或滾珠旋轉到正確的位置,然后敲打色帶,從而在頁面上打印字母,或發送右擊以敲打色帶,然后敲打頁面(TeleType或舊打字機機構)。 除非通過重復打印周期並微動打印頭和紙張分別以周期的寬度/高度而不是字符/文本行(通常會磨損周期字符)來進行像素圖形處理,否則不可能菊花輪或球的速度非常快,因此,其中很多都具有金屬加固的周期)。

雖然它不在C#中,但我編寫了使用Epson打印機的本機字體的Access報告。 幾年前-使用Windows XP-但將打印機選擇為默認打印機時,可以通過字體選擇器選擇打印機的“本機”字體。

這非常整潔-標題可以使用我喜歡的任何字體,但打印速度較慢。 然后,我可以為詳細信息行選擇本機打印機字體,速度很快。 這樣,我必須小心所有“本機”字體細節訂書釘都具有完全相同的垂直對齊方式,否則它將再次變慢。

這與在噴墨打印機或激光打印機上打印有什么不同?

MSDN:打印概述

使用.NET打印命名空間從Windows窗體應用程序預覽和打印

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM