Diseño predeterminado Orientación a la hora de la impresión XPSs usando WPF Visor de XPS

StackOverflow https://stackoverflow.com/questions/505839

Pregunta

Es allí una manera de configurar el Diseño Predeterminado de la Orientación al imprimir XPSs usando WPF Visor de XPS?

Mi fijo documento XPS tiene su página de orientación establecida en el Paisaje, la Página de los Medios de comunicación tiene el Tamaño de un ancho que es más largo que su altura y se muestra correctamente en el Visor como el Paisaje.Es sólo que cuando se pulsa el botón de impresión del cuadro de Diálogo Imprimir preferencias están en mora en Vertical y se imprime como tal.

Yo prefiero no tener que alterar los usuarios por defecto la configuración de impresión, me gustaría mucho que prefieren si el Visor de XPS se imprima el XPS como fue diseñado para ser impreso.

¿Fue útil?

Solución

Rellenar el campo de la PrintTicket:

  PrintDialog pd = new PrintDialog();
  PrintTicket pt = new PrintTicket();
  pt.PageOrientation = PageOrientation.Landscape;
  pd.PrintTicket = pd.PrintQueue.MergeAndValidatePrintTicket(pd.PrintQueue.DefaultPrintTicket, pt).ValidatedPrintTicket;
  if (pd.ShowDialog() == true)
  {
    ...
  }

Otros consejos

Creo que la manera correcta de hacer esto al crear un FixedDocument, se establece el RenderTransform = RotateTransform (90) sobre el contenido de la página cuando las dimensiones son más altos que anchos. Ejemplo:

var visualContent = new Image
            {
                Source = image,
                Stretch = Stretch.Uniform
            };
visualContent.RenderTransformOrigin = new Point(0.5, 0.5);    
visualContent.RenderTransform = new RotateTransform(90);
FixedPage fixedPage = new FixedPage();
fixedPage.Children.Add(visualContent);
var pageContent = new PageContent
{
    Child = fixedPage
};

No está seguro de si eso ayuda con un documento XPS preexistente sin embargo.

Esto no es realmente un problema con MXDW pero con la forma de trabajar de los controladores en Windows.La elección del usuario(s) es/son guardados para una sesión en particular.Esto significa que usted puede reutilizar firs-configuración de impresión cuando se imprime entre la primera impresión y salir de la aplicación.La mayoría de las impresoras se comportan de esta manera, hasta que a menos que uno viene con una forma de guardar esta información en algún lugar y dejar que el usuario vuelva a utilizar a través de las sesiones.

Así, traté de descifrar el archivo GPD (donde la información de impresión para una impresora se almacenan normalmente).La orientación tiene dos valores posibles:RETRATO y LANDSCAPE_CC270 con el valor predeterminado se establece en el RETRATO.Ver a continuación:

*%****************************************************************************** *% Orientación *%****************************************************************************** *Característica:Orientación { *rcNameID:=ORIENTATION_DISPLAY *DefaultOption:RETRATO

*Option: PORTRAIT
{
    *rcNameID: =PORTRAIT_DISPLAY
}

*Option: LANDSCAPE_CC270
{
    *rcNameID: =LANDSCAPE_DISPLAY
}

}

Ahora, si yo fuera a cambiar de intercambio el valor predeterminado para LANDSCAPE_CC270, las preferencias de impresión dejar de venir (y cualquier impresión de fallar).De hecho, parece, que la especificación de cualquier otro valor, se mantiene el valor predeterminado para el RETRATO.Sin duda, la EM es hacer algún tipo de comprobación para evitar que nos de la piratería de este controlador.Se parece MS no quieren que nadie interfiera con su configuración :(

Pero usted podría tratar de coquetear con la GPD valores un poco más y ver si algo de su agrado viene.Mantendrá la piratería un poco más.

Advertencia:GPD archivos no debe ser alterado si usted no sabe lo que está haciendo.Si todavía quiere seguir adelante hacer una copia de seguridad!

Sugerencia:Están almacenados en %WINDOWS%system32\spool\drivers\w32x86\3 carpeta.

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