I am using C# with Winforms. I am trying to print bills on a paper roll. The width of the paper is 3in but the length of the paper is dynamic (its a roll paper). The length depends on how many items are there in the list. E.g. in a purchase if there are 100 items sold then it will be quite long roll while for a single item purchased it would be of small length.
When I print the report, after the end job, printer eject the last page more than I need. It eject paper as long as A4 size. I want to print the required lines, then stop printing. I use a roll of paper, not A4 or A3 and an Epson LQ-300 + II printer.
To be more specific, printing is always done to page-sized units. If I set the page to be 3in x 8in then I always end up with a printout that is a multiple of 8in long. If I have a 9in bill to print, I end up with a 16in printout, wasting 7in of paper. How can I print with the last page being only as long as it needs to be?
Here is the code:
private void printDoc_PrintPage(Object sender, PrintPageEventArgs e)
{
Font printFont = new Font("Courier New", 12);
int y = 15;
e.Graphics.DrawString("a Line", printFont, Brushes.Black, 0, y); y = y + 20;
e.Graphics.DrawString(" Line", printFont, Brushes.Black, 0, y); y = y + 25;
e.Graphics.DrawString(" Line", printFont, Brushes.Black, 0, y); y = y + 35;
e.Graphics.DrawString(" Line", printFont, Brushes.Black, 0, y); y = y + 45;
}
Here is how you can define a custom paper size and use it in your report.
Open printer folder (from Control Panel).
Open Server Properties from the file menu. It will open Printer and Server Properties Dialogue box.
Select Check Create a new Form
Specify page width height. I suggest you make your height 3 inches.
Now click on the Save Form button.
Your custom page is ready.
set this paper as your default paper size both in the report as well as in the printer properties.
Now you are good to go.
You can also use the print preview option to complete this process.
Have you tried using a page that is only "one line" long?
Omit the upper and lower border, and you can print non stop.
Now add a bit (So the page can be torn off) and eject that.
Try this:
See: http://msdn.microsoft.com/en-us/library/system.drawing.printing.pagesettings.papersize.aspx
You can also adjust the paper size on the fly. Less work to do it one line per page, but I'd imagine this would produce a nicer print preview if anyone were to have cause to do that: