2015-09-14 43 views
1

我試圖附加PDF文件的打印對話框,但我還沒有發現這樣做的方式。附加一個PDF文件的打印對話框

我使用WPF應用程序,我有一些代碼與印刷相關的,看起來像這樣:

private void Imprimir() 
    { 
     try 
     { 
      FixedDocument document = null; 
      PageContent pageContent = null; 
      FixedPage fixedPage = null; 

      PrintDialog printDlg = new PrintDialog(); 
      if (printDlg.ShowDialog() != true) 
       return; 
      document.DocumentPaginator.PageSize = new System.Windows.Size(1400, 1450); 
      fixedPage.Width = document.DocumentPaginator.PageSize.Width; 
      fixedPage.Height = document.DocumentPaginator.PageSize.Height; 
      fixedPage.Margin = new Thickness(96, 96, 0, 0); 
      fixedPage.Children.Add(this); 

      ((System.Windows.Markup.IAddChild)pageContent).AddChild(fixedPage); 
      document.Pages.Add(pageContent); 
      printDlg.PrintDocument(document.DocumentPaginator, "Impresion Cierre"); 
      fixedPage.Children.Clear(); 

     } 
     catch (Exception ex) 
     { 
      System.Windows.MessageBox.Show(ex.Message); 
     } 
    } 

但是,通過這種方式,我只是打印UI元素加入到固定頁面。 我在尋找其他的代碼,但我什麼也沒找到。 所以,我不知道是否可以將PDF文件本地存儲到打印對話框?

感謝您的幫助......

回答

0

那麼你可以使用PrintDialog類無法做到這一點。有幾個選項,這取決於你的目標:

 var printQueue = LocalPrintServer.GetDefaultPrintQueue(); 
     using (var input = File.OpenRead("path_to_your.pdf")) { 
      using (var job = printQueue.AddJob()) { 
       using (var output = job.JobStream) { 
        input.CopyTo(output); 
       } 
      } 
     } 

會悄悄地發送打印作業時您的文件下載到本地打印隊列。打印作業是可配置的。

另外,您可以使用Adobe Reader來處理,對於您(或安裝的用戶的機器上的另一個pdf閱讀器),但啓動過程與路徑到PDF的文件名和動詞=「打印」。

還有一個選擇是使用第三方工具(如Ghostscript的),它可以幫你。

+0

好吧,那我真正需要的是讓PDF文件,然後顯示一個打印對話框至極必須包含PDF,因此用戶將不得不選擇打印機最後打印該文檔... –