Vb. Сетевое приложение создает битовый массив с нуля и или преобразовывает в tiff или отправляет его на принтер. В обоих случаях качество изображения (в этом случае шрифт) не хорошо вообще. Упомянутый ниже пример кода создает графический объект, который я использую для записи в изображение.
Dim gr2 As Graphics = Graphics.FromImage(New Bitmap(800, 1000), Imaging.PixelFormat.Format32bppPArgb))
Наряду с тем, что сказал @durilai, вы можете поднять разрешение, если собираетесь печатать. .Net использует системное разрешение, которое обычно составляет 96 точек на дюйм, но принтеры могут работать с файлами с разрешением 300 точек на дюйм или больше.
'Create a new bitmap
Using Bmp As New Bitmap(800, 1000, Imaging.PixelFormat.Format32bppPArgb)
'Set the resolution to 300 DPI
Bmp.SetResolution(300, 300)
'Create a graphics object from the bitmap
Using G = Graphics.FromImage(Bmp)
'Paint the canvas white
G.Clear(Color.White)
'Set various modes to higher quality
G.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
G.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
G.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
'Create a font
Using F As New Font("Arial", 12)
'Create a brush
Using B As New SolidBrush(Color.Black)
'Draw some text
G.DrawString("Hello world", F, B, 20, 20)
End Using
End Using
End Using
'Save the file as a TIFF
Bmp.Save("c:\test.tiff", Imaging.ImageFormat.Tiff)
End Using
Я использовал эти методы, поиграйте с ними, они имеют ОГРОМНОЕ значение. Это C #, но вы видите, что нужно. Извините.
Bitmap bm = new Bitmap(iWidth, iHeight);
using (Graphics graphics = Graphics.FromImage(bm))
{
graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
graphics.DrawImage(bmOriginal, 0, 0, iWidth, iHeight);
}
Я использовал эти методы для шрифтов:
graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed;
graphics.TextRenderingHint = TextRenderingHint.AntiAlias;