2012-04-26 187 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