By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
429,263 Members | 2,640 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 429,263 IT Pros & Developers. It's quick & easy.

How to change printer's physical print margins thru VB coding?

P: n/a
Hi,
I am creating application in VB 2005. and when I print report it adds extra
0.45 cm margin on left and top, and the reason for this is physical margins
of printer.

Is it possible to change printer's physical margins using VB coding?

Cheers
--
Osmotion Blue
Jul 31 '06 #1
Share this Question
Share on Google+
7 Replies


P: n/a
You can use the margin property of

PrintDocument.DefaultPageSettings

PrintDocument.DefaultPageSettings.Margins.Top = ...
(hundredths of an inch)
PrintDocument.DefaultPageSettings.Margins.Bottom = ...
PrintDocument.DefaultPageSettings.Margins.Left = ...
PrintDocument.DefaultPageSettings.Margins.Right = ...
(Imports System.Drawing.Printing)

http://msdn2.microsoft.com/en-us/lib...rs(d=ide).aspx

-tom

Mark ha scritto:
Hi,
I am creating application in VB 2005. and when I print report it adds extra
0.45 cm margin on left and top, and the reason for this is physical margins
of printer.

Is it possible to change printer's physical margins using VB coding?

Cheers
--
Osmotion Blue
Jul 31 '06 #2

P: n/a
Hi Tom,
Thanks for reply
Using the code u sent sets the margins that we can see in print preview but
the physical margins of printer will be added to this margins. So I need to
change printer's physical margins by VB coding.

Another problem is that I am creating PrintDocument object but I am using
report viewer's print button to display print dialogue. I do not have any
idea how to handle this type of situation.

Any idea?

--
Osmotion Blue
"to**************@uniroma1.it" wrote:
You can use the margin property of

PrintDocument.DefaultPageSettings

PrintDocument.DefaultPageSettings.Margins.Top = ...
(hundredths of an inch)
PrintDocument.DefaultPageSettings.Margins.Bottom = ...
PrintDocument.DefaultPageSettings.Margins.Left = ...
PrintDocument.DefaultPageSettings.Margins.Right = ...
(Imports System.Drawing.Printing)

http://msdn2.microsoft.com/en-us/lib...rs(d=ide).aspx

-tom

Mark ha scritto:
Hi,
I am creating application in VB 2005. and when I print report it adds extra
0.45 cm margin on left and top, and the reason for this is physical margins
of printer.

Is it possible to change printer's physical margins using VB coding?

Cheers
--
Osmotion Blue

Jul 31 '06 #3

P: n/a

Mark ha scritto:
Hi Tom,
Thanks for reply
Using the code u sent sets the margins that we can see in print preview but
the physical margins of printer will be added to this margins. So I need to
change printer's physical margins by VB coding.
make sure to set the also the right page size. There is no such a thing
like
"margins are added".
>
Another problem is that I am creating PrintDocument object but I am using
report viewer's print button to display print dialogue. I do not have any
idea how to handle this type of situation.
Never used report viewer. Be more specific: someone else may help you
>
Any idea?

--
Osmotion Blue
"to**************@uniroma1.it" wrote:
You can use the margin property of

PrintDocument.DefaultPageSettings

PrintDocument.DefaultPageSettings.Margins.Top = ...
(hundredths of an inch)
PrintDocument.DefaultPageSettings.Margins.Bottom = ...
PrintDocument.DefaultPageSettings.Margins.Left = ...
PrintDocument.DefaultPageSettings.Margins.Right = ...
(Imports System.Drawing.Printing)

http://msdn2.microsoft.com/en-us/lib...rs(d=ide).aspx

-tom

Mark ha scritto:
Hi,
I am creating application in VB 2005. and when I print report it adds extra
0.45 cm margin on left and top, and the reason for this is physical margins
of printer.
>
Is it possible to change printer's physical margins using VB coding?
>
Cheers
--
Osmotion Blue
Jul 31 '06 #4

