note: this Method requires you to set a printer with a default paper size first
then access this printer when printing
This Method works with an Epson LX-300+ ii Dot-Matrix Printer
If you are using a Printer especially for Printing Receipts
here are the steps on how to set your printer for desired paper size
First Set up Printer to be used:
Go to Devices and Printers
in Printers select the Printer you are going to use and click - right click Printer Properties
Click Preferences... Button. Under Main Tab - Change Document Size to User Defined
a new New Window will appear.
in Paper Size Name specify the name (i.e. OR Paper)
and change paper width and height as desired
Click Save then OK
then set your printer by Pressing right click then set as Default Printer
Add these line of code for your printing. You can still use parameters and datasets in printer
Dim c As Integer
Dim doctoprint As New System.Drawing.Printing.PrintDocument()
doctoprint.PrinterSettings.PrinterName = "EPSON L1300 Series"
Dim rawKind As Integer
For c = 0 To doctoprint.PrinterSettings.PaperSizes.Count - 1
If doctoprint.PrinterSettings.PaperSizes(c).PaperName = "OR Receipts" Then
rawKind = CInt(doctoprint.PrinterSettings.PaperSizes(c).GetType().GetField("kind", Reflection.BindingFlags.Instance Or
Reflection.BindingFlags.NonPublic).GetValue(doctoprint.PrinterSettings.PaperSizes(c)))
Exit For
End If
Next
Report1.PrintOptions.PaperSize = CType(rawKind, CrystalDecisions.Shared.PaperSize)
frmPreview.CrystalReportViewer1.ReportSource = Report1
Report1.PrintToPrinter(1, False, 1, 1)