Now let's see... what were we talking about again? :rolleyes:
Oh right, the thermal labels. Ok, by my thinking the printer driver should allow you to select the correct label size, which I take to be 3 inches by something. And in that case, it should look that way in APEX.
If that's true, then it should eliminate the issue about where all the extra margin will go.
As for implementing a new GDI directive, probably //ORIENTATION is too limited. The generic approach to handling rotations and other effects is to create a transformation matrix that transforms any coordinate (x1,y1) to a new coordinate (x2,y2). By adjusting the components of the matrix, it can support rotation (by any amount and around any point), reflection (for mirror image decals perhaps?), shear, translation, etc. For this we need 6 parameters, something like:
//SETTRANSFORM,m11,m12,m21,m22,dx,dy
where the translation from (x1,y1) to (x2,y2) is based on:
x2 = (x1 * m11) + (y1 * m21) + dx
y2 = (x1 * m12) + (y1 * m22) + dy
For a simple 180 degree rotation around the center point of the page, I think the parameters would be:
xc = ### ! center point x coordinate
yc = ### ! center point y coordinate
m11 = -1 ! cos(180)
m12 = 0 ! sin(180)
m21 = 0 ! -sin(180)
m22 = m11
dx = 2 * xc ! xc - cos(180)*xc + sin(180)*yc
dy = 2 * yc ! yc - cos(180)*yc - sin(180)*yc
//SETTRANSFORM,m11,m12,m21,m22,dx,dy
Now aren't you glad you took trig in high school?
p.s. As if that wasn't beautiful enough by itself, but adjusting the parameters, you could also handle the problem of rotating and shifting the printing area within a larger page, although you may need to crack open a a college math book to figure out the parameters for that!