如何在不使用PrintDialog的情况下打印WPF控件的内容



有没有使用printDialog打印WPF控件内容的方法?我想避免使用PrintDialog,因为它的打印机。除非用户在对话框中对其进行检查,否则打印属性属性将被忽略。我需要打印到"文件:"端口而不显示打印对话框或要求用户提供文件名。

我研究了确实具有无声printtofile功能的printDocument,但我找不到将WPF控件内容绘制到文档上的方法。

如果文件格式无关紧要,则可以从WPF控件中生成图像,然后您可以将其保存到文件:

private static RenderTargetBitmap ConvertToBitmap(UIElement uiElement, double resolution)
    {
        dynamic scale = resolution / 96.0;
        uiElement.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
        dynamic sz = uiElement.DesiredSize;
        dynamic rect = new Rect(sz);
        uiElement.Arrange(rect);
        dynamic bmp = new RenderTargetBitmap(Convert.ToInt32(scale * (rect.Width)), Convert.ToInt32(scale * (rect.Height)), scale * 96, scale * 96, PixelFormats.Default);
        bmp.Render(uiElement);
        return bmp;
    }

但是,如果您追随像PostScript输出或文本文件输出之类的东西,那么这是不合适的。

相关内容

最新更新