我使用WPF打印路徑來處理在我們的應用程序中創建的大型大圖。整個圖表由視覺效果組成。保存並通過Paginator打印XPSDocument(似乎)會導致內容的光柵化
所謂的「DesignerPaginator」爲圖表分頁(這很簡單)。 從這一點,我做了以下三件事: - 我用PrintDialog.PrintDocument打印文檔(Paginator,Title) - 我還用XpsDocumentWriter.Write(Paginator,PrintTicket)創建了XPS文檔;我保存在HDD - )從XPSDocument我分配XpsDocumentWriter.GetFixedDocumentSequence(到的DocumentViewer
概括地說,下面的代碼是很重要的:
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");
的輸出是下面的:
硬盤上的XPS - >絕對模糊。你無法識別任何東西。它就像一個100倍變焦的GIF文件。 來自DocumentViewer中XPSDocument的FixedDocumentSequence - > Perfect。這應該是什麼XPS文件的意圖是 打印輸出 - >可怕的,模糊的,但至少比xps文件好多了
現在神祕的部分:如果我直接從DocumentViewer打印(其中FixedDocumentSequence看起來很完美),我從第一張照片獲得相同的模糊輸出。
我對這種情況的想法是,WPF的XPS系統柵格化內容並將其作爲低質量位圖放置在xps文檔中。這些都是矢量,儘管如此,輸出對於低分辨率的位圖總是很熟悉。
我將不勝感激任何幫助。我沒有想法。我嘗試了很多方法來調試這個問題,但它似乎在某種程度上似乎是同時又簡單又微妙。
我也一直在瘋狂地對抗光柵化。沒有樂趣。 – 2011-06-12 21:46:26