Utilizo la ruta de impresión de WPF para manejar diagramas grandes y grandes creados en nuestra aplicación. El diagrama completo consiste en imágenes.Guardar e imprimir XPSDocument a través de Paginator (parece) provoca una rasterización del contenido
Un llamado "DiseñadorPaginador" pagina el diagrama (es bastante simple). A partir de este punto, hago lo siguiente tres cosas: - Imprimo el documento con PrintDialog.PrintDocument (Paginator, Título) - También creo un documento XPS con XpsDocumentWriter.Write (Paginator, PrintTicket); lo que puedo guardar en el disco duro - Desde el XpsDocument asigno XpsDocumentWriter.GetFixedDocumentSequence() a un DocumentViewer
En pocas palabras, es importante siguiente código:
PrintDialog _pdialog = new PrintDialog();
System.Printing.ValidationResult result = this.PrintQueue.MergeAndValidatePrintTicket(this.PrintQueue.UserPrintTicket, this.PrintTicket);
_pdialog.PrintTicket = result.ValidatedPrintTicket;
XpsDocument _xpsDocument = new XpsDocument("C:\\test.xps",FileAccess.ReadWrite);
XpsDocumentWriter xpsdw = XpsDocument.CreateXpsDocumentWriter(_xpsDocument);
xpsdw.Write(this.Paginator, result.ValidatedPrintTicket);
documentviewer.Document = _xpsDocument.GetFixedDocumentSequence();
_xpsDocument.Close();
_pdialog.PrintQueue = this.PrintQueue;
_pdialog.PrintDocument(this.Paginator, "Model Test");
La salida es la siguiente:
XPS en HDD -> absolutamente borroso. No puedes reconocer nada Es como un archivo GIF con un zoom 100x. FixedDocumentSequence desde XPSDocument en DocumentViewer -> Perfecto. Esto debería ser lo que el archivo XPS debe ser Salida de impresión -> Horrible, borroso, pero al menos mucho mejor que el archivo xps
Y ahora la parte misteriosa: Si imprimo directamente desde el DocumentViewer (en el que FixedDocumentSequence parece perfecto), obtengo el mismo resultado borroso de la primera impresión.
Mi idea sobre este caso es que el sistema XPS de WPF rasteriza el contenido y lo coloca como mapa de bits de baja calidad dentro del documento xps. Son todos los vectores, y a pesar de esto, la salida siempre parece familiar a un mapa de bits de baja resolución.
Agradeceria cualquier ayuda. Estoy sin ideas. Traté mucho de depurar este problema, pero de alguna manera parece ser algo simple y delicado al mismo tiempo.
Yo también he estado luchando contra la rasterización como un loco. no es divertido en absoluto. –