Примеры кода на C# для печати документов — основы и практические рекомендации

В программировании очень часто возникает необходимость вывести на печать какой-нибудь документ или отчет. В этой статье мы рассмотрим несколько примеров кода на языке программирования C#, которые позволят вам легко и быстро осуществить печать документов.

Первый пример кода демонстрирует, как вывести на печать простой текстовый документ. Для этого необходимо создать экземпляр класса PrintDocument и задать нужные настройки для печати, такие как заголовок документа, шрифт, размер страницы и другие параметры. Затем нужно определить обработчик события PrintPage, где будет указана логика печати текста.

Второй пример кода показывает, как вывести на печать таблицу. Для этого используется класс PrintDocument и событие PrintPage, которое отвечает за печать каждой страницы документа. В обработчике события нужно определить структуру таблицы (количество строк и столбцов) и заполнить ее данными. Также можно задать параметры форматирования, например, выравнивание текста, шрифт, цвет и т.д.

Третий пример кода демонстрирует, как вывести на печать изображение. Для этого необходимо создать экземпляр класса PrintDocument и определить обработчик события PrintPage. В обработчике нужно загрузить изображение и настроить его параметры печати, такие как положение на странице, масштабирование и ориентацию. Затем можно вызывать метод Graphics.DrawImage, чтобы отобразить изображение на странице печати.

Примеры кода на C# для печати документов

1. Печать текста

Для печати текста в C# можно использовать класс PrintDocument. Ниже приведен пример кода, который печатает заданный текст на принтере:

using System;
using System.Drawing;
using System.Drawing.Printing;
namespace PrintExample
{
class Program
{
static void Main(string[] args)
{
PrintDocument printDoc = new PrintDocument();
printDoc.PrintPage += PrintPageHandler;
printDoc.Print();
}
private static void PrintPageHandler(object sender, PrintPageEventArgs e)
{
string text = "Пример текста для печати";
Font font = new Font("Arial", 12);
SolidBrush brush = new SolidBrush(Color.Black);
e.Graphics.DrawString(text, font, brush, 0, 0);
}
}
}

2. Печать изображений

Для печати изображений в C# также можно использовать класс PrintDocument. Ниже приведен пример кода, который печатает заданное изображение:

using System;
using System.Drawing;
using System.Drawing.Printing;
namespace PrintExample
{
class Program
{
static void Main(string[] args)
{
PrintDocument printDoc = new PrintDocument();
printDoc.PrintPage += PrintPageHandler;
printDoc.Print();
}
private static void PrintPageHandler(object sender, PrintPageEventArgs e)
{
Image image = Image.FromFile("image.jpg");
e.Graphics.DrawImage(image, 0, 0);
}
}
}

В этом примере также создается объект PrintDocument и задается обработчик события PrintPage. Внутри обработчика загружается изображение с помощью метода Image.FromFile, а затем вызывается метод DrawImage объекта Graphics для печати изображения.

3. Печать таблицы

Для печати таблицы в C# можно использовать классы PrintDocument и TableLayoutPanel. Ниже приведен пример кода, который печатает простую таблицу:

using System;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;
namespace PrintExample
{
class Program
{
static void Main(string[] args)
{
PrintDocument printDoc = new PrintDocument();
printDoc.PrintPage += PrintPageHandler;
printDoc.Print();
}
private static void PrintPageHandler(object sender, PrintPageEventArgs e)
{
TableLayoutPanel table = new TableLayoutPanel();
table.RowCount = 3;
table.ColumnCount = 2;
table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
table.RowStyles.Add(new RowStyle(SizeType.Percent, 33.3F));
table.RowStyles.Add(new RowStyle(SizeType.Percent, 33.3F));
table.RowStyles.Add(new RowStyle(SizeType.Percent, 33.3F));
table.Controls.Add(new Label() { Text = "Ячейка 1,1" }, 0, 0);
table.Controls.Add(new Label() { Text = "Ячейка 2,1" }, 0, 1);
table.Controls.Add(new Label() { Text = "Ячейка 3,1" }, 0, 2);
table.Controls.Add(new Label() { Text = "Ячейка 1,2" }, 1, 0);
table.Controls.Add(new Label() { Text = "Ячейка 2,2" }, 1, 1);
table.Controls.Add(new Label() { Text = "Ячейка 3,2" }, 1, 2);
table.PerformLayout();
table.PrintToGraphics(e.Graphics, e.MarginBounds.Location);
}
}
}

