2010-07-06 31 views
5

Escribo una pequeña aplicación que imprime algunas pegatinas en una impresora especial.Lograr la calidad de impresión de MS Word en C#

Cuando uso MS Word para imprimir texto en esa impresora (y en un archivo XPS), el resultado se ve excelente. Cuando imprimo desde el código C# con el objeto Graphics, el texto parece estar demasiado pixelado o sobredimensionado.

Me trataron los siguientes consejos, pero ninguno produce el mismo resultado que 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 

y algunos otros.

¿Puede aconsejar qué sugerencias aplica MS Word, para poder crearla programáticamente?

Respuesta

3

No estoy familiarizado con el objeto Graphics, pero supongo que está enviando un mapa de bits a la impresora en lugar de texto o gráficos vectoriales.

Si es así, aumente la resolución/DPI de la imagen que está creando para acercarse a la de la impresora, o cambie a un texto enriquecido (XPS) o formato vectorial.

+0

Derecha. Las clases de impresión en WinForms son fáciles de usar, pero usan una escala que lo hace de baja resolución. –

+1

Como referencia, el objeto 'Graphics' es la manera en que .net representa un contexto de dispositivo, contexto de representación o lo que $ PLATFORM decida llamar. Usted dibuja en un gráfico, y apenas tiene que importar si representa el área de cliente de una ventana, una página impresa o cualquier otro medio visual. – cHao

0

Windows GDI (en el que se basa Graphics) es una tecnología de ráster. Está generando mapas de bits (posiblemente de baja resolución).

Las opciones incluyen: crea una instancia de un objeto gráfico más grande e imprime un texto más grande (== aumentando la resolución de la impresión) o pasa a WPF, que tiene un modelo vectorial y te permite generar archivos XPS de forma nativa.

0

Deberá imprimir al menos 300 DPI para que se vea bien. 600DPI sería mejor. Probablemente esté imprimiendo en un valor aproximado de 96 PPP simplemente dibujando directamente hacia la impresora.

Cuestiones relacionadas