Я использую Picturebox в качестве предварительного просмотра. Когда я делал это неправильно, картинка-поле соответствовала распечатке. Когда я изменил его, чтобы использовать растровое изображение, он выглядит плохо. Я проверил DpiX и DpiY графического объекта, и для всех он равен 96. Проблема может быть продемонстрирована с помощью следующего кода. Создайте форму с кнопкой и картинкой. Нажмите на кнопку. Затем раскомментируйте строку "// Correctway = true;" и наблюдай разницу.
public partial class Form1 : Form
{
private bool Correctway;
public Form1()
{
InitializeComponent();
button1.Click += Button1_Click;
}
private void Button1_Click(Object sender, EventArgs e)
{
PrintPageEventArgs eOutput;
Graphics g;
string OutputText;
Font PrintFont;
Bitmap Output;
//Correctway = true;
OutputText = "CERTIFICATION";
PrintFont = new Font("Arial", 16, FontStyle.Regular);
Output = new Bitmap(850, 1100);
if (Correctway)
g = Graphics.FromImage(Output);
else
g = pictureBox1.CreateGraphics();
eOutput = new PrintPageEventArgs(g, new Rectangle(new Point(25, 25), new Size(new Point(825, 1075))), new Rectangle(new Point(0, 0), new Size(new Point(850, 1100))), new PageSettings());
eOutput.Graphics.DrawString(OutputText, PrintFont, Brushes.Black, 0, 0);
eOutput.Graphics.DrawRectangle(Pens.Gray, 20, 30, Output.Width - 100, Output.Height - 130);
if (Correctway)
pictureBox1.Image = Output;
}
}
«Плохой» выход. Хотелось бы описать это лучше, но я не могу понять, что происходит.
Это желаемый вывод, вывод, который является результатом печати, и вывод на экран, когда я использовал неправильную процедуру создания графического объекта из Picturebox.
Примечание: я попробовал «Вы также можете нажать CTRL + G, чтобы вставить изображение». Но это не работает. С или без изображения в буфере обмена.