Это только некоторые примеры кода на C# для печати документов. C# предлагает много возможностей для печати, и вам достаточно выбрать тот способ, который наилучшим образом соответствует вашим требованиям и потребностям.

Подготовка документа к печати в C#

1. Установка принтера:

Перед тем, как вывести что-либо на печать, необходимо установить и выбрать принтер по умолчанию. Для этого можно использовать класс System.Drawing.Printing.PrinterSettings:

PrinterSettings printerSettings = new PrinterSettings();
string defaultPrinter = printerSettings.PrinterName;

В данном примере мы получаем имя принтера по умолчанию и сохраняем его в переменную defaultPrinter.

2. Создание документа:

Для печати в программировании необходимо создать документ, который мы хотим вывести на печать. В C# для этого можно использовать класс System.Drawing.Printing.PrintDocument:

PrintDocument document = new PrintDocument();

Данный класс позволяет настроить различные параметры печати, такие как размер страницы, ориентация, поля и т. д. Например, чтобы установить формат бумаги, можно использовать следующий код:

document.DefaultPageSettings.PaperSize = new PaperSize("A4", 827, 1169);

В данном примере мы устанавливаем формат бумаги А4 со значениями ширины 827 и высоты 1169.

3. Обработка событий перед печатью:

Перед тем, как начать печать документа, можно обработать различные события, например, для настройки заголовка или добавления логотипа. Для этого можно использовать следующее событие:

document.PrintPage += new PrintPageEventHandler(PrintDocument_OnPrintPage);

В данном примере мы подписываемся на событие PrintPage и указываем метод PrintDocument_OnPrintPage в качестве обработчика события. В этом методе можно выполнить необходимую подготовку документа перед печатью.

После подготовки документа и обработки событий можно вывести его на печать. Для этого можно использовать метод Print класса PrintDocument:

document.Print();

Данный метод запустит процесс печати документа.

Выбор принтера в C# для печати документов

В программировании на C# можно выбрать конкретный принтер для печати документов. Для этого необходимо использовать класс PrintDialog. Этот класс позволяет открыть диалоговое окно выбора принтера, где пользователь может выбрать конкретное устройство.

Пример кода:


PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
PrinterSettings printerSettings = new PrinterSettings();
printerSettings.PrinterName = printDialog.PrinterSettings.PrinterName;
Console.WriteLine("Выбран принтер: " + printerSettings.PrinterName);
}

В этом примере мы создаем экземпляр класса PrintDialog и открываем его диалоговое окно с помощью метода ShowDialog. Если пользователь выбирает принтер и нажимает кнопку «ОК», то мы получаем выбранный принтер с помощью свойства PrinterSettings. Из объекта PrinterSettings можно получить название выбранного принтера с помощью свойства PrinterName.

Полученное название принтера можно использовать для печати документов. Например, можно передать это название в конструктор объекта класса PrintDocument.

Таким образом, благодаря классу PrintDialog можно реализовать выбор принтера в C# для печати документов.

Управление макетом печати в C#

При работе с печатными документами в C# вы можете иметь возможность управлять макетом печати, чтобы обеспечить более гибкое и адаптивное отображение контента на странице печати. Вот несколько примеров кода, которые помогут вам освоить основные концепции управления макетом печати в C#.

1. Использование класса PrintDocument:


using System.Drawing.Printing;
public void PrintDocumentHandler(object sender, PrintPageEventArgs e)
{
// Ваш код для отображения контента на странице печати
}
public void Print()
{
PrintDocument printDocument = new PrintDocument();
printDocument.PrintPage += new PrintPageEventHandler(PrintDocumentHandler);
PrintDialog printDialog = new PrintDialog();
printDialog.Document = printDocument;
if (printDialog.ShowDialog() == DialogResult.OK)
{
printDocument.Print();
}
}

