2014-10-29 65 views
0

我正嘗試使用PrintDialog將我自己的XPS文件打印到打印機。但是打印結果與原來的XPS不一樣。 XPS中的單詞丟失,並且打印結果中沒有顯示任何文本打印結果不包含原始XPS文件

我試圖對PrintTicket進行一些更改,但無法獲得正確的打印輸出。

我該如何設置printdialog才能獲得正確的打印結果?或者有沒有其他的方式來在WPF項目中進行打印?

示例代碼。原XPS

打印結果的一部分

public void Print() 
    { 
     string fileName = "D:\\PAM\\in.xps"; 

     XpsDocument xpsFile = new XpsDocument(fileName, FileAccess.ReadWrite); 

     PrintDialog printDialog = new PrintDialog(); 
     printDialog.ShowDialog(); 
     printDialog.PrintTicket.PageOrientation = PageOrientation.Landscape; 
     printDialog.PrintTicket.OutputQuality = System.Printing.OutputQuality.High; 
     printDialog.PrintTicket.OutputColor = System.Printing.OutputColor.Color; 
     printDialog.PrintDocument(xpsFile.GetFixedDocumentSequence().DocumentPaginator, ""); 

     xpsFile.Close(); 

    } 

屏幕截圖

回答

0

不知道,如果用戶確實存在 - 但對於那些誰在這個問題迷迷糊糊的,打印XPS文件通常會做與XpsDocumentWriter。

How to: Programmatically Print XPS Files

注意,所有的打印機都不同,可能需要向打印機的製造商進行磋商,以調試問題。我發現的是,並非所有打印機都支持XPS文檔打印。

在一個有趣的案例中,我在安裝了PCL打印驅動程序的施樂打印機上進行打印。當我看着PrintDialog.PrintQueue.IsXps時,我看到它等於錯誤。然後我知道打印機有一個特定的XPS打印機驅動程序。我安裝了該驅動程序 - 它將另一臺打印機添加到我的打印機列表中 - 並使用該驅動程序進行打印,並且IsXps等於true。這是打印機領域的許多問題之一。