Re: How to print in full page without margins
- From: "Judge" <Judge@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Sat, 27 Aug 2005 11:57:16 -0700
SharpCoderMP. Depends on the printer. It returns correct but the printer
won't obey that margin. Thats the main problem coz it behave differently on
different printers.
"SharpCoderMP" wrote:
> how big is the difference between the size you get from code and the
> actual printed one?
>
> Judge wrote:
> > Hi Ron,
> > I found a great set of codes and article that you post in the other forum
> > for getting the printer's hard margin throught GetDeviceCaps.
> >
> > I was able to retrieve the correct hard margins through GetDeviceCaps but I
> > am unable to tell the printer to use that hard margins to draw maximum
> > printable area. I have the following code for setting the margins.
> >
> > IntPtr hDc = new IntPtr();
> > hDc = e.Graphics.GetHdc();
> > PrintUtil.GetHardMargins(hDc, ref leftHardMargin, ref topHardMargin, ref
> > rightHardMargin, ref bottomHardMargin);
> > e.Graphics.ReleaseHdc(hDc);
> >
> >
> >
> > leftMargin = Convert.ToInt32(leftHardMargin);
> > topMargin = Convert.ToInt32(topHardMargin);
> > rightMargin = Convert.ToInt32(rightHardMargin);
> > bottomMargin = Convert.ToInt32(bottomHardMargin);
> >
> > this.DefaultPageSettings.Margins = new
> > Margins(leftMargin,leftMargin,topMargin,topMargin);
> >
> > this.OriginAtMargins = true;
> > Rectangle myRect = new Rectangle(leftMargin, topMargin, rightMargin,
> > bottomMargin);
> >
> >
> > e.Graphics.DrawRectangle(Pens.Black, myRect );
> >
> > The printer cuts of the right side of the rectangle box. And the printer's
> > left offeset seems to be wider than the printer's actual printable area which
> > I tested with left and right margin set to zero. So I can see where the
> > printer start printing on the page.
> >
> > I have tried so many ways of setting printers margins but none seems to work.
> >
> > Furthermore, my way of setting margins have different effects on different
> > printers.
> >
> > Please help me figure out what is making this weird behavior.
> >
> > Thanks in advance
> >
> >
> > "Ron Allen" wrote:
> >
> >
> >> Most printers can't print all the way to the physical margins. You are
> >>undoubtedly seeing the physical offset for the hard margins for your page.
> >>You can PInvoke GetDeviceCaps to get the exact physical margins for the
> >>printer drawing on a page and you could then scale the drawing so that all
> >>your information will fit or just offset things if you don't need the actual
> >>whole page size.
> >> There are some printers that can print all the way to the margins for
> >>larger paper but they tend to be very expensive.
> >>
> >>Ron Allen
> >>"zhaounknown" <zhaounknown@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
> >>news:AB95B24B-D809-4833-B4E7-AC6219F114D4@xxxxxxxxxxxxxxxx
> >>
> >>>I set the DefaultPageSettings.Margins.Left/Right/Top/Bottom to 0, it
> >>>doesn't
> >>>seem to work for the Left margin for two printers (HP and Brother).
> >>>
> >>>Am I missing any other properties that should be set? Thanks a lot.
> >>
> >>
> >>
>
.
- References:
- Re: How to print in full page without margins
- From: Judge
- Re: How to print in full page without margins
- From: SharpCoderMP
- Re: How to print in full page without margins
- Prev by Date: Re: How to print in full page without margins
- Next by Date: DrawImage Bug in .NET 2.0 ?
- Previous by thread: Re: How to print in full page without margins
- Next by thread: Re: How to print in full page without margins
- Index(es):
Relevant Pages
|