currently the rendering plug-in works fine for portrait images
on a full bleed letter-size portrait image. i get a 2550 x 3300
pixel image that i can view in photoshop (as a raw image). if i
change the orientation to landscape in page setup or in the GPDs
Layout tab then the image is produced as 3300 x 2550.
my problem is that i have to feed the printer as 2550 x 3300.
it can not be rotated in the printer or on the server connected
to the printer because of thruput issues. therefore it appears
that i'm forced to rotate the image in the driver.
under Windows 9x when one is doing the banding you can set up a
banding rectangle as in "Band 1" of the landscape image and
rotate it 90 degrees so that it can written out as portrait.
that is, the band size of the landscape image might be 500 x 2550.
you then rotate the pixels into a 2500 x 500 buffer (rotation
indicated with ++ and ** symbols). this can be done because
banding under Windows 9x allows a banding rectangle (with the
key word being rectangle) that can move left to right instead
of the normal top to bottom.
Landscape image Rotated to portrait
+-----+-----+------------+ +-----------------+
| ** | | | | + * |
| B | B | | | + B a n d 1 * |
2 | a | a | | +-----------------+ 3
5 | n | n | | | | 3
5 | d | d | | | B a n d 2 | 0
0 | | | | +-----------------+ 0
| 1 | 2 | | | |
| ++ | | | | |
+-----+-----+------------+ | |
3300 | |
+-----------------+
2550
however, my plug-in for the Unidriver is running under 2000/XP
and the banding provided under these OSs uses a banding point.
so under this scenario i'm forced to use banding that goes
from the top to bottom. i can only (as far as i can tell)
specify a point of (0,0) (upper left), then (0,500), (0,1000)
and so on down the page. there does not appear to be a way to
request bands from left to right horizontally across the page
like under Windows 9x. actually, the Unidriver is specifying
the band height but that is beside the point.
Landscape image
(0,0) +------------------------+
| B a n d 1 |
(0, 500) +------------------------+
| B a n d 2 | 2
(0, 1000) +------------------------+ 5
| | 5
| | 0
| |
| |
+------------------------+
3300
if anybody knows if you can request bands horizontally i'd be
interested in knowing how. or if you know of any trick that by
modifying a GDIINFO field or any other structure that somehow
will rotate the image please reply to this newsgroup. the bottom
line is that for a landscape image the image must be rotated
so that it is fed to the printer as a 2550 pixel width.
if there is no way to request the bands horizontally and rotate
each band individually, i'll be forced to buffer the whole image
and rotate it after the last band (which is not desirable).
as an aside, in the POINTL struct that is used in the banding
routines is there any use for the x coordinate other than
specifying zero. since GDI knows the band width and the band
height what would happen if you specify say for the second band
coordinates of (1000, 500)?
thanks!