2. Использование свойства PrintPreviewControl:


using System.Drawing.Printing;
using System.Windows.Forms;
public void PrintPreviewControlHandler(object sender, PrintPageEventArgs e)
{
// Ваш код для отображения контента на странице печати
}
public void PrintPreview()
{
PrintDocument printDocument = new PrintDocument();
printDocument.PrintPage += new PrintPageEventHandler(PrintPreviewControlHandler);
PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
printPreviewDialog.Document = printDocument;
printPreviewDialog.ShowDialog();
}

3. Использование класса PrintController:


using System.Drawing.Printing;
public class CustomPrintController : PrintController
{
public override void OnStartPrint(PrintDocument document, PrintEventArgs e)
{
// Ваш код для настройки макета печати перед началом печати
}
public override void OnEndPrint(PrintDocument document, PrintEventArgs e)
{
// Ваш код для очистки макета печати после окончания печати
}
}
public void Print()
{
PrintDocument printDocument = new PrintDocument();
printDocument.PrintController = new CustomPrintController();
PrintDialog printDialog = new PrintDialog();
printDialog.Document = printDocument;
if (printDialog.ShowDialog() == DialogResult.OK)
{
printDocument.Print();
}
}

Это всего лишь некоторые примеры кода, которые помогут вам начать использование C# для управления макетом печати. Подробнее о более сложных техниках и приемах вы можете узнать из официальной документации Microsoft.

Не забывайте, что управление макетом печати может понадобиться вам для адаптации контента на странице печати под разные размеры бумаги, определения полей печати и других аспектов, связанных с оформлением и размещением элементов на странице печати.

Удачи в освоении управления макетом печати в C#!

Установка параметров печати в C#

Для печати документов в программировании на C# требуется установить определенные параметры. В данном разделе мы рассмотрим, как это можно сделать.

1. Создание экземпляра класса PrintDialog:

PrintDialog printDialog = new PrintDialog();

2. Задание параметров печати:

  • Установка имени принтера:
  • printDialog.PrinterSettings.PrinterName = "Имя_принтера";
  • Установка количества копий:
  • printDialog.PrinterSettings.Copies = 2;
  • Установка диапазона страниц:
  • printDialog.PrinterSettings.FromPage = 1;
    printDialog.PrinterSettings.ToPage = 5;
  • Установка ориентации страницы:
  • printDialog.PrinterSettings.DefaultPageSettings.Landscape = true;

3. Отображение диалогового окна печати:

if (printDialog.ShowDialog() == DialogResult.OK)
{
// Ваш код печати документа
}

После вызова метода ShowDialog() будет отображено диалоговое окно печати, в котором пользователь сможет выбрать принтер и настроить другие параметры.

После сохранения выбранных пользователем параметров, вы можете использовать их в своем коде печати.

Печать текста на принтере с помощью C#

Печать текста на принтере с помощью C# может быть достаточно простой задачей. В данной статье рассмотрим пример кода, который позволит вывести текст на печать и отправить его на принтер.

Сначала необходимо подключить пространство имен System.Drawing.Printing. Это пространство имен предоставляет классы и интерфейсы для отправки документов на печать.

Далее создаем экземпляр класса PrintDocument и указываем необходимые параметры для печати. Можно задать имя принтера, на котором будет осуществляться печать, а также установить другие параметры, такие как ориентация, размер бумаги и т.д.

Ниже приведен пример кода для печати текста на принтере:

using System;
using System.Drawing;
using System.Drawing.Printing;
public class PrintTextExample
{
static void Main(string[] args)
{
// Создание экземпляра класса PrintDocument
PrintDocument printDoc = new PrintDocument();
// Установка имени принтера
printDoc.PrinterSettings.PrinterName = "PrinterName";
// Обработка события PrintPage
printDoc.PrintPage += new PrintPageEventHandler(PrintPageHandler);
// Вызов метода Print для печати документа
printDoc.Print();
}
// Обработчик события PrintPage
private static void PrintPageHandler(object sender, PrintPageEventArgs e)
{
// Создание экземпляра класса Graphics для рисования на странице
Graphics graphics = e.Graphics;
// Создание экземпляра класса Font для определения шрифта
Font font = new Font("Arial", 12);
// Создание экземпляра класса SolidBrush для определения цвета текста
SolidBrush brush = new SolidBrush(Color.Black);
// Создание экземпляра класса PointF для определения координат текста
PointF point = new PointF(100, 100);
graphics.DrawString("Пример текста для печати", font, brush, point);
}
}

Таким образом, приведенный пример кода позволяет вывести текст на печать с помощью C#. Этот код можно дополнить и настроить согласно своим потребностям, добавив, например, различные параметры для печати и дополнительные элементы на странице.

Печать изображений на принтере в C#

Для начала необходимо создать экземпляр класса PrintDocument и настроить его свойства. Например, можно задать масштабирование изображения на странице, выбрать принтер и указать количество копий:


PrintDocument printDocument = new PrintDocument();
printDocument.DefaultPageSettings.ScaleMode = ScaleMode.Fit;
printDocument.PrinterSettings.PrinterName = "Принтер";
printDocument.PrinterSettings.Copies = 1;

Затем необходимо задать обработчик события PrintPage, который будет вызываться при каждой печати страницы. В данном обработчике можно определить, что именно нужно распечатать. Например, можно задать путь к изображению и его координаты на странице.


private void printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
Image image = Image.FromFile("путь_к_изображению.jpg");
e.Graphics.DrawImage(image, 0, 0);
}

Наконец, необходимо подписаться на событие PrintPage и вызвать метод Print() для запуска процесса печати:


printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
printDocument.Print();

Таким образом, используя класс PrintDocument и настраивая его свойства, можно осуществить печать изображения на принтере в C#.

Работа с различными типами документов в C#

  • Печать текстовых документов: Для печати текстовых документов в C# можно использовать класс PrintDocument. Пример кода:
  • 
    using System;
    using System.Drawing;
    using System.Drawing.Printing;
    public class TextPrinter
    {
    public static void PrintText(string text)
    {
    PrintDocument printDoc = new PrintDocument();
    printDoc.PrintPage += new PrintPageEventHandler(PrintTextPage);
    printDoc.Print();
    }
    private static void PrintTextPage(object sender, PrintPageEventArgs e)
    {
    string text = "Пример текста для печати";
    e.Graphics.DrawString(text, new Font("Arial", 12), Brushes.Black, new PointF(10, 10));
    }
    }
    
  • Печать PDF-документов: Для печати PDF-документов в C# можно использовать сторонние библиотеки, такие как iTextSharp или PdfSharp. Пример кода с использованием PdfSharp:
  • 
    using PdfSharp.Pdf;
    using PdfSharp.Pdf.IO;
    public class PdfPrinter
    {
    public static void PrintPdf(string filePath)
    {
    PdfDocument pdfDoc = PdfReader.Open(filePath, PdfDocumentOpenMode.Import);
    using (PrintDocument printDoc = pdfDoc.CreatePrintDocument())
    {
    printDoc.Print();
    }
    }
    }
    
  • Печать изображений: Для печати изображений в C# можно использовать класс PrintDocument и метод DrawImage. Пример кода:
  • 
    using System.Drawing;
    using System.Drawing.Printing;
    public class ImagePrinter
    {
    public static void PrintImage(string imagePath)
    {
    PrintDocument printDoc = new PrintDocument();
    printDoc.PrintPage += new PrintPageEventHandler(PrintImagePage);
    printDoc.Print();
    }
    private static void PrintImagePage(object sender, PrintPageEventArgs e)
    {
    Image image = Image.FromFile("image.png");
    e.Graphics.DrawImage(image, new PointF(10, 10));
    }
    }
    

Это только некоторые примеры кода для печати различных типов документов в C#. В зависимости от требований и типа документа, могут потребоваться дополнительные действия или использование других библиотек.

Оцените статью
Добавить комментарий