PANDA(3)

SPECIFICATION VERSION
Panda is currently working on version 1.3 of the PDF specification coompilance. A copy of the specification is available for download from http://www.adobe.com

TEXT MODE COMPLIANCE
This document outlines Panda's complicance with the various text modes outlined in the PDF specification version specified above.

TEXT MODES
Character spacing (Tc operator)
    The definition of this operator may be found on page 340 of the PDF specification. This operator is fully implemented in Panda, and is accessible through the setcharacterspacing (3) function call in Panda. Note that this attribute is 'sticky' and therefore will not revert to the default if you change font -- it must be explicitly changed. The default value is 0.
Word spacing (Tw operator)
    The definition of this operator may be found on page 340 of the PDF specification. This operator is fully implemented in Panda, and is accessible through the setwordspacing (3) function call in Panda. Note that this attribute is 'sticky' and therefore will not revert to the default if you change font -- it must be explicitly changed. The default value is 0.
Horizontal Scaling (Tz operator)
    The definition of this operator may be found on page 341 of the PDF specification. This operator is fully implemented in Panda, and is accessible through the sethorizontalscaling (3) function call in Panda. Note that this attribute is 'sticky' and therefore will not revert to the default if you change font -- it must be explicitly changed. The default value is 1, meaning 100% of the normal width of the text.
Leading (TL operator)
    The definition of this operator may be found on page 342 of the PDF specification. This operator is fully implemented in Panda, and is accessible through the setleading (3) function call in Panda. Note that this attribute is 'sticky' and therefore will not revert to the default if you change font -- it must be explicitly changed. The default value is 0, meaning no extra space between lines of text.
Font and size (Tf operator)
    The definition of this operator may be found on page 342 of the PDF specification. This operator is fully implemented in Panda, and is accessible through the setfont (3) and setfontsize (3) function calls in Panda. Note that these attributes are 'sticky' and therefore will not revert to the default if you perform other manipulations. You will need to explicitly change font and size if you wish to. The default font is Helvetica, with a size of 16 points.
Text matrix (Tm operator) PARTIALLY IMPLEMENTED
    The definition of this operator may be found on page 342 of the PDF specification. This operator is partially implemented in Panda (due to my lack of understanding of the meaning of the values in the matrix), and is accessible indirectly through the textbox (3) function call in Panda. This is because this operator is used to place the textbox onto the page. The default Tm value, if we did not set one in the textbox code, is the bottom left hand corner of the page. The default implemented by the textbox code is the top left hand corner of the page, although the user must set a location on the page for the function call to be valid.
Text rendering (Tr operator)
    The definition of this operator may be found on page 343 of the PDF specification. This operator is fully implemented in Panda, and is accessible through the setfontmode (3) function call in Panda. Note that this attribute is 'sticky' and therefore will not revert to the default if you change font -- it must be explicitly changed. The default mode is gTextModeNormal.
Super and sub scripting (Ts operator)
    The definition of this operator may be found on page 344 of the PDF specification. This operator is fully implemented in Panda, and is accessible indirectly through the textbox (3) function call in Panda. Note that this attribute is not textbox (3) EOT character (ASCII value 4) into the string, followed immediately by the jump upwards (as an ASCII single digit number). To subscript, place the ENQ character (ASCII value 5), followed immediately by the jump downwards (as an ASCII single digit number). To return to the normal text placement, place the ACK character (ASCII value 6) into the string. The default is no super or sub scripting. Some source code that shows this is:
        sprintf(tempString, "Hello %c5World! %cMy name %c5is Panda!", 4, 6, 5);
    This code superscripts the text "World!" by 5 points, subscripts the text "is Panda!" by 5 points, and displays the rest in the normal location on the line. Note that you may need to use the text leading functionality to ensure correct display.
Text object operators (BT and ET operators)
    The definition of these operators may be found on page 344 of the PDF specification. These operators are implemented in Panda and are accessible implicitly in the textbox (3) function call.
Newline with offset (Td and TD operators) NOT YET IMPLEMENTED Newline (T* operator) NOT YET IMPLEMENTED Text rendering matrix (Trm operator) NOT YET IMPLEMENTED Show text (Tj operator)
    The definition of this operator may be found on page 347 of the PDF specification. This operator is implicitly implemented in the textbox (3) function call.
Show text on new line (' operator)
    The definition of this operator may be found on page 347 of the PDF specification. This operator is implicitly implemented in the textbox (3) function call.
Show text one new line with movement (" operator) NOT YET IMPLEMENTED Show text with manipulation (TJ operator) NOT YET IMPLEMENTED

AUTHOR
Panda is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000, and is released under the GPL. Code submissions are welcomed. Contact Michael at the address above if you have something you would like to contribute.

BUGS
There are no known bugs in Panda. If you find one, please contact mikal@stillhq.com and let me know.

VERSION
This information relates to version 0.2 of Panda