unidrv resolution issue (Please help)

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Hi All,
I am a new guy in the
driver development. My task is to develop an image driver which actually
create multi-page tiff's. I am some
what sucessfull in developing that(using unidrv).
The procedure that i follow is to create the bitmap in ImageProcessing and
then later create the tiff from these
images. I got te GPD from some sample files and managed to print with a
resolution 150X150 but now i want this to
print in an higher resolution like 300X300.
I tried different options(for 300X300) for *PrintableArea and
*PrintableOrigin, but the bitmap seems to get cut.
Can sombody please tell me what i am doing wrong or if i put this correctly,

1) how do i do this?
2) what is the relation between *PrintableArea and *PrintableOrigin for
different resolutions and Orientations?
3) What does *%(9600, 12648) mean for Potrait orintation(8.5X11 inc), can
some one tell how we come with these two numbers related to the *MasterUnits:

I lookied in to the DDK documentation but did find an answer.


If somebody can please help me with this or some pointers in the internet
where i can go and find out how to do this
will be largly appreciated.

Note :Part of my GPD file looks like this
*****************************************************************
:
:
*MasterUnits: PAIR(1200, 1200)
*ResourceDLL: "unires.dll"
*PrinterType: PAGE
*MaxCopies: 1
*PrintRate: 8
*PrintRateUnit: PPM
*PrintRatePPM: 8

*Feature: Orientation
{
*rcNameID: =ORIENTATION_DISPLAY
*DefaultOption: PORTRAIT
*Option: PORTRAIT
{
*rcNameID: =PORTRAIT_DISPLAY
*Command: CmdSelect
{
*Order: DOC_SETUP.6
*Cmd: ""
}
}
*Option: LANDSCAPE_CC90
{
*rcNameID: =LANDSCAPE_DISPLAY
*Command: CmdSelect
{
*Order: DOC_SETUP.6
*Cmd: ""
}
}
}
.......
.......
.......
*Feature: Resolution
{
*rcNameID: =RESOLUTION_DISPLAY
*DefaultOption: Option2
*Option: Option2
{
*Name: "150 x 150 " =DOTS_PER_INCH
*DPI: PAIR(150, 150)
*TextDPI: PAIR(300, 300)
*SpotDiameter: 100
*Command: CmdBeginRaster { *Cmd : "" }
*Command: CmdEndRaster { *Cmd : "" }
*Command: CmdSendBlockData { *Cmd : "" }
*Command: CmdSelect
{
*Order: DOC_SETUP.4
*Cmd: ""
}
}
*Option: Option3
{
*Name: "300 x 300 " =DOTS_PER_INCH
*DPI: PAIR(300, 300)
*TextDPI: PAIR(600, 600)
*SpotDiameter: 100
*Command: CmdBeginRaster { *Cmd : "" }
*Command: CmdEndRaster { *Cmd : "" }
*Command: CmdSendBlockData { *Cmd : "" }
*Command: CmdSelect
{
*Order: DOC_SETUP.4
*Cmd: ""
}
}

}