P: n/a
Hi Tom,
If we use this code
Dim p As New PrinterSettings()
For Each s As String In PrinterSettings.InstalledPrinters
p.PrinterName = s
MsgBox(p.DefaultPageSettings.PrintableArea.ToStrin g)
Next
we will get each printer's default settings.

and if use
p.DefaultPageSettings.Margins.ToString
then this will give margins we can see in the print preview.

So if printer's default physical margin is 0 then we will not get any
difference between print preview and the printed page.

But if printer's default left physical margin is 17 (hundredth of inch) then
it will add extra 0.17 inch (0.43 cm) in addition to the left margin that we
set for the report.

--
Osmotion Blue
"to**************@uniroma1.it" wrote:
>
Mark ha scritto:
Hi Tom,
Thanks for reply
Using the code u sent sets the margins that we can see in print preview but
the physical margins of printer will be added to this margins. So I need to
change printer's physical margins by VB coding.

make sure to set the also the right page size. There is no such a thing
like
"margins are added".

Another problem is that I am creating PrintDocument object but I am using
report viewer's print button to display print dialogue. I do not have any
idea how to handle this type of situation.

Never used report viewer. Be more specific: someone else may help you

Any idea?

--
Osmotion Blue
"to**************@uniroma1.it" wrote:
You can use the margin property of
>
PrintDocument.DefaultPageSettings
>
PrintDocument.DefaultPageSettings.Margins.Top = ...
(hundredths of an inch)
PrintDocument.DefaultPageSettings.Margins.Bottom = ...
PrintDocument.DefaultPageSettings.Margins.Left = ...
PrintDocument.DefaultPageSettings.Margins.Right = ...
>
>
(Imports System.Drawing.Printing)
>
http://msdn2.microsoft.com/en-us/lib...rs(d=ide).aspx
>
-tom
>
Mark ha scritto:
>
Hi,
I am creating application in VB 2005. and when I print report it adds extra
0.45 cm margin on left and top, and the reason for this is physical margins
of printer.

Is it possible to change printer's physical margins using VB coding?

Cheers
--
Osmotion Blue
>
>

Jul 31 '06 #5

P: n/a
Use a PaperSize which matches *exactly* your paper (e.g. A4 or
whatever)
then set the margin to a value that includes (that is >=) the
"physical" margin
of the printer. Usually normal printers are not capable to use the
entire surface of the sheet
and leave some small margin, which I am calling "physical". Your margin
must be equal or greater than that in order not to have your drawing
clipped.

PrintDocument.DefaultPageSettings.PaperSize = New
Printing.PaperSize("Custom", 827, 1169) 'A4
'set margin so that they are at least equal to the "physical"
margins of the printer

[The PrintableArea property is not so important, unless you want to
make an attempt
to establish the size "physical" margins are. For you purposes you
might disregard this detail.
You can set it later, after you are already able to print fine with
arbitrary margins (anyway greater than the "physical" ones)]

-tom
Mark ha scritto:
Hi Tom,
If we use this code
Dim p As New PrinterSettings()
For Each s As String In PrinterSettings.InstalledPrinters
p.PrinterName = s
MsgBox(p.DefaultPageSettings.PrintableArea.ToStrin g)
Next
we will get each printer's default settings.

and if use
p.DefaultPageSettings.Margins.ToString
then this will give margins we can see in the print preview.

So if printer's default physical margin is 0 then we will not get any
difference between print preview and the printed page.

But if printer's default left physical margin is 17 (hundredth of inch) then
it will add extra 0.17 inch (0.43 cm) in addition to the left margin that we
set for the report.

--
Osmotion Blue
"to**************@uniroma1.it" wrote:

