Распечатать изображение в .Net winform - PullRequest
1 голос
/ 25 февраля 2010

Я пытаюсь разрешить моим пользователям распечатывать текущую страницу, в которой они находятся, в нашей программе WinForm. Сначала я делаю скриншот приложения и сохраняю его на диск. Затем я запускаю PrintPreviewDialog и загружаю его туда.

Это все работает, за исключением того, что оно уходит со страницы! Я не могу понять, как изменить или разрешить пользователю изменять макет страницы для печати на ландшафт и / или на " автоподгонка " на снимке экрана до 1 страницы. *

private void printDetailsToolStripMenuItem_Click(object sender, EventArgs e)
{
     HUD.ShellForm.SaveAsImage("CaseNoteDetails.jpg", ImageFormat.Jpeg);

    printPreviewDialog1.PrintPreviewControl.AutoZoom = true;
    printPreviewDialog1.Document = printDocument1;
    printPreviewDialog1.AutoSize = true;
    printPreviewDialog1.ShowDialog();
}

void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
    float x = e.MarginBounds.Left;
    float y = e.MarginBounds.Top;

    e.Graphics.DrawImage(Image.FromFile("c:\\CaseNoteDetails.jpg"), x, y);
}

Я изменил одну строку на это ->

e.Graphics.DrawImage(Image.FromFile("c:\\CaseNoteDetails.jpg"), x, y,1000,750);

и это работает, за исключением того, что у меня есть почти 1/3 напечатанной страницы в виде пробела. Как минимизировать отступы / поля, чтобы я мог использовать всю страницу?

Ответы [ 3 ]

3 голосов
/ 25 февраля 2010

Масштабирование по умолчанию для PrintDocument составляет 1 пиксель = 0,01 дюйма. Типичный лист бумаги имеет ширину около 7,5 дюймов (полезное пространство), изображение шириной 750 пикселей заполнит его полностью. Конечно, ваш экран шире.

Вместо этого используйте перегрузку Graphics.DrawImage (Image, Rectangle), чтобы вы могли изменить масштаб изображения, чтобы сделать его достаточно широким. PageSettings.Landscape позволяет вращать его.

2 голосов
/ 25 февраля 2010

Чтобы получить пространство

  printDocument1.DefaultPageSettings.Landscape = true

Для изменения размера вы пробовали Image.GetThumbnailImage. Похоже, это функция, которая может изменить размер изображения, чтобы оно соответствовало

Также взгляните на эти примеры

http://geekswithblogs.net/kakaiya/archive/2005/06/09/42656.aspx

http://www.devx.com/dotnet/Article/22079

0 голосов
/ 26 февраля 2010

Заполнение и поля печатного документа контролируются в значении printDocument1.DefaultPageSettings.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...