打印图像时忽略PrinterSetting

时间:2010-09-03 07:14:31

标签: c# image printing gdi+

我正在尝试使用C#中的PrintDocument打印图像,但在打印和预览时,某些设置(如页数和图像质量)将被忽略。

以下代码有什么问题吗,我错过了什么吗?

private void button1_Click(object sender, EventArgs e)
{
    using (var printDialog = new PrintDialog())
    {
        if (printDialog.ShowDialog() == DialogResult.OK)
        {
            _printDocument.PrinterSettings = printDialog.PrinterSettings;    
        }
    }
}

void _printDocument_Print(object sender, PrintPageEventArgs e)
{
    using (Image image = new Bitmap("image0002.tif"))
    {
        e.Graphics.DrawImage(image, e.MarginBounds.X, e.MarginBounds.Y);
    }
}

1 个答案:

答案 0 :(得分:1)

您是否尝试将PrintDialog的{​​{1}}属性设置为要打印的文档?如果我没记错的话,该对话框应自动管理当前Document的设置,因此不需要手动分配PrintDocument

此外,我认为来自PrinterSettings的{​​{1}}表示您应该打印文档(用户点击了“打印”按钮)。

例如:

DialogResult.OK

这有帮助吗?


编辑:如果您不想立即打印,可以尝试:

PrintDialog.ShowDialog()

但如果点击“打印”并且文档无法打印,用户可能会觉得有点奇怪。