Printer paper with customized size

R

Ravi Verma

Windows 98 have this wonderful option, in settings-printers where on printer
properties, we can select custom page size. This is very important and
useful option but it is not included in windows XP not even in windows 2000.
How can microsoft forget that there are lots of accounts and other softwares
that need customized size printing. I mean microsoft should give an user the
option to set his paper size manually like in windows 98. otherwise Windows
XP is handicapp for most of the desktop users.

Regards,
Ravi Verma
 
G

Guest

The custom page size is defined by the printer driver, not Windows XP. Blame
your printer manufacturer.

MD
 
R

Rick \Nutcase\ Rogers

Hi Ravi,

You're using a default printer driver from WinXP and not one supplied by the
printer manufacturer. Download and install a full set from the printer
manufacturer and you should have the options you seek. Windows XP includes
basic function drivers that allow the printer to work, for full
functionality you need a more complex driver set. In Win98, you generally
*had* to use a full driver set as there were no default printer drivers
included with the OS.

--
Best of Luck,

Rick Rogers, aka "Nutcase" - Microsoft MVP

Windows help - www.rickrogers.org
 
D

David Candy

In Win98, you generally
*had* to use a full driver set as there were no default printer drivers
included with the OS.

We must have had different versions.


Display and Print Devices: Windows DDK

Supporting User-Defined Paper Sizes
User-defined paper sizes can be specific to a single print server and are typically customized for a specific application. Hence they are often called customized paper sizes. System administrators use the print folder to define customized paper sizes. If a printer can handle customized paper sizes, vendors must use the printer's GPD file to specify the acceptable range of sizes.

Two methods are provided for describing acceptable size ranges for customized paper:

a.. You can specify size ranges explicitly.
b.. You can specify size ranges relative to the printer's largest paper size.
Specifying Paper Size Ranges Explicitly
To use this method, your GPD file's PaperSize feature must include an *Option entry with a CUSTOMSIZE argument. This entry must contain the following option attributes:

*MinSize
*MaxSize
*MaxPrintableWidth
*MinLeftMargin
*TopMargin
*BottomMargin
*CenterPrintable?
*CursorOrigin
*Command

You can use these GPD entries to create customized paper size descriptions only for printers having the following characteristics:

a.. The printer supports commands to explicitly select customized paper sizes (typically by moving the cursor origin).
b.. The cursor origin remains fixed, relative to the upper left-hand corner of the paper, for all customized paper sizes. (This is typically not true for landscape mode printing, or for printers that are center-fed or right-hand-fed.)
c.. The top and bottom margins are independent of paper size.
d.. If the paper width is less than the sum of the values specified for *MinLeftMargin and *MaxPrintableWidth, there is no right-hand margin. That is, the printer can print to the right edge of the paper.
Command parameters (specified in *Command entries) can be calculated at print time if standard variable expressions are used, typically including the PhysPaperLength and PhysPaperWidth variables. These variables represent the actual paper size requested for the print job, as specified by an application.

Specifying Paper Size Ranges Relative to the Printer's Largest Paper Size
For printers that do not support the characteristics required for specifying customized paper size ranges explicitly, an alternate method is provided, which specifies paper sizes relative to the printer's largest paper size.

To use this method, your GPD file's PaperSize feature must include an *Option entry with a CUSTOMSIZE argument. This entry must contain the following option attributes:

*MinSize
*MaxSize
*MaxPrintableWidth
*CustCursorOriginX
*CustCursorOriginX
*CustPrintableOriginX
*CustPrintableOriginY
*CustPrintableSizeX
*CustPrintableSizeY
*Command

When specifying a size range relative to the printer's largest paper size, use the following alignment rules:

a.. For left-feed printers, the top and left margins of all paper sizes must be aligned.
b.. For right-feed printers, the top and right margins of all paper sizes must be aligned.
c.. For center-feed printers, the top margins and top center points of all paper sizes must be aligned.
The following steps are involved:

1.. Determine the following information for the printer's largest paper size:
a.. The command required to select the largest paper size.
b.. Values that would be used for the largest paper size's *PageDimensions, *CursorOrigin, *PrintableOrigin, and *PrintableArea GPD entries, as if they were going to be included in the GPD file. However, you will not actually place these entries in the file.
2.. Create formulas that specify or calculate the following information for each customized paper size, relative to the printer's largest paper size.
a.. The origin and size of each paper's printable area.
b.. The cursor origin for each paper.
The formulas for step 2 must be CUSTOMSIZE parameter expressions, which are specified as values for the following GPD entries:

