Mam formularz, który drukuje poprawnie na moim komputerze, ale kiedy wdrażam aplikację na innym komputerze, formularz nie mieści się na stronie, a tło pulpitu pojawia się na wydrukowanym dokument. Podstawową różnicą między tymi dwoma maszynami jest to, że ma się ustawienie DPI na poziomie 150%. Zmieniłem automatyczne skalowanie wiele razy, ale nic się nie zmienia. Formularz wygląda dobrze na ekranie, ale po prostu nie drukuje poprawnie. Poniżej znajduje się kod, którego używam.Moja forma nie drukuje poprawnie, gdy DPI jest 150%
private void btnPrint_Click(object sender, EventArgs e)
{
CaptureScreen();
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();
}
Bitmap memoryImage;
private void CaptureScreen()
{
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);
}
private void printDocument1_PrintPage(System.Object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
Dlaczego próbujesz wydrukować formularz internetowy? I czy jesteś pewien, że różnica nie leży w ustawieniach drukowania między tymi dwoma maszynami? –
Użytkownik musi wypełnić, zapisać i wydrukować formularz Windows. Formularz jest drukowany poprawnie, gdy DPI wynosi 100% lub 125%, ale nie 150%. Mam jednego użytkownika z problemami ze wzrokiem, więc on uruchamia najwyższe ustawienie DPI. – wsb
Czy masz obraz tego, jak wygląda wydruk zakończony niepowodzeniem? – NineBerry