C# 用C语言实现MS-Word打印质量#

C# 用C语言实现MS-Word打印质量#,c#,printing,C#,Printing,我正在编写一个小应用程序,将一些标签打印到一台特殊的打印机上 当我使用MS Word将一些文本打印到打印机(以及XPS文件)时,结果看起来非常好。当我使用图形对象从C#代码打印时,文本似乎过度像素化或过度平滑 我尝试了以下提示,但没有一个能产生与MS Word相同的结果: System.Drawing.Drawing2D.SmoothingMode.AntiAlias System.Drawing.Text.TextRenderingHint.AntiAliasGridFit System.Dr

我正在编写一个小应用程序,将一些标签打印到一台特殊的打印机上

当我使用MS Word将一些文本打印到打印机(以及XPS文件)时,结果看起来非常好。当我使用图形对象从C#代码打印时,文本似乎过度像素化或过度平滑

我尝试了以下提示,但没有一个能产生与MS Word相同的结果:

System.Drawing.Drawing2D.SmoothingMode.AntiAlias
System.Drawing.Text.TextRenderingHint.AntiAliasGridFit
System.Drawing.Text.TextRenderingHint.AntiAlias
System.Drawing.Text.TextRenderingHint.ClearTypeGridFit
InterpolationMode.NearestNeighbor
CompositingQuality.HighQuality
还有其他一些


你能告诉我MS Word应用了哪些提示,这样我就可以通过编程创建它了吗?

我不熟悉
图形对象,但我猜你是在向打印机发送位图,而不是文本或矢量图形

如果是这样,请提高正在创建的图像的分辨率/DPI,使其接近打印机的分辨率/DPI,或者切换到富格文本(XPS)或基于矢量的格式。

Windows GDI(图形基于此)是一种光栅技术。您正在生成(可能是低分辨率)位图


选项包括:实例化更大的图形对象并打印更大的文本(=提高打印分辨率),或移动到WPF,WPF具有矢量模型并允许您以本机方式生成XPS文件。

您需要打印至少300DPI才能使其看起来更好。600DPI会更好。通过直接在打印机上绘图,您可能正在以大约96DPI的速度打印。

对。WinForms中的打印类易于使用,但使用的缩放使其分辨率较低。作为参考,
Graphics
对象是.net表示设备上下文、渲染上下文或$PLATFORM决定调用的任何对象的方式。您在图形上绘制,几乎不必关心它是否表示窗口的客户区、打印页面或任何其他视觉介质。