*CustCursorOriginX
*CustCursorOriginX
*CustPrintableOriginX
*CustPrintableOriginY
*CustPrintableSizeX
*CustPrintableSizeY

The CUSTOMSIZE option must also include a *Command entry which specifies the command that selects the largest printer size. This command is sent for all custom paper sizes, and the formulas specified for the printable area and cursor origin control where the printer prints on the actual paper, whatever its size.

Sample Calculations
As a simple example, assume your printer supports customized paper sizes that have margins of the same size as the largest paper size's margins. The steps involved are:

1.. Determine values for the largest paper size's *PageDimensions, *CursorOrigin, *PrintableOrigin, and *PrintableArea entries. (Don't put these entries in the GPD file.)
2.. Determine the width of each of the largest paper size's margins in terms of these values, as illustrated in the following pseudo-expressions:
LeftMarginWidth=*PrintableOrigin.x

RightMarginWidth=*PageDimensions.x–*PrintableArea.x–LeftMarginWidth

TopMarginWidth=*PrintableOrigin.y

BottomMarginWidth=*PageDimensions.y–*PrintableArea.y–TopMarginWidth

In these pseudo-expressions, .x and .y represent the horizontal and vertical components of each entry's pair value. For landscape printing, use landscape values for *PrintableArea and *PrintableOrigin.

3.. Now create pseudo-expressions that specify or calculate the printable areas for nonstandard paper sizes.
*CustPrintableOriginX: %d{LeftMarginWidth}

*CustPrintableOriginY: %d{TopMarginWidth}

*CustPrintableSizeX: %d{PhysPaperWidth–LeftMarginWidth–RightMarginWidth}

*CustPrintableSizeY: %d{PhysPaperLength–TopMarginWidth–BottomMarginWidth}

Notice use of the two standard variables, PhysPaperWidth and PhysPaperLength. At runtime, these variables contain the length and width of the actual paper size that has been requested by an application.

Note that these pseudo-expressions are valid whether the paper is left-fed, right-fed, or center-fed.

4.. Plug real values, determined in step 1, into these expressions to create GPD entries. Examples might be:
*CustPrintableOriginX: %d{300}
*CustPrintableOriginY: %d{300}
*CustPrintableSizeX: %d{PhysPaperWidth-600}
*CustPrintableSizeY: %d{PhysPaperLength-600}5.. Create pseudo-expressions that calculate the cursor origin indices. In the following pseudo-expressions, *CursorOrigin.x and *CursorOrigin.y are place holders for the horizontal and vertical components of the pair value for largest paper size's cursor origin.
For left-fed printers:

*CustCursorOriginX: %d{*CursorOrigin.x}

*CustCursorOriginY: %d{*CursorOrigin.y}

For right-fed printers:

*CustCursorOriginX: %d{*CursorOrigin.x+PhysPaperWidth–*PageDimensions.x}

*CustCursorOriginY: %d{*CursorOrigin.y}

For center-fed printers:

*CustCursorOriginX: %d{*CursorOrigin.x+(PhysPaperWidth–PageDimensions.x)/2}

*CustCursorOriginY: %d{*CursorOrigin.y}

6.. Plug real values, determined in step 1, into these expressions to create GPD entries. Examples might be (for center-fed paper):
*CustCursorOriginX: %d{((PhysPaperWidth-14040)/2)+300}
*CustCursorOriginY: %d{180}7.. Specify values for the remaining three GPD entries—*MinSize, *MaxSize, and *MaxPrintableWidth. The value specified for *MaxPrintableWidth is not actually used for this method, but the parser requires the entry to exist, so its value can be set to 1.
A Real Example
The following example GPD file segment describes acceptable customized paper sizes for a center-fed printer. For portrait mode, all margins for all custom paper sizes are 300 master units (1/4 inch) in size. For landscape mode, top and bottom margins are 240 master units while left and right margins are 200 master units.

