最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)自定義打印文字和圖片的示例代碼

 更新時(shí)間:2022年04月19日 09:00:34   作者:ViperL1  
本文主要介紹了C#實(shí)現(xiàn)自定義打印文字和圖片的示例代碼,C#中打印其實(shí)就是自己繪圖+調(diào)用系統(tǒng)打印函數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

C#中打印其實(shí)就是自己繪圖+調(diào)用系統(tǒng)打印函數(shù),于是便有了以下操作

1.調(diào)用打印機(jī)設(shè)置

如果你想在打印前設(shè)置打印機(jī)屬性(或者切換打印機(jī)),請(qǐng)務(wù)必添加這段代碼,否則電腦會(huì)直接按照預(yù)設(shè)的設(shè)置進(jìn)行打?。ù蛴C(jī)都沒(méi)法選)

//打印機(jī)設(shè)置
PrintDialog printDialog = new PrintDialog();
printDialog.Document = ptDoc;
printDialog.ShowDialog();

ptDoc就是打印的文件內(nèi)容,會(huì)在后面解釋

2.關(guān)聯(lián)文檔

等于我們需要新建一個(gè)空白的畫布,然后把我們需要的文字,圖片,線條依次擺上去

PrintDocument ptDoc = new PrintDocument();
ptDoc.DocumentName = "測(cè)試文件";//在隊(duì)列中顯示的名字
ptDoc.PrintPage += PtDoc_PrintPage;//關(guān)聯(lián)內(nèi)容生成方法

3.繪制內(nèi)容

本次測(cè)試的內(nèi)容分為:橫排文字,豎排文字,圖片,具體內(nèi)容和位置可以通過(guò)修改參數(shù)進(jìn)行調(diào)整

        private void PtDoc_PrintPage(object sender, PrintPageEventArgs e)
        {
            e.Graphics.Clear(Color.White);
            // 開始繪制文檔
            // 默認(rèn)為橫排文字
            e.Graphics.DrawString("標(biāo)題:打印測(cè)試",
                                    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);    //會(huì)造成失真
 
            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)太大打印不下
        }

        同時(shí)直接打印圖片的話可能造成圖片太大,可以寫一個(gè)縮放方法來(lái)限制圖片的最大尺寸

        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#實(shí)現(xiàn)自定義打印文字和圖片的示例代碼的文章就介紹到這了,更多相關(guān)C# 自定義打印文字和圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

攀枝花市| 枣强县| 崇明县| 尼勒克县| 沈丘县| 定远县| 平阴县| 海门市| 广灵县| 外汇| 九台市| 竹北市| 邹城市| 进贤县| 新余市| 茶陵县| 西峡县| 海伦市| 张北县| 枣阳市| 怀安县| 连江县| 新竹市| 乌拉特后旗| 武鸣县| 昌图县| 商丘市| 封丘县| 商水县| 贵德县| 彰化市| 青浦区| 鹤岗市| 全南县| 犍为县| 灵台县| 富蕴县| 大足县| 平安县| 宝兴县| 宁海县|