国产探花免费观看_亚洲丰满少妇自慰呻吟_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屬性代表的是整個頁面的大小,而不是可打印區域的大小。我曾試圖將頁眉和頁腳限定在打印區域以外,但沒有成功。在有些打印機上,打印區域以下的地方是不能被打印出來的。所以我只能簡單地調整頁邊距并將頁眉和頁腳放在打印區域中。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 城固县| 永定县| 潢川县| 乐山市| 工布江达县| 沙田区| 酉阳| 六盘水市| 潍坊市| 泉州市| 呼图壁县| 蓝山县| 宜君县| 六枝特区| 盐源县| 黎平县| 木里| 桐庐县| 龙游县| 新巴尔虎左旗| 灵川县| 石楼县| 马关县| 泰兴市| 安西县| 丰城市| 江达县| 商都县| 荔波县| 汨罗市| 雅江县| 珠海市| 水富县| 隆昌县| 肇东市| 报价| 池州市| 穆棱市| 景泰县| 盘山县| 永仁县|