*Option: CUSTOMSIZE
{
*rcNameID: =USER_DEFINED_SIZE_DISPLAY
*MinSize: PAIR(4200,9000)
*MaxSize: PAIR(14040, 21240)
*MaxPrintableWidth: 14040
*MinLeftMargin: 100
*CenterPrintable?: FALSE
*PageProtectMem: 1692
*InsertBlock: =PaperConstraints
*switch: Orientation
{
*case: PORTRAIT
{
*CustCursorOriginX: %d{((PhysPaperWidth-14040)/2)+300}
*CustCursorOriginY: %d{180}
*CustPrintableOriginX: %d{300}
*CustPrintableOriginY: %d{300}
*CustPrintableSizeX: %d{PhysPaperWidth-600}
*CustPrintableSizeY: %d{PhysPaperLength-600}
*Command: CmdSelect
{
*Order: DOC_SETUP.13
*Cmd: "<1B>&l101a8c1e99F<1B>*p0x0Y<1B>*c0t8064x12528Y"
}
}
*case: LANDSCAPE_CC90
{
*switch: Option20
{
*% The 8100 rotates the landscape job 180 degrees if a stapler
*% is attached, so the staple can be placed in the top left
*% corner of the document. The printer always rotates the
*% landscape job, even if stapling is not selected.
*case: 3KStapler
{
*CustCursorOriginX: %d{((PhysPaperWidth-14040)/2)+200}
*CustCursorOriginY: %d{PhysPaperLength}
*CustPrintableOriginX: %d{200}
*CustPrintableOriginY: %d{240}
*CustPrintableSizeX: %d{PhysPaperWidth-400}
*CustPrintableSizeY: %d{PhysPaperLength-480}
*Command: CmdSelect
{
*Order: DOC_SETUP.13
*Cmd: "<1B>&l101a8c1e63F<1B>*p0x0Y<1B>*c0t12456x8184Y"
}
}
*case: MBM5S
{
*CustCursorOriginX: %d{((PhysPaperWidth-14040)/2)+200}
*CustCursorOriginY: %d{PhysPaperLength}
*CustPrintableOriginX: %d{200}
*CustPrintableOriginY: %d{240}
*CustPrintableSizeX: %d{PhysPaperWidth-400}
*CustPrintableSizeY: %d{PhysPaperLength-480}
*Command: CmdSelect
{
*Order: DOC_SETUP.13
*Cmd: "<1B>&l101a8c1e63F<1B>*p0x0Y<1B>*c0t12456x8184Y"
}
}
*default
{
*CustCursorOriginX: %d{((PhysPaperWidth-14040)/2)+200}
*CustCursorOriginY: %d{21000}
*CustPrintableOriginX: %d{200}
*CustPrintableOriginY: %d{240}
*CustPrintableSizeX: %d{PhysPaperWidth-400}
*CustPrintableSizeY: %d{PhysPaperLength-480}
*Command: CmdSelect
{
*Order: DOC_SETUP.13
*Cmd: "<1B>&l101a8c1e63F<1B>*p0x0Y<1B>*c0t12456x8184Y"
}
}
} *% switch Option20
} *% case LANDSCAPE_CC90
} *% switch Orientation
}Send feedback on this topic. / Built on Thursday, February 13, 2003
 
R

Ravi Verma

Sorry but I think you are not getting my point. please check the windows 98
printer paper properties, there you will find lot of paper sizes like A4,
A3, A2, Legal, Letter, etc. etc. and at the end you will see "Custom" on
clicking that option you can supply the paper width and height from keyboard
according to your need. I have tried this with many different printers cause
I am a tech support and therefore I visit many places everyday. It is
absolutely nothing to do with the printer cause whatever maybe the printer
windows 98 will show you the same paper size properties. I guess they are
predefined in windows 98. Now if I upgrade or clean install XP or windows
2000, this last option "Custom" never appears for the same printer. and to
this I would like to add the printers are compatible with windows 2000/XP.
no problem in compatibality.
Therefore, I would like to ask someone to check this in windows 98 before
commenting. But I am very much sure that microsoft have ommited this option
from windows 2k/XP. If they have ommitted this option then I must say that
they have decreased that power of a desktop. Cause this option alone
satisfied lots of desktop users.

Regards,
Ravi Verma
 
L

Larry Samuels

Hi Ravi,

Yes, and those printer properties are defined by the driver, not by the OS.

If custom sizes are not available you need to look to the writer of the
driver--the manufacturer of the printer.

