我想用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#
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(); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。