📜  c# 如何打印 - C# (1)

📅  最后修改于: 2023-12-03 14:39:45.980000             🧑  作者: Mango

C# 如何打印

在 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!"。PrintDocumentPrintPage 事件处理函数 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);
        }
    }
}

在以上代码中,我们通过设置 PrintDocumentDefaultPageSettings 来设置打印页面的大小和边距。通过设置 Landscape 属性来控制横向或纵向打印。在 PrintText 函数中,我们使用之前演示的方法打印文本。

总结

在本文中,我们学习了如何在 C# 中实现打印功能。我们演示了打印文本和图片,并介绍了如何设置打印的页面大小、边距和横向或纵向打印。打印功能是实现任何桌面应用程序的必需功能之一,掌握打印功能将有助于我们开发更好的应用程序。