關於在 VB.NET 下 crystal report 的打印問題,還望賜教...

时间:2023-01-16 16:02:43
我在 VB.NET 裡用 CrystalReportViewer 來開發水晶報表,遇到問題如下:

我先在打印機上設置了一種紙張格式,然後在水晶報表裡把該格式設為默認的紙張,

然後用 VB.NET 裡的 CrystalReportViewer 來顯示報表,

顯示是正常的,按照我設置的紙張格式顯示,

但是我按了打印按鈕後,在跳出來的打印設置窗口裡查看紙張大小時,

確發現默認的紙張大小不是我設置的大小,而是系統默認的 Letter 格式.

這樣的話,我每打一次,都要重新去選擇我要的紙張格式會很麻煩,

請問怎麼做能夠把打印設置窗口裡的默認紙張大小也設為我設置的大小?

謝謝各位大俠幫忙,小弟感激不盡...

9 个解决方案

#1


誰來救救我啊...

#2



我也遇到和你同样的我问题
不在水晶报表里面调

在控制面版的打印机属性里,选择一个打印机,按右键,然后选择“打印首选项"--->“纸张/质量”--->"高级"
选择要默认的打印纸张,改成你要打印的纸张。如果没有,在”文件“菜单下选择“服务器属性”
定制一个格式。

这样配置后在本机好象还是出现这样的问题,我拿到客户那,把软件安装到客户的电脑上,用客户的打印机打居然好了,具体的原因不是很清楚
不妨你也试试

#3


这个是肯定的了,

你打印机的是默認的 Letter 格式

把它设为水晶报表里的纸张

#4


我在水晶報表和打印機裡都設置了我自己定義的格式,

但是假如我把默認格式設為打印機本身有的格式,如A4,A3等,

那麼在打印的時候,默認的格式就是A4或A3.

我查看過 CrystalDecisions.[Shared].PaperSize 裡的格式,

好像你設置的默認格式只有存在於 CrystalDecisions.[Shared].PaperSize 的才能以默認格式顯示,

否則只能以 letter 顯示.

我有想過能否自己建立一個格式,

Dim aa As System.Drawing.Printing.PaperSize
aa.PaperName = "hrtst"
aa.Height = 400
aa.Width = 787
rptReports.PrintOptions.PaperSize = aa.PaperName

但是該格式無法被應用,或許我的寫法就是錯的,或許無法以該方法來解決.

請各位幫忙...

#5


頂...

#6


沒人能解決了嗎?

#7


MyReportDoc.PrintOptions.PaperSize = PaperSize.PaperA4 '纸张大小
MyReportDoc.PrintOptions.PaperOrientation = PaperOrientation.Portrait  '方向—纵向
MyReportDoc.PrintOptions.PrinterName = "" '设置打印机(打印机名称,空为系统默认打印机)
MyReportDoc.PrintToPrinter(0, False, 0, 0) '输出到打印机

#8


呵呵,下班前来帮你回一下:

Dim dry As New CrystalReport1
        dry.SetDataSource(DataSet1.Tables(0))
        CView1.ReportSource = dry
        dry.PrintOptions.PrinterName = ""
        dry.PrintOptions.PaperSize = CrystalDecisions.[Shared].PaperSize.PaperA5
        dry.PrintOptions.PaperOrientation = CrystalDecisions.[Shared].PaperOrientation.Landscape
        dry.Refresh()
        dry.PrintToPrinter(0, False, 0, 0)

试试结果怎样?

#9


up

#1


誰來救救我啊...

#2



我也遇到和你同样的我问题
不在水晶报表里面调

在控制面版的打印机属性里,选择一个打印机,按右键,然后选择“打印首选项"--->“纸张/质量”--->"高级"
选择要默认的打印纸张,改成你要打印的纸张。如果没有,在”文件“菜单下选择“服务器属性”
定制一个格式。

这样配置后在本机好象还是出现这样的问题,我拿到客户那,把软件安装到客户的电脑上,用客户的打印机打居然好了,具体的原因不是很清楚
不妨你也试试

#3


这个是肯定的了,

你打印机的是默認的 Letter 格式

把它设为水晶报表里的纸张

#4


我在水晶報表和打印機裡都設置了我自己定義的格式,

但是假如我把默認格式設為打印機本身有的格式,如A4,A3等,

那麼在打印的時候,默認的格式就是A4或A3.

我查看過 CrystalDecisions.[Shared].PaperSize 裡的格式,

好像你設置的默認格式只有存在於 CrystalDecisions.[Shared].PaperSize 的才能以默認格式顯示,

否則只能以 letter 顯示.

我有想過能否自己建立一個格式,

Dim aa As System.Drawing.Printing.PaperSize
aa.PaperName = "hrtst"
aa.Height = 400
aa.Width = 787
rptReports.PrintOptions.PaperSize = aa.PaperName

但是該格式無法被應用,或許我的寫法就是錯的,或許無法以該方法來解決.

請各位幫忙...

#5


頂...

#6


沒人能解決了嗎?

#7


MyReportDoc.PrintOptions.PaperSize = PaperSize.PaperA4 '纸张大小
MyReportDoc.PrintOptions.PaperOrientation = PaperOrientation.Portrait  '方向—纵向
MyReportDoc.PrintOptions.PrinterName = "" '设置打印机(打印机名称,空为系统默认打印机)
MyReportDoc.PrintToPrinter(0, False, 0, 0) '输出到打印机

#8


呵呵,下班前来帮你回一下:

Dim dry As New CrystalReport1
        dry.SetDataSource(DataSet1.Tables(0))
        CView1.ReportSource = dry
        dry.PrintOptions.PrinterName = ""
        dry.PrintOptions.PaperSize = CrystalDecisions.[Shared].PaperSize.PaperA5
        dry.PrintOptions.PaperOrientation = CrystalDecisions.[Shared].PaperOrientation.Landscape
        dry.Refresh()
        dry.PrintToPrinter(0, False, 0, 0)

试试结果怎样?

#9


up