Mark ha scritto:
Hi Tom,
Thanks for reply
Using the code u sent sets the margins that we can see in print preview but
the physical margins of printer will be added to this margins. So I need to
change printer's physical margins by VB coding.
make sure to set the also the right page size. There is no such a thing
like
"margins are added".
>
Another problem is that I am creating PrintDocument object but I am using
report viewer's print button to display print dialogue. I do not have any
idea how to handle this type of situation.
Never used report viewer. Be more specific: someone else may help you
>
Any idea?
>
--
Osmotion Blue
>
>
"to**************@uniroma1.it" wrote:
>
You can use the margin property of

PrintDocument.DefaultPageSettings

PrintDocument.DefaultPageSettings.Margins.Top = ...
(hundredths of an inch)
PrintDocument.DefaultPageSettings.Margins.Bottom = ...
PrintDocument.DefaultPageSettings.Margins.Left = ...
PrintDocument.DefaultPageSettings.Margins.Right = ...


(Imports System.Drawing.Printing)

http://msdn2.microsoft.com/en-us/lib...rs(d=ide).aspx

-tom

Mark ha scritto:

Hi,
I am creating application in VB 2005. and when I print report it adds extra
0.45 cm margin on left and top, and the reason for this is physical margins
of printer.
>
Is it possible to change printer's physical margins using VB coding?
>
Cheers
--
Osmotion Blue
Aug 1 '06 #6

P: n/a
Margins that I have set are greater than physical margins, but physical
margins are added to the margins that I have set.

And other issue is that I can not use PrintDocumnet object because I am
using report viewer.

Any idea?

"to**************@uniroma1.it" wrote:
Use a PaperSize which matches *exactly* your paper (e.g. A4 or
whatever)
then set the margin to a value that includes (that is >=) the
"physical" margin
of the printer. Usually normal printers are not capable to use the
entire surface of the sheet
and leave some small margin, which I am calling "physical". Your margin
must be equal or greater than that in order not to have your drawing
clipped.

PrintDocument.DefaultPageSettings.PaperSize = New
Printing.PaperSize("Custom", 827, 1169) 'A4
'set margin so that they are at least equal to the "physical"
margins of the printer

[The PrintableArea property is not so important, unless you want to
make an attempt
to establish the size "physical" margins are. For you purposes you
might disregard this detail.
You can set it later, after you are already able to print fine with
arbitrary margins (anyway greater than the "physical" ones)]

-tom
Mark ha scritto:
Hi Tom,
If we use this code
Dim p As New PrinterSettings()
For Each s As String In PrinterSettings.InstalledPrinters
p.PrinterName = s
MsgBox(p.DefaultPageSettings.PrintableArea.ToStrin g)
Next
we will get each printer's default settings.

and if use
p.DefaultPageSettings.Margins.ToString
then this will give margins we can see in the print preview.

So if printer's default physical margin is 0 then we will not get any
difference between print preview and the printed page.

But if printer's default left physical margin is 17 (hundredth of inch) then
it will add extra 0.17 inch (0.43 cm) in addition to the left margin that we
set for the report.

--
Osmotion Blue
"to**************@uniroma1.it" wrote:
>
Mark ha scritto:
>
Hi Tom,
Thanks for reply
Using the code u sent sets the margins that we can see in print preview but
the physical margins of printer will be added to this margins. So I need to
change printer's physical margins by VB coding.
>
make sure to set the also the right page size. There is no such a thing
like
"margins are added".
>

Another problem is that I am creating PrintDocument object but I am using
report viewer's print button to display print dialogue. I do not have any
idea how to handle this type of situation.
>
Never used report viewer. Be more specific: someone else may help you
>

Any idea?

--
Osmotion Blue


"to**************@uniroma1.it" wrote:

You can use the margin property of
>
PrintDocument.DefaultPageSettings
>
PrintDocument.DefaultPageSettings.Margins.Top = ...
(hundredths of an inch)
PrintDocument.DefaultPageSettings.Margins.Bottom = ...
PrintDocument.DefaultPageSettings.Margins.Left = ...
PrintDocument.DefaultPageSettings.Margins.Right = ...
>
>
(Imports System.Drawing.Printing)
>
http://msdn2.microsoft.com/en-us/lib...rs(d=ide).aspx
>
-tom
>
Mark ha scritto:
>
Hi,
I am creating application in VB 2005. and when I print report it adds extra
0.45 cm margin on left and top, and the reason for this is physical margins
of printer.

