我已创建自定义纸张尺寸自定义纸张尺寸“人联党15×14”在Setting - Printers - File - Server Properties.
现在我想要使用VB.net 2005编程设置水晶报表
当设置自定义纸张尺寸的水晶报表我从VB.net运行报表,Crystal报表查看器显示自定义纸张尺寸的正确预览,但是当我给出打印命令时,它将使用默认打印机纸张尺寸进行打印。 (如Letter)
下面是我用打印的代码:
Public Sub ...
'...
Dim ObjCrReport as new ReportDocument
'...
ObjCrReport.SetDataSource(ObjPrintDataSet.Tables("PrintData"))
SetReportPageSize("SUPP 15 x 14", 1)
'...
End Sub
Private Sub BtnPrintDoc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrintDoc.Click
Try
'Print command
ObjCrReport.PrintToPrinter(1, False, 0, 0)
Catch ex As Exception
MessageBox.Show(ex.Message, "Alert", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Public Sub SetReportPageSize(ByVal mPaperSize As String, ByVal PaperOrientation As Integer)
Try
Dim ObjPrinterSetting As New System.Drawing.Printing.PrinterSettings
Dim PkSize As New System.Drawing.Printing.PaperSize
ObjPrinterSetting.PrinterName = "Epson FX1170"
For i As Integer = 0 To ObjPrinterSetting.PaperSizes.Count - 1
If ObjPrinterSetting.PaperSizes.Item(i).PaperName = mPaperSize.Trim Then
PkSize = ObjPrinterSetting.PaperSizes.Item(i)
Exit For
End If
Next
If PkSize IsNot Nothing Then
Dim myAppPrintOptions As CrystalDecisions.CrystalReports.Engine.PrintOptions = ObjCrReport.PrintOptions
myAppPrintOptions.PrinterName = "Epson FX1170"
myAppPrintOptions.PaperSize = CType(PkSize.RawKind, CrystalDecisions.Shared.PaperSize)
ObjCrReport.PrintOptions.PaperOrientation = IIf(PaperOrientation = 1, _
CrystalDecisions.Shared.PaperOrientation.Portrait, _
CrystalDecisions.Shared.PaperOrientation.Landscape)
End If
PkSize = Nothing
Catch ex As Exception
MessageBox.Show(ex.Message, "Alert", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
如果我使用myAppPrintOptions.PaperSize = PaperSize.PaperLegal
,然后点击打印预览&印刷出现正确的,但我要的是设定不显示自定义纸张尺寸在PaperSize
类中。
上述代码有什么问题?为什么打印Letter Size时Crystal Report预览会在大小预览中显示自定义纸张?有没有更好的方法来实现我的目标?
没有人有任何答案?我在工作中遇到了完全相同的问题。 –
默认情况下,可能是Printer设置为_“Letter Size”_。现在还没有答案,现在是2016年 –