PDFdev is a service provided by PDFzone.com | http://www.pdfzone.com
_____________________________________________________________
In general, the values are:
a b c d h v
cos, -sin, sin, cos, x, y
0, 90, 180, and 270 are pretty standard. Why 45 as well?
Here's a slice of code from a text layout engine I did a few years ago.
static Fixed fixedNegOne = fixedZero - fixedOne;
static Fixed matrixRot[4][4] =
{// a b c d
{fixedOne, 0, 0, fixedOne},
{0, fixedNegOne, fixedOne, 0},
{fixedNegOne, 0, 0, fixedNegOne},
{0, fixedOne, fixedNegOne, 0}
};
In case you're not used to Adobe's PDF-speak, "Fixed" is a fixed point float
type, 16.16. Regular math operators work for addition and subtraction, but
you need helper functions for anything else.
Note that I didn't get those sin/cos values from some book somewhere, just
empirical observation. I built a Word file with text rotated at the various
cardinal angles, then took a look at the content streams to figure out what
was going on. Elementary my dear Watson.
I ended up computing the three matrixes (translate, rotate, scale) I needed
independantly and then combining them in the proper order. MUCH easier than
figuring out what the final values are supposed to be out of the gate (which
is how I did it the first itteration of that code... Ouch).
I also ended up writing some code to blow the pages media box out by 1000 in
all directions, and drawing a rectangle for the original page borders so I
could find out where the text went while I was getting this stuff to work.
And there's STILL at least one pair of "sign" errors in that code. I only
know where one half of a pair is, but "If it ain't broke" and all that.
--Mark Storer
Software Engineer
Cardiff Software
#include <disclaimer>
typdef std::disclaimer<Cardiff> Discard;
> -----Original Message-----
> From: Gordon Campbell [mailto:[EMAIL PROTECTED]
> Sent: Friday, June 20, 2003 1:54 PM
> To: [EMAIL PROTECTED]
> Subject: [PDFdev] Rotating Text
>
>
>
> PDFdev is a service provided by PDFzone.com | http://www.pdfzone.com
> _____________________________________________________________
>
> What would the Text matrix look like if I wanted to print a
> text string at a
> 45,90,180 and 270 degree angle? (assume I know the X,Y coordinates)
>
> TIA,
> Gordon Campbell
> PRO-SYS Consultants Ltd.
> (780) 993-0704
> www.epro-sys.com
>
>
>
>
> To change your subscription:
> http://www.pdfzone.com/discussions/lists-pdfdev.html
>
To change your subscription:
http://www.pdfzone.com/discussions/lists-pdfdev.html