Pregunta

Estoy tratando de imprimir una cuadrícula de etiquetas en una hoja de papel de etiqueta A4.

El usuario especifica los márgenes izquierdo y superior del papel en MM.

A4 es 210 x 297.

Siverlight me dice que el área imprimible es de 793 x 1122 si agrego el área imprimible y los márgenes juntos.

printDocument.PrintPage += (s, e) =>
    {
        var printableArea = e.PrintableArea;
        var pageMargin = e.PageMargins;
    }

Si hago las matemáticas, la relación entre 210 y 793 y 297 y 1122 es 3.777777 recurrente que (con mayor precisión) es 34/9.

¿Por qué es este valor?

¿Siempre es este valor independientemente del destino de la impresión? He revisado una impresora real y un documento XPS configurado para tener un tamaño A4 y TI aparecer Para ser el caso, pero no quiero quedar atrapado en 6 meses.

Si cambia, ¿cómo puedo resolver esta relación en el código?

¿Fue útil?

Solución

Después de un poco más de investigación, he resuelto la respuesta.

El tamaño de Silverlight está utilizando es el tamaño de papel en unidades independientes del dispositivo, calculadas como 1/96th de una pulgada.

297 mm = 11.6929 pulgadas

Multiplica eso por 96 y obtienes 1122.51

Similarmente

210 mm = 8.2677 pulgadas

que funciona con 493.70

Así que ahora entiendo de dónde provienen los números, puedo usar felizmente mi cálculo un poco más preciso de 34/9 junto con un comentario que explica de dónde viene.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top