C#實現(xiàn)自定義打印文字和圖片的示例代碼
C#中打印其實就是自己繪圖+調(diào)用系統(tǒng)打印函數(shù),于是便有了以下操作
1.調(diào)用打印機設(shè)置
如果你想在打印前設(shè)置打印機屬性(或者切換打印機),請務必添加這段代碼,否則電腦會直接按照預設(shè)的設(shè)置進行打?。ù蛴C都沒法選)
//打印機設(shè)置 PrintDialog printDialog = new PrintDialog(); printDialog.Document = ptDoc; printDialog.ShowDialog();
ptDoc就是打印的文件內(nèi)容,會在后面解釋
2.關(guān)聯(lián)文檔
等于我們需要新建一個空白的畫布,然后把我們需要的文字,圖片,線條依次擺上去
PrintDocument ptDoc = new PrintDocument(); ptDoc.DocumentName = "測試文件";//在隊列中顯示的名字 ptDoc.PrintPage += PtDoc_PrintPage;//關(guān)聯(lián)內(nèi)容生成方法
3.繪制內(nèi)容
本次測試的內(nèi)容分為:橫排文字,豎排文字,圖片,具體內(nèi)容和位置可以通過修改參數(shù)進行調(diào)整
private void PtDoc_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.Clear(Color.White);
// 開始繪制文檔
// 默認為橫排文字
e.Graphics.DrawString("標題:打印測試",
new Font(new FontFamily("宋體"), 40, FontStyle.Bold),
System.Drawing.Brushes.Red,
170, 10);
// 橫線
e.Graphics.DrawLine(Pens.Black, 20, 110, 800, 110);
// 豎排文字
e.Graphics.DrawString("內(nèi)容",
new Font(new FontFamily("宋體"), 14, FontStyle.Bold),
System.Drawing.Brushes.Black,
20, 120,
new StringFormat(StringFormatFlags.DirectionVertical));
e.Graphics.DrawString( this.txtName.Text,
new Font(new FontFamily("宋體"), 14, FontStyle.Bold),
System.Drawing.Brushes.Black,
20, 200);
//e.Graphics.DrawImage(Image.FromFile(Path), 20, 250, 800, 100); //會造成失真
Image imgsample = Image.FromFile(Path);
Point pt = Zoom(imgsample.Width, imgsample.Height, 200);
e.Graphics.DrawImage(imgsample, 20, 250, pt.X, pt.Y);//直接打印可能出現(xiàn)太大打印不下
}同時直接打印圖片的話可能造成圖片太大,可以寫一個縮放方法來限制圖片的最大尺寸
private Point Zoom(int x, int y,int maxWidth)
{
Point pt = new Point(x, y);
while (pt.X > maxWidth)
{
pt.X /= 2;
pt.Y /= 2;
}
return pt;
}最后結(jié)果如下

到此這篇關(guān)于C#實現(xiàn)自定義打印文字和圖片的示例代碼的文章就介紹到這了,更多相關(guān)C# 自定義打印文字和圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#遞歸實現(xiàn)將一整數(shù)逆序后放入一數(shù)組中
這篇文章主要介紹了C#遞歸實現(xiàn)將一整數(shù)逆序后放入一數(shù)組中,是遞歸算法的一個簡單應用,需要的朋友可以參考下2014-10-10
深入多線程之:解析線程的交會(Thread Rendezvous)詳解
本篇文章是對線程的交會(Thread Rendezvous)進行了詳細的分析介紹,需要的朋友參考下2013-05-05
C#面向?qū)ο髮崿F(xiàn)圖書管理系統(tǒng)
這篇文章主要為大家詳細介紹了C#面向?qū)ο髮崿F(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
C#實現(xiàn)根據(jù)圖片的鏈接地址獲取圖片的后綴名
這篇文章主要為大家詳細介紹了C#如何實現(xiàn)根據(jù)圖片的鏈接地址獲取圖片的后綴名,文中的實現(xiàn)方法講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下2023-02-02

