我的应用程序充当文本模板,文本框供用户填写。一旦完成,他们就可以使用PDFsharp将文档“打印”为PDF。这是通过使用下面的代码将文本框所在的面板转换为位图图像来完成的。
ConditionReportConfig.PG1.Panel2.DrawToBitmap(Bitmap, New Rectangle(0, 0, Bitmap.Width, Bitmap.Height))
frm_MsgPrint.lbl_Page.Text = "Page: 1" : frm_MsgPrint.lbl_Page.Refresh()
frm_MsgPrint.PictureBox1.Image = Bitmap
frm_MsgPrint.PictureBox1.Refresh()
BXImage = Bitmap
GFX.ScaleTransform(0.82)
GFX.DrawImage(BXImage, 25, 0)
GFX.Dispose()
CDR1 = Nothing
不幸的是,当PDF弹出图像时,整个图像,文本框中的文本更加模糊。它们并不模糊到你无法阅读的程度,但它们确实使阅读文本令人难以置信的紧张。
我尝试过添加各种设置;
Dim Bitmap2 = New Bitmap(894, 1367)
Using G As Graphics = Graphics.FromImage(Bitmap2)
G.InterpolationMode = Drawing2D.InterpolationMode.Bicubic
G.DrawImage(Bitmap, 0, 0, 120, 150)
End Using
我甚至尝试更改字体,大小,甚至将位图保存为TIFF,PNG,它仍然显得模糊。我会更改打印方法,但是要打印面板的整个要点。不仅如此,但面板包含图像,所以我不能只在PDF上打印文本。
编辑:我已经尝试更改一些插值设置,它稍微更清晰,但仍然是你眼睛的压力。下面是Bitmap图像的片段作为TIFF。注意文本框中的文本是如何“模糊”的,但旁边的垂直文本是完美的。真的没有办法让文本框内容像垂直文本一样清晰吗?
模糊图像与水晶般清晰的垂直文本:
从您的位图创建一个XImage
并设置
image.Interpolate = false;
对于那个图像。这是Adobe Reader不提供平滑图像的提示。
在将其添加到PDF之前,还要检查ClearType是否不会使图像模糊。