Is it possible to change printer's physical margins using VB coding?

Cheers
--
Osmotion Blue
>
>
>
>

Aug 1 '06 #7

P: n/a
Ah, that's all another story. I thought you were using a standard
PrintDocument.

About report viewer I know nothing (I prefer to code the report myself:
these tools are too primitive :).

-tom

Hinesh ha scritto:
Margins that I have set are greater than physical margins, but physical
margins are added to the margins that I have set.

And other issue is that I can not use PrintDocumnet object because I am
using report viewer.

Any idea?

"to**************@uniroma1.it" wrote:
Use a PaperSize which matches *exactly* your paper (e.g. A4 or
whatever)
then set the margin to a value that includes (that is >=) the
"physical" margin
of the printer. Usually normal printers are not capable to use the
entire surface of the sheet
and leave some small margin, which I am calling "physical". Your margin
must be equal or greater than that in order not to have your drawing
clipped.

PrintDocument.DefaultPageSettings.PaperSize = New
Printing.PaperSize("Custom", 827, 1169) 'A4
'set margin so that they are at least equal to the "physical"
margins of the printer

[The PrintableArea property is not so important, unless you want to
make an attempt
to establish the size "physical" margins are. For you purposes you
might disregard this detail.
You can set it later, after you are already able to print fine with
arbitrary margins (anyway greater than the "physical" ones)]

-tom
Mark ha scritto:
Hi Tom,
If we use this code
Dim p As New PrinterSettings()
For Each s As String In PrinterSettings.InstalledPrinters
p.PrinterName = s
MsgBox(p.DefaultPageSettings.PrintableArea.ToStrin g)
Next
we will get each printer's default settings.
>
and if use
p.DefaultPageSettings.Margins.ToString
then this will give margins we can see in the print preview.
>
So if printer's default physical margin is 0 then we will not get any
difference between print preview and the printed page.
>
But if printer's default left physical margin is 17 (hundredth of inch) then
it will add extra 0.17 inch (0.43 cm) in addition to the left margin that we
set for the report.
>
--
Osmotion Blue
>
>
"to**************@uniroma1.it" wrote:
>

Mark ha scritto:

Hi Tom,
Thanks for reply
Using the code u sent sets the margins that we can see in print preview but
the physical margins of printer will be added to this margins. So I need to
change printer's physical margins by VB coding.

make sure to set the also the right page size. There is no such a thing
like
"margins are added".

>
Another problem is that I am creating PrintDocument object but I am using
report viewer's print button to display print dialogue. I do not have any
idea how to handle this type of situation.

Never used report viewer. Be more specific: someone else may help you

>
Any idea?
>
--
Osmotion Blue
>
>
"to**************@uniroma1.it" wrote:
>
You can use the margin property of

PrintDocument.DefaultPageSettings

PrintDocument.DefaultPageSettings.Margins.Top = ...
(hundredths of an inch)
PrintDocument.DefaultPageSettings.Margins.Bottom = ...
PrintDocument.DefaultPageSettings.Margins.Left = ...
PrintDocument.DefaultPageSettings.Margins.Right = ...


(Imports System.Drawing.Printing)

http://msdn2.microsoft.com/en-us/lib...rs(d=ide).aspx

-tom

Mark ha scritto:

Hi,
I am creating application in VB 2005. and when I print report it adds extra
0.45 cm margin on left and top, and the reason for this is physical margins
of printer.
>
Is it possible to change printer's physical margins using VB coding?
>
Cheers
--
Osmotion Blue


Aug 2 '06 #8

This discussion thread is closed

Replies have been disabled for this discussion.