2012-04-26 189 views
-1

我有一個vb.net應用程序,它使用2個水晶報告打印出報告。第一份報告是A4,第二份是A5。更改打印默認頁面大小

如何將我的代碼訪問打印機的默認設置和更改默認的紙張尺寸每次A4和A5,而不必做手工。

感謝

+0

我從來沒有能夠弄明白。部分問題在於Crystal依賴於您開發Crystal的計算機上安裝的打印機,所以當您想要更改頁面大小時,它會使您符合您的可用容量(這是令人沮喪的,因爲您可以使用該報告,將其移動到沒有該打印機的計算機上,然後運行它)。爲了獲得長寬度的頁面,有時你必須爲打印機安裝驅動程序,因爲之後Crystal會認爲你擁有這些驅動程序。我發現沒有辦法通過代碼來做到這一點。 – 2012-05-03 18:06:42

+0

查看「CrystalDecisions.CrystalReports.Engine.PrintOptions」和PrintOptions變量,查看報告中的可用內容。另一個類似的問題:http://forums.asp.net/t/1437563.aspx/1 – 2012-05-03 18:09:14

回答

0

此工作,但不與MS Word:

Dim pp As New System.Drawing.Printing.PrintDocument 
     For i = 0 To pp.DefaultPageSettings.PrinterSettings.PaperSizes.Count - 1 
      If pp.DefaultPageSettings.PrinterSettings.PaperSizes.Item(i).Kind = System.Drawing.Printing.PaperKind.A4 Then 
       pp.DefaultPageSettings.PaperSize = pp.DefaultPageSettings.PrinterSettings.PaperSizes.Item(i) 
       Exit For 
      End If 
     Next