Re: How to print in full page without margins
- From: "Judge" <Judge@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Sun, 7 Aug 2005 13:28:03 -0700
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.
>
>
>
.
- Follow-Ups:
- Re: How to print in full page without margins
- From: Ron Allen
- Re: How to print in full page without margins
- From: SharpCoderMP
- Re: How to print in full page without margins
- Prev by Date: Bitmap constructor
- Next by Date: Re: How to print in full page without margins
- Previous by thread: Bitmap constructor
- Next by thread: Re: How to print in full page without margins
- Index(es):
Relevant Pages
|