このコードで画像を印刷しようとしています。
private void Print()
{
PrintDocument printDocument = new PrintDocument();
printDocument.PrintPage += PrintDocument_PrintPage;
PrintPreviewDialog printDialog = new PrintPreviewDialog();
printDialog.Document = printDocument;
DialogResult result = printDialog.ShowDialog();
if (result == DialogResult.OK) printDocument.Print();
printDocument.PrintPage -= PrintDocument_PrintPage;
}
private void PrintDocument_PrintPage(object sender, PrintPageEventArgs e)
{
//e.Graphics.DrawImage(img, e.PageBounds.X, e.PageBounds.Y);
e.Graphics.DrawImage(img, e.PageBounds.X, e.PageBounds.Y,
e.PageBounds.Width, e.PageBounds.Height);
}
画像が小さい場合は正常に印刷されますが、高解像度 (992*1403 の画像がある) の場合は間違ったサイズで描画されます。PDFファイルを表示PreviewDialog
または描画すると正常に印刷されますが、プリンターで印刷すると間違ったサイズで印刷されます。
このコードで私の問題を修正しました:
e.Graphics.DrawImage(img, 0, 0, e.PageSettings.PrintableArea.Width, e.PageSettings.PrintableArea.Height);