*Feature: PaperSize
{
*rcNameID: =PAPER_SIZE_DISPLAY
*DefaultOption: LETTER
*Option: LETTER
{
*rcNameID: =RCID_DMPAPER_SYSTEM_NAME
*switch: Orientation
{
*case: PORTRAIT
{
*%(9600, 12648)
*% *PrintableArea: PAIR(9600, 12648)
*PrintableArea: PAIR(9564, 12600)
*% *PrintableArea: PAIR(5000,5000)
*PrintableOrigin: PAIR(300, 300)
*% *PrintableOrigin: PAIR(300, 500)
*CursorOrigin: PAIR(300, 180)
*switch: Resolution
{
*case: Option2
{
*% Warning: the following printable width is adjusted (9600->9592) so it is
divisible by the resolution X scale.
*% Warning: the following printable length is adjusted (12648->12640) so it
is divisible by the resolution Y scale.
*PrintableArea: PAIR(9592, 12640)
*% Warning: the following printable origin X is adjusted (300->304) so it is
divisible by the resolution X scale.
*% Warning: the following printable origin Y is adjusted (300->304) so it is
divisible by the resolution Y scale.
*PrintableOrigin: PAIR(304, 304)
}
*case: Option3
{
*PrintableArea: PAIR(9592, 12640)
*PrintableOrigin: PAIR(100, 604)
}
}
*Command: CmdSelect
{
*%5760 -- 7560
*Order: DOC_SETUP.10
*Cmd: ""
}
}
*case: LANDSCAPE_CC90
{
*%(9720, 12648)
*PrintableArea: PAIR(9760, 12688)
*PrintableOrigin: PAIR(200, 272)
*CursorOrigin: PAIR(200, 12960)
*Command: CmdSelect
{
*Order: DOC_SETUP.10
*Cmd: ""
}
}
}
}
...................
..................
..................

*Feature: MediaType
{
*rcNameID: =MEDIA_TYPE_DISPLAY
*DefaultOption: STANDARD
*Option: STANDARD
{
*rcNameID: =PLAIN_PAPER_DISPLAY
*DefaultQuality: BETTERQUALITY
*Command: CmdSelect
{
*Order: DOC_SETUP.14
*Cmd: ""
}
}
*Option: TRANSPARENCY
{
*rcNameID: =TRANSPARENCY_DISPLAY
*DefaultQuality: BETTERQUALITY
*Command: CmdSelect
{
*Order: DOC_SETUP.14
*Cmd: ""
}
}
}
*Feature: ColorMode
{
*rcNameID: =COLOR_PRINTING_MODE_DISPLAY
*HelpIndex: 12004
*DefaultOption: 24bpp
*Option: 24bpp
{
*rcNameID: =24BPP_DISPLAY

*DevNumOfPlanes: 1
*DevBPP: 24
*DrvBPP: 24
*IPCallbackID: 7
*PaletteSize: 256
*PaletteProgrammable?:TRUE
*Command: CmdDefinePaletteEntry { *Cmd : "" }
*Command: CmdSelectPaletteEntry { *Cmd : ""}
*RasterMode: DIRECT

EXTERN_GLOBAL: *RasterSendAllData? : TRUE
}
}
*Feature: Halftone
{
*rcNameID: =HALFTONING_DISPLAY
*HelpIndex: 12005
*DefaultOption: HT_PATSIZE_AUTO
*Option: HT_PATSIZE_AUTO
{
*rcNameID: =HT_AUTO_SELECT_DISPLAY
}
*Option: HT_PATSIZE_SUPERCELL_M
{
*rcNameID: =HT_SUPERCELL_DISPLAY
}
*Option: HT_PATSIZE_6x6_M
{
*rcNameID: =HT_DITHER6X6_DISPLAY
}
*Option: HT_PATSIZE_8x8_M
{
*rcNameID: =HT_DITHER8X8_DISPLAY
}
}
*Command: CmdStartDoc
{
*Order: DOC_SETUP.5
*Cmd: ""
}
*Command: CmdStartPage
{
*Order: PAGE_SETUP.1
*Cmd: ""
}
*Command: CmdEndJob
{
*Order: JOB_FINISH.1
*Cmd: ""
}
*Command: CmdCopies
{
*Order: DOC_SETUP.11
*Cmd : ""
}
*RotateCoordinate?: TRUE
*RotateRaster?: TRUE
*RotateFont?: TRUE
*TextCaps: LIST(TC_CR_90,TC_UA_ABLE)
*MemoryUsage: LIST(FONT)
*CursorXAfterCR: AT_PRINTABLE_X_ORIGIN
*BadCursorMoveInGrxMode: LIST(X_PORTRAIT,Y_LANDSCAPE)
*XMoveThreshold: 0
*YMoveThreshold: 0
*XMoveUnit: 300
*YMoveUnit: 300
*Command: CmdXMoveAbsolute { *Cmd : "" }
*Command: CmdXMoveRelRight { *Cmd : "" }
*Command: CmdXMoveRelLeft { *Cmd : "" }
*Command: CmdYMoveAbsolute { *Cmd : "" }
*Command: CmdYMoveRelDown { *Cmd : "" }
*Command: CmdYMoveRelUp { *Cmd : "" }
*Command: CmdCR { *Cmd : "" }
*Command: CmdLF { *Cmd : "" }
*Command: CmdFF { *Cmd : "" }
*Command: CmdDefinePaletteEntry { *Cmd : "" }
*Command: CmdSelectPaletteEntry { *Cmd : "" }
*Command: CmdBackSpace { *Cmd : "" }
*Command: CmdUniDirectionOn { *Cmd : "" }
*Command: CmdUniDirectionOff { *Cmd : "" }
*Command: CmdPushCursor { *Cmd : "" }
*Command: CmdPopCursor { *Cmd : "" }
*Command: CmdSetSimpleRotation { *Cmd : "" }
*EjectPageWithFF?: TRUE
*OutputDataFormat: H_BYTE
*OptimizeLeftBound?: FALSE
*CursorXAfterSendBlockData: AT_GRXDATA_ORIGIN
*CursorYAfterSendBlockData: AUTO_INCREMENT

*DefaultFont: 136
*DefaultCTT: 0
*CharPosition: BASELINE
*TTFSEnabled?: TRUE
*DeviceFonts:
LIST(134,135,136,137,138,139,140,146,147,148,149,150,151,152,153,154,
+ 155,156,157,164,165,166,196,197,198,199,200,201,202,203,209,210,
+ 211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,
+ 227,228,229,230)

*MinFontID: 16534
*MaxFontID: 32768
*FontFormat: HPPCL_OUTLINE
*% When the %f format is implemented we can remove the /100 part of
*% CmdSelectFontHeight and CmdSelectFontWidth
*% NOTE: MasterUnits.x is hardcoded here!
*% NOTE: THIS dividing by 200 because I want to /100 and then /2 for now.
*% The number 60000 may look strange, but it's 1200/2 * 100.
*Command: CmdSelectFontHeight { *Cmd : "" }
*Command: CmdSelectFontWidth { *Cmd : "" }
*Command: CmdSetFontID { *Cmd : "" }
*Command: CmdSelectFontID { *Cmd : "" }
*Command: CmdSetCharCode { *Cmd : "" }
*Command: CmdUnderlineOn { *Cmd : "" }
*Command: CmdUnderlineOff { *Cmd : "" }
*Command: CmdWhiteTextOn { *Cmd : "" }
*Command: CmdWhiteTextOff { *Cmd : "" }
*MinGrayFill: 1
*MaxGrayFill: 100
*Command: CmdSetRectWidth { *Cmd : "" }
*Command: CmdSetRectHeight { *Cmd : "" }
*Command: CmdRectGrayFill { *Cmd : "" }
*Command: CmdRectWhiteFill { *Cmd : "" }
*Command: CmdRectBlackFill { *Cmd : "" }

Thanks in advance,
Jobby

.



Relevant Pages

  • Printer Driver(OEMUNI): Black Output
    ... *Command: CmdSelect ... *Feature: Resolution ... so itis divisible by the resolution Y scale. ...
    (microsoft.public.development.device.drivers)
  • Re: Printer Driver Question
    ... Everything works fine till this for resolution 150, ... *Command: CmdSelect ... is divisible by the resolution Y scale. ...
    (microsoft.public.development.device.drivers)
  • Paper not ejecting
    ... Strangely this gpd works fine on a network printer while ... *Feature: Orientation ... *Command: CmdSelect ...
    (microsoft.public.development.device.drivers)
  • Printer Driver(OEMUNI): Black Output
    ... *Feature: Orientation ... it isdivisible by the resolution X scale. ... so itis divisible by the resolution Y scale. ... *Command: CmdStartPage ...
    (microsoft.public.development.device.drivers)
  • Printer Driver: Always black page
    ... *Feature: Orientation ... it isdivisible by the resolution X scale. ... so itis divisible by the resolution Y scale. ... *Command: CmdStartPage ...
    (microsoft.public.development.device.drivers)