创建Windows窗体和打开的文档的快照

时间:2015-07-07 06:10:11

标签: vb.net pdf printing pixels system.drawing

我正在创建Windows窗体和用户控件的快照到PDF文档,我面临的问题是它们产生的质量,对于较大的字体,它的相当精细和微小的变化是可忽略的,但对于较小的字体大小控件,可以清楚地看到,它不是适当的数据表示。

我在vb.net中使用了以下机制。

Dim bmpScreenshot As Bitmap = New Bitmap(Width, Height)

通过搜索我找到了另一个可能支持不同格式或配色方案的额外参数,即

Dim bmpScreenshot As Bitmap= New Bitmap(CInt(Width), CInt(Height), PixelFormat.Format32bppArgb)

我没有发现任何改善的图像质量,任何身体都可以分享黑色和最佳的最佳质量。白色印刷。?

这是编辑:

 bmpScreenshot = New Bitmap(CInt(PageWidth), CInt(PageHeight), PixelFormat.Format32bppRgb) '.Format32bppArgb
        ''make image for bmpScreenshot
        Dim g As Graphics = Graphics.FromImage(bmpScreenshot)
        Dim isPage As Boolean = MyDataGridViewPrinter.DrawDataGridView(g, PrintE)

1 个答案:

答案 0 :(得分:0)

屏幕上的内容看起来比在纸上更清晰。每张英寸的点数在纸上比在标准计算机屏幕上高出数倍。因此,您应该使BMP的尺寸更大(例如,如果您需要300 dpi且文档为10x20英寸,则BMP应为3000x6000像素)。

接下来,增加控件的所有尺寸,包括行高,字体大小,边框大小......例如,将它们全部乘以4。

当然,每个像素应使用24(或32)位,并确保启用了抗锯齿。