--
Larry Samuels Associate Expert
MS-MVP (2001-2005)
Unofficial FAQ for Windows Server 2003 at
http://pelos.us/SERVER.htm
Expert Zone-
 
R

Ravi Verma

Hi,

I am using TVS MSP 250 Classic XL printer and I have downloaded the printer
driver from the manufacturer's website, still no use.
 
L

Larry Samuels

Contact the manufacturer and let them know you need this function in the
driver. If no one complains they don't know that their users miss that
feature.

If they get enough complaints they will most likely add the support, or at
least tell you that they do not plan on offering support for that feature.


--
Larry Samuels Associate Expert
MS-MVP (2001-2005)
Unofficial FAQ for Windows Server 2003 at
http://pelos.us/SERVER.htm
Expert Zone-
 
L

LVTravel

I don't have the same printer you describe in another part of this thread
but I have Epson C84, Epson 1280 inkjets and Okidata C5150 color laser and
an HP 2200. All of these printers have a custom paper size but in some of
the printers it is called User defined. Have you looked under the advanced
properties and also on the paper tab in the driver. Open Printers and
Faxes. Right click on the printer name and click properties. If "paper"
shows on the main screen as either a tab or a dropdown box this is where it
will be located. On others you will see a button called Printing
Preferences. Click on that and then find the paper setting. On still other
printer driver setups after selecting Printing Preferences you have to click
on the advanced button.

Keep searching. You still may find it. Try here for drivers for the
printer http://www.tvs-e.com/may12-05_dwnLists.asp?key=1&pID=3 More
information here http://www.tvs-e.com/may12-05_prodDetails.asp?cID=9&pID=3

Of course since this is a dot matrix printer, you may really be out of luck
with Windows XP. If this Indian company doesn't write the driver properly
then....... There is a discussion forum and a chat button on the top of the
two web pages I have included above.
 
R

Ravi Verma

Yes, I have not realised that the paper properties are dependent on the
printer and not on the os. But Julie has informed me that I can try the
File-Server Properties and put the size of paper manually, if the printer
supports it then i will get the desired result.

It has been great help from all of you, thanks very much.

Regards,
Ravi
 
R

Ravi Verma

Yes David, thanx very much. it seems you, David Candy is a windows
programmer in Microsoft. You almost know everything.

Thanks to all, I doubt is clear now.

Regards,
Ravi Verma
"David Candy" <.> wrote in message
I told you how to do it 4 days ago.
 
D

David Candy

Printer drivers are based on MS's code. You program a printer driver with a text file saying what the printer can do, one can also replace bits and pieces of it with programs. GPD files are text files. At a minimun one should be able to edit the GPD file and add a paper size.

It is all documented in the Driver Device Kit (DDK).

Modems are the same.
 
R

Ravi Verma

Hi David,

I want to learn more about GPD files, and also about modem programming. Does
it needs programming knowledge to edit those files? please give me some
links so that I can learn more about GPD file editing.

Regards,
Ravi Verma
"David Candy" <.> wrote in message
Printer drivers are based on MS's code. You program a printer driver with a
text file saying what the printer can do, one can also replace bits and
pieces of it with programs. GPD files are text files. At a minimun one
should be able to edit the GPD file and add a paper size.

It is all documented in the Driver Device Kit (DDK).

Modems are the same.
 
D

David Candy

When I wanted to learn about them, 1 hour before my first post, I searched the hard drive for GPD files and opened them in notepad and looked.

The part of the DDK is called "Display and Print Devices". (I have everything on CD and as MS can't write or design web sites I'm unable to use their site)
 
R

Ravi Verma

Hi David,

Thanks very much for your support, I have searched my computer for GPD files
and have found my printer GPD file. But it will take time to understand
everything written there. Once I get to understand those scripts, I will try
my hands on them by editing them and if possible adding my own codes. Can
you tell me what programming language they use for writing GPD files? Is
only printer and modem drivers are written in GPD files or other hardwares
too use GPD files.

Regards,
Ravi Verma
"David Candy" <.> wrote in message
When I wanted to learn about them, 1 hour before my first post, I searched
the hard drive for GPD files and opened them in notepad and looked.

The part of the DDK is called "Display and Print Devices". (I have
everything on CD and as MS can't write or design web sites I'm unable to use
their site)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top