Ich verwende den WPF-Druckpfad, um große große Diagramme zu handhaben, die in unserer Anwendung erstellt wurden. Das gesamte Diagramm besteht aus Visuals.Speichern und Drucken von XPSDocument über Paginator (scheint) verursacht eine Rasterisierung des Inhalts
Ein so genannter "DesignerPaginator" paginiert das Diagramm (es ist ziemlich einfach). Ab diesem Punkt mache ich die folgenden drei Dinge: - Ich drucke das Dokument mit PrintDialog.PrintDocument (Paginator, Titel) - Ich auch ein XPS-Dokument mit XpsDocumentWriter.Write (Paginator, PrintTicket); die ich speichern auf der Festplatte - Von der XpsDocument I XpsDocumentWriter.GetFixedDocumentSequence() zu einem Document
In aller Kürze folgenden Code zuweisen ist wichtig:
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");
Der Ausgang ist die folgende:
XPS auf HDD -> absolut verschwommen. Du kannst nichts erkennen. Es ist wie eine GIF-Datei mit einem 100-fachen Zoom. FixedDocumentSequence aus dem XPSDocument im DocumentViewer -> Perfect. Dies sollte sein, was die XPS-Datei soll Druckausgabe -> Horrible, verschwommen, aber zumindest viel besser als die XPS-Datei
Und jetzt der geheimnisvolle Teil: Wenn ich direkt aus dem DocumentViewer drucken (in dem die FixedDocumentSequence scheint perfekt), bekomme ich die gleiche verschwommene Ausgabe vom ersten Druck.
Mein Gedanke über diesen Fall ist, dass das XPS-System des WPF den Inhalt rastert und das Zeug als qualitativ minderwertige Bitmap in das xps-Dokument legt. Es sind alles Vektoren, und trotzdem erscheint die Ausgabe einer Bitmap mit niedriger Auflösung immer vertraut.
Ich würde jede Hilfe zu schätzen wissen. Ich habe keine Ideen mehr. Ich habe viel versucht, um dieses Problem zu beheben, aber irgendwie scheint es etwas Einfaches und Zartes zu sein.
Auch ich habe die Rasterisierung wie verrückt gekämpft. überhaupt kein Spaß. –