📅  最后修改于: 2023-12-03 14:39:45.980000             🧑  作者: Mango
在 C# 中实现打印功能需要用到 System.Drawing.Printing
命名空间下的类。我们可以使用 PrintDocument
类来进行打印操作。
下面是一个简单的例子,演示如何打印一段文本:
using System.Drawing;
using System.Drawing.Printing;
namespace PrintDemo
{
class Program
{
static void Main(string[] args)
{
PrintDocument printDoc = new PrintDocument();
printDoc.PrintPage += new PrintPageEventHandler(PrintText);
printDoc.Print();
}
static void PrintText(object sender, PrintPageEventArgs e)
{
string text = "Hello, World!";
Font font = new Font("Arial", 20, FontStyle.Regular);
SolidBrush brush = new SolidBrush(Color.Black);
PointF point = new PointF(100, 100);
e.Graphics.DrawString(text, font, brush, point);
}
}
}
以上代码实现了一个简单的打印功能,它会在一张纸上打印字符串 "Hello, World!"。PrintDocument
的 PrintPage
事件处理函数 PrintText
中,我们使用 Graphics.DrawString
方法进行绘制。参数 sender
是事件的触发者,e
是事件参数。
除了文本打印,我们还可以打印图片。下面是一个打印图片的例子:
using System.Drawing;
using System.Drawing.Printing;
namespace PrintDemo
{
class Program
{
static void Main(string[] args)
{
PrintDocument printDoc = new PrintDocument();
printDoc.PrintPage += new PrintPageEventHandler(PrintImage);
printDoc.Print();
}
static void PrintImage(object sender, PrintPageEventArgs e)
{
Image image = Image.FromFile("test.jpg");
Point point = new Point(100, 100);
e.Graphics.DrawImage(image, point);
}
}
}
在以上代码中,我们使用 Image.FromFile
方法加载名为 "test.jpg" 的图片,并使用 Graphics.DrawImage
方法在纸张上绘制该图片。
除了打印文本和图片,我们还需要了解如何打印设置。下面的代码演示了如何设置打印的页面大小、边距和横向或纵向打印:
using System.Drawing;
using System.Drawing.Printing;
namespace PrintDemo
{
class Program
{
static void Main(string[] args)
{
PrintDocument printDoc = new PrintDocument();
printDoc.DefaultPageSettings.PaperSize = new PaperSize("A4", 827, 1169);
printDoc.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0);
printDoc.DefaultPageSettings.Landscape = true;
printDoc.PrintPage += new PrintPageEventHandler(PrintText);
printDoc.Print();
}
static void PrintText(object sender, PrintPageEventArgs e)
{
string text = "Hello, World!";
Font font = new Font("Arial", 20, FontStyle.Regular);
SolidBrush brush = new SolidBrush(Color.Black);
PointF point = new PointF(100, 100);
e.Graphics.DrawString(text, font, brush, point);
}
}
}
在以上代码中,我们通过设置 PrintDocument
的 DefaultPageSettings
来设置打印页面的大小和边距。通过设置 Landscape
属性来控制横向或纵向打印。在 PrintText
函数中,我们使用之前演示的方法打印文本。
在本文中,我们学习了如何在 C# 中实现打印功能。我们演示了打印文本和图片,并介绍了如何设置打印的页面大小、边距和横向或纵向打印。打印功能是实现任何桌面应用程序的必需功能之一,掌握打印功能将有助于我们开发更好的应用程序。