2014-10-06 114 views
0

有沒有辦法讓我用VB 2010更改默認打印機的打印機方向,就像您通常從打印機和設備更改並輸入打印機首選項一樣?VB.NET設置默認的打印機方向

Try 
     Dim MyProcess As New Process 
     MyProcess.StartInfo.CreateNoWindow = False 
     MyProcess.StartInfo.Verb = "print" 
     MyProcess.StartInfo.FileName = "outputvb.pdf" 
     MyProcess.Start() 
     MyProcess.WaitForExit(2000) 
     Try 
      MyProcess.CloseMainWindow() 
      MyProcess.Close() 
     Catch ex As Exception 

     End Try 
    Catch ex As Exception 
     MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try 

UPDATE: 檢查舊的文章,你能指點我一個更好的解決方案,然後導出的ReportViewer到PDF然後打印從Visual Basic PDF?

基本上我真正想做的是使用數據加載reportviewer並在加載後自動打印它,而不用按任何按鈕到默認打印機。

謝謝

回答

0

我最終的結果是將我的報告轉換爲TIF文件,並從Windows API(在普通PC上快20倍)打印TIF文件。

非常感謝大家的建議,即使很困難也沒有人使用過。

0

有幾種方法可以做到這一點。頁面設置或打印機。

使用例如從Msdn

Dim Printer As New Printer 
Printer.Orientation = vbPRORLandscape 

或者您可以使用頁面設置。再次,從MSDN

 Dim pd As New PrintDocument() 
     pd.PrinterSettings.PrinterName = printer 
     ' Set the page orientation to landscape. 
     pd.DefaultPageSettings.Landscape = True 
     pd.Print() 

UPDATE:

所以我看到你正在使用的過程進行打印,而不是打印機或打印文檔(有的不喜歡特別的Adobe Reader,here's一論壇爲什麼)。如果我是你,我不會那麼做(爲什麼不使用已經很好的支持printerdoc api?),但這是你的問題,我會盡力回答它。

答案是它取決於。你有很多不同的過程用於打印PDF,最喜歡使用Adobe Reader,就像我說過的一些人不喜歡它。你必須找出字符串/命令對於法律/風景的特定過程。

但如果你希望Adobe,這裏是你的答案的一些信息:link

+0

我正在打印PDF,因此我不認爲這可行,請檢查更新的帖子。 – EzCrazy 2014-10-06 15:42:55

+0

但是,如何將報表查看器轉換爲文檔雖然當前MSDN代碼無法與DOC類型配合使用 – EzCrazy 2014-10-06 19:10:58

+0

您並未將Adobe轉換爲文檔,而是將PDF轉換爲文檔。我認爲你對這裏發生的事情有一個基本的瞭解。但是,就像我所說的那樣,有一個關於如何使用adobe使用進程進行打印的鏈接。或者,你可以只是谷歌如何做到這一點,就像在這裏:http://www.vbforums.com/showthread.php?670781-Printing-pdf-documents-from-vb-2010你需要關注你問的問題這裏。你說的方向。 – Kat 2014-10-07 13:34:01

0

我建議你使用 gsView

與後記。我嘗試使用Adobe Reader,但它在服務器上不合法,並且在大量打印中不可靠。您可以更改命令參數中的方向。

相關問題