国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

在控制臺應用程序中實現打印

2024-07-21 02:17:23
字體:
來源:轉載
供稿:網友
中國最大的web開發資源網站及技術社區,
我在以前的一篇文章中曾介紹到過如何從控制臺命令中捕獲輸出結果并將它放到剪貼板中。我常常需要從一些控制臺命令中將文本輸出結果打印出來,因此我對最后的例子進行了修改以使它支持打印。

.net打印框架對于使用mfc的人來說并不陌生:你只需建立一個printdocument對象并調用其print()方法就行。printdocument對象會調用你建立的事件處理來打印每個頁面。打印完所有頁面之后,打印處理會設置一個標記并結束打印。

在這個新的例子中,我做了三個地方的改動。首先,我修改了存儲方法(storage)以便將被捕獲的輸入保存在一個arraylist中,輸入的每一行都成為該集合中的一個字符串:private void grabstream (textreader instream)
{
string str;
while (null != (str = instream.readline ()))
{
listostrings.add (str);
// pipe it to the output:
system.console.writeline (str);
}
}




接下來,我添加了一些命令行選項以使它能夠將數據發送到剪貼板中或缺省的打印機上,或者同時發送到這兩處

最后,我寫了兩個程序來將輸出結果打印出來printdata()方法用于建立一個printdocument對象并啟動該打印過程。它還負責為打印頁面處理添加事件處理程序。

printpage()方法用于打印每個頁面。首先,我計算出符合打印頁面的行數。字體的getheight()方法顯示了單獨一行的高度,printpageevent的marginbounds屬性顯示了每個頁面的打印空間有多大。有了這些信息,我便可以簡單地繪制出頁眉行、頁面的每一行以及頁腳行。

在打印框架中有一個小問題:pagebounds屬性代表的是整個頁面的大小,而不是可打印區域的大小。我曾試圖將頁眉和頁腳限定在打印區域以外,但沒有成功。在有些打印機上,打印區域以下的地方是不能被打印出來的。所以我只能簡單地調整頁邊距并將頁眉和頁腳放在打印區域中。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 额尔古纳市| 耿马| 新民市| 宕昌县| 忻州市| 连南| 石城县| 保山市| 华蓥市| 金秀| 甘孜县| 井陉县| 灯塔市| 广水市| 宁国市| 临江市| 怀安县| 大新县| 安吉县| 武清区| 清新县| 汉沽区| 江阴市| 镶黄旗| 花垣县| 门源| 静乐县| 绥棱县| 余干县| 高邮市| 南充市| 荥阳市| 郎溪县| 体育| 年辖:市辖区| 吐鲁番市| 仁寿县| 页游| 吉安市| 新田县| 新丰县|