如何在c#中打印完整尺寸的图像
发布时间:2020-12-15 21:45:28 所属栏目:百科 来源:网络整理
导读:我想用C#打印图像.它是由Adobe Acrobat从PDF创建的完整8.5×11大小的tiff.当我使用下面的代码用C#打印时,它会垂直打印,但不能水平打印,它会被推过半英寸.我将图像的原点设置为0,0.我错过了什么吗? private FileInfo _sourceFile; public void Print(FileInf
我想用C#打印图像.它是由Adobe Acrobat从PDF创建的完整8.5×11大小的tiff.当我使用下面的代码用C#打印时,它会垂直打印,但不能水平打印,它会被推过半英寸.我将图像的原点设置为0,0.我错过了什么吗?
private FileInfo _sourceFile; public void Print(FileInfo doc,string printer,int tray) { _sourceFile = doc; PrintDocument pd = new PrintDocument(); pd.PrinterSettings.PrinterName = printer; pd.DocumentName = _sourceFile.FullName; using (Image img = Image.FromFile(_sourceFile.FullName)) { if (img.Width > img.Height) { pd.DefaultPageSettings.Landscape = true; } } pd.PrintPage += PrintPage; foreach (PaperSource ps in pd.PrinterSettings.PaperSources) { if (ps.RawKind == tray) { pd.DefaultPageSettings.PaperSource = ps; } } pd.Print(); } private void PrintPage(object o,PrintPageEventArgs e) { using (System.Drawing.Image img = System.Drawing.Image.FromFile(_sourceFile.FullName)) { Point loc = new Point(0,0); e.Graphics.DrawImage(img,loc); } } 解决方法
请查看下面的代码,以获得一个很好的示例,此代码来自以下链接
Print Image in C# private void PrintImage() { PrintDocument pd = new PrintDocument(); pd.DefaultPageSettings.Margins = new Margins(0,0); pd.OriginAtMargins = false; pd.DefaultPageSettings.Landscape = true; pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); printPreviewDialog1.Document = pd; printPreviewDialog1.ShowDialog(); //pd.Print(); } void pd_PrintPage(object sender,PrintPageEventArgs e) { double cmToUnits = 100 / 2.54; e.Graphics.DrawImage(bmIm,100,1000,(float)(15 * cmToUnits),(float)(10 * cmToUnits)); } private void button5_Click(object sender,EventArgs e) { PrintImage(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |