Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При разработке приложения можно создать форму, представляющую напечатанную страницу. В следующем примере кода показано, как распечатать копию текущей формы с помощью метода CopyFromScreen.
Пример
Чтобы запустить пример кода, добавьте два компонента в форму со следующими параметрами:
| Объект | Свойство\Событие | Ценность |
|---|---|---|
| Кнопка | Name |
Button1 |
Click |
Button1_Click |
|
| PrintDocument | Name |
PrintDocument1 |
PrintPage |
PrintDocument1_PrintPage |
При выборе Button1выполняется следующий код. Код создает Graphics объект из формы и сохраняет его содержимое в Bitmap переменную с именем memoryImage. Код вызывает PrintDocument.Print метод, который вызывает PrintPage событие. Обработчик событий печати рисует memoryImage растровое изображение на объекте страницы Graphics принтера. Когда код обработчика событий печати возвращается, страница печатается.
namespace Sample_print_win_form1
{
public partial class Form1 : Form
{
Bitmap memoryImage;
public Form1()
{
InitializeComponent();
}
private void Button1_Click(object sender, EventArgs e)
{
Graphics myGraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
printDocument1.Print();
}
private void PrintDocument1_PrintPage(
System.Object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
}
}
Public Class Form1
Dim memoryImage As Bitmap
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim myGraphics As Graphics = Me.CreateGraphics()
Dim s As Size = Me.Size
memoryImage = New Bitmap(s.Width, s.Height, myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
memoryGraphics.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, s)
PrintDocument1.Print()
End Sub
Private Sub PrintDocument1_PrintPage(
ByVal sender As System.Object,
ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.Graphics.DrawImage(memoryImage, 0, 0)
End Sub
End Class
Надежное программирование
Следующие условия вызывают исключение:
- У вас нет разрешения на доступ к принтеру.
- Принтер не установлен.
Безопасность .NET
Чтобы запустить этот пример кода, необходимо иметь разрешение на доступ к принтеру, используемому с компьютером.
См. также
.NET Desktop feedback