# A guide to using Panda

Michael
Still
2002
Michael Still

## Introduction

Panda is a PDF generation API developed by Michael Still. It is released under the terms of the GNU GPL, which might affect your commerical use of this product. Please check the file labelled COPYING in the source distribution before relying on this product for your commercial activities.

...more content here...

## libpngDummyFlushProc.sgml

libpngDummyFlushProc
3

### libpngDummyFlushProc

mangle libpng to do image conversion in memory without temportary files

     void libpngDummyFlushProc(png_structp png);

#### DESCRIPTION

`PANDA INTERNAL`. This call implements a dummy flush proceedure for libpng. This is needed so that Panda can get at the compressed PNG data, whilst converting it on the fly from unsupported PNG variants, and while not having to deal with temporary files. PDF documents only need the content of the IDAT chunks within the PNG file, and this method eases gaining access to those chunks.

#### RETURNS

Zero

#### EXAMPLE

ee panda_insertPNG for an example usage

#### SEE ALSO

panda_insertPNG, libpngDummyReadProc, libpngDummyWriteProc

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## libpngDummyWriteProc.sgml

libpngDummyWriteProc
3

### libpngDummyWriteProc

mangle libpng to do image conversion in memory without temportary files

     void libpngDummyWriteProc(png_structp png, png_bytep data, png_uint_32 len);

#### DESCRIPTION

`PANDA INTERNAL`. This call implements a dummy write proceedure for libpng. This is needed so that Panda can get at the compressed PNG data, whilst converting it on the fly from unsupported PNG variants, and while not having to deal with temporary files. PDF documents only need the content of the IDAT chunks within the PNG file, and this method eases gaining access to those chunks.

#### RETURNS

Zero

#### EXAMPLE

ee panda_insertPNG for an example usage

#### SEE ALSO

panda_insertPNG, libpngDummyReadProc, libpngDummyFlushProc

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## libtiffDummyCloseProc.sgml

libtiffDummyCloseProc
3

### libtiffDummyCloseProc

mangle libtiff to do image conversion in memory without temportary files

     static int libtiffDummyCloseProc (thandle_t);

#### DESCRIPTION

`PANDA INTERNAL`. This call implements a dummy close procedure for libtiff to allow for the conversion of TIFF images on the fly in memory without the use of temporary files. It is an internal call and should NEVER be called by users of the API.

#### RETURNS

Zero

#### EXAMPLE

ee panda_insertTIFF for an example usage

#### SEE ALSO

panda_insertTIFF, libtiffDummWriteProc

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## libtiffDummyReadProc.sgml

libtiffDummyReadProc
3

### libtiffDummyReadProc

mangle libtiff to do image conversion in memory without temportary files

     static tsize_t libtiffDummyReadProc (thandle_t fd, tdata_t buf, tsize_t size);

#### DESCRIPTION

`PANDA INTERNAL`. This call implements a dummy read procedure for libtiff to allow for the conversion of TIFF images on the fly in memory without the use of temporary files. It is an internal call and should NEVER be called by users of the API.

#### RETURNS

The amount of data read

#### EXAMPLE

ee panda_insertTIFF for an example usage

#### SEE ALSO

panda_insertTIFF, libtiffDummWriteProc

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## libtiffDummySeekProc.sgml

libtiffDummySeekProc
3

### libtiffDummySeekProc

mangle libtiff to doc image conversion in memory without temportary files

     static toff_t libtiffDummySeekProc (thandle_t, toff_t off, int i);

#### DESCRIPTION

`PANDA INTERNAL`. This call implements a dummy seek procedure for libtiff to allow for the conversion of TIFF images on the fly in memory without the use of temporary files. It is an internal call and should NEVER be called by users of the API.

#### RETURNS

Where the seek took us to

#### EXAMPLE

ee panda_insertTIFF for an example usage

#### SEE ALSO

panda_insertTIFF, libtiffDummWriteProc

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## libtiffDummyWriteProc.sgml

libtiffDummyWriteProc
3

### libtiffDummyWriteProc

mangle libtiff to do image conversion in memory without temportary files

     static tsize_t libtiffDummyWriteProc (thandle_t fd, tdata_t buf, tsize_t size);

#### DESCRIPTION

`PANDA INTERNAL`. This call implements a dummy write procedure for libtiff to allow for the conversion of TIFF images on the fly in memory without the use of temporary files. It is an internal call and should NEVER be called by users of the API.

#### RETURNS

The amount of daat written

#### EXAMPLE

ee panda_insertTIFF for an example usage

#### SEE ALSO

panda_insertTIFF, libtiffDummWriteProc

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_addchild.sgml

panda_addchild
3

### panda_addchild

add an object to the object tree

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_addchild (panda_object *parent, panda_object *child);

#### DESCRIPTION

`PANDA INTERNAL`. Once an object has been created with `panda_newobject`() it is added to the object tree with this call. This ensures it is written out to disc via `panda_writeobject`() when `panda_close`() is called.

#### RETURNS

None

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_object *obj, *obj2;

panda_init();

document = panda_open("filename.pdf", "w"); obj = panda_newobject(document, panda_object_normal); obj2 = panda_newobject(document, panda_object_normal); panda_addhild(obj, obj2);

#### SEE ALSO

panda_newobject, panda_freeobject, panda_writeobject, panda_traverseobjects

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_addcubiccurvesegment.sgml

panda_addcubiccurvesegment
3

### panda_addcubiccurvesegment

add a curved segment to the line shape we are drawing

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_addcubiccurvesegment (panda_page * target, int x, int y, int cx1, int cy1, int cx2, int cy2);

#### DESCRIPTION

Add a point to the shape we are currently drawing with a cubic curve between the current cursor location and (x,y). There are two control points used to generate the cubic curve. They are (cx1, cy1) and (cx2, cy2).

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (currPage, 210, 210); panda_addcubiccurvesegment (currPage, 310, 210, 225, 300, 275, 400);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_addlinesegment.sgml

panda_addlinesegment
3

### panda_addlinesegment

add a straight segment to the line shape we are drawing

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_addlinesegment (panda_page * target, int x, int y);

#### DESCRIPTION

Add a point to the shape we are currently drawing with a straight line between the current cursor location and (x,y).

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_addlinesegment (page, 200, 200);

#### SEE ALSO

panda_setlinestart, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_addquadraticcurvesegmentone.sgml

panda_addquadraticcurvesegmentone
3

### panda_addquadraticcurvesegmentone

add a curved segment to the line shape that we are drawing

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_addquadraticcurvesegmentone (panda_page * target, int x, int y, int cx1, int cy1);

#### DESCRIPTION

This function adds a curved segment to the line shape that we are drawing. The curved segment has a control point, namely (cx1, cy1). This call creates slightly different curves from `panda_addquadraticcurvesegmenttwo`();

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_addquadraticcurvesegmentone (page, 200, 200, 12, 32);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_addquadraticcurvesegmenttwo.sgml

panda_addquadraticcurvesegmenttwo
3

### panda_addquadraticcurvesegmenttwo

add a curved segment to the line shape that we are drawing

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_addquadraticcurvesegmenttwo (panda_page * target, int x, int y, int cx1, int cy1);

#### DESCRIPTION

This function adds a curved segment to the line shape that we are drawing. The curved segment has a control point, namely (cx1, cy1). This call creates slightly different curves from `panda_addquadraticcurvesegmentone`();

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_addquadraticcurvesegmenttwo (page, 200, 200, 12, 32);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_applytemplate.sgml

panda_applytemplate
3

### panda_applytemplate

use a template page previously created

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_applytemplate (panda_pdf * output, panda_page * target,
     panda_page * template)

#### DESCRIPTION

This function is used to use a template created with the `panda_newtemplate` function call.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *templatepage, *realpage;

panda_init();

document = panda_open("filename.pdf", "w"); templatepage = panda_newtemplate (document, panda_pagesize_a4); realpage = panda_newpage (document, panda_pagesize_a4);

... the order of the drawing commands to the two pages doesn't matter ...

panda_applytemplate(document, realpage, templatepage);

#### SEE ALSO

panda_newpage, panda_newtemplate

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_centerwindow.sgml

panda_centerwindow
3

### panda_centerwindow

ask the viewer to center the document's window on the screen when the PDF is displayed

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_centerwindow (panda_pdf *document, int onoroff);

#### DESCRIPTION

This function records information in the output PDF document requesting that the viewing application center the displayed PDF document on the screen when it is opened. This option is not supported by all viewers, and therefore should not be relied upon. The on or off arguement is a panda_true value, which does the obvious thing. The default is to not center the window.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_centerwindow(document, panda_true);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_checkinfo.sgml

panda_checkinfo
3

### panda_checkinfo

ensure an info object exists

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_checkinfo (panda_pdf *output);

#### DESCRIPTION

`PANDA INTERNAL`. This function call ensures that the info object exists inside the PDF document so that information may be safely added. This function call is unlikely to be needed by users of the API because it is used whenever one of the info object functions is called by the `Panda` code itself.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_checkinfo(document);

#### SEE ALSO

panda_setauthor, panda_setcreator, panda_settitle, panda_setsubject, panda_setkeywords

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_closeline.sgml

panda_closeline
3

### panda_closeline

close off the line shape we are drawing

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_closeline(panda_page * target);

#### DESCRIPTION

Close the line shape we are drawing by returning to the starting point as set by `panda_setlinestart`();

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_addlinesegment (page, 200, 200); panda_addlinesegment (page, 400, 300); panda_closeline (page);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_close.sgml

panda_close
3

### panda_close

write a PDF document out to disk

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_close (panda_pdf *document);

#### DESCRIPTION

Write out the PDF document we have created to disk, clean up and free memory.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4); panda_close(document);

#### SEE ALSO

panda_open

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_closetext.sgml

panda_closetext
3

### panda_closetext

a traversal callback used for closing text streams within the PDF

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_closetext(panda_pdf *document, panda_object *victim);

#### DESCRIPTION

`PANDA INTERNAL`. This function is called by the `panda_traverseobjects`() function to write out streams attached to objects when `panda_close`() call. You shouldn't need to ever call this function.

#### RETURNS

Nothing

#### EXAMPLE

ou shouldn't need to use this function.

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_createandinsertpage.sgml

panda_createandinsertpage
3

### panda_createandinsertpage

create a page within the PDF document

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_createandinsertpage (panda_pdf *output);

#### DESCRIPTION

`PANDA INTERNAL`. This function creates the objects required for a page to exist within `Panda`. This function is wrappered by other `Panda` function calls.

#### RETURNS

A pointer to a panda_page object

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_createandinsertpage(document);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_createfont.sgml

panda_createfont
3

### panda_createfont

return a handle to the requested font

     #include<panda/constants.h>
     #include<panda/functions.h>
     char * panda_createfont (panda_pdf * output, char *fontname, int type, char *encoding)

#### DESCRIPTION

`PANDA INTERNAL`. This funtion call creates a font object for the requested font and returns the identifier that should be used when the font is set within the PDF document.

#### RETURNS

A font identifier (handle) as a null terminated string.

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *output; char *fonthandle;

panda_init(); output = panda_open("output.pdf", "w"); fonthandle = (output, "Helventica", 3, "MacRomanEncoding");

#### SEE ALSO

panda_setfont

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_dbclose.sgml

panda_dbclose
3

### panda_dbclose

finalize the use of the Panda internal database

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_dbclose(panda_pdf *document);

#### DESCRIPTION

`PANDA INTERNAL`. This command closes the TDB database which is used to store information about things like dictionary items which have been created in the document. The use of this database makes Panda much more reliable than it has previously been.

#### RETURNS

Nothing

#### EXAMPLE

here is no examples for this internal call

#### SEE ALSO

panda_dbopen, panda_dbwrite, panda_dbread

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_dbopen.sgml

panda_dbopen
3

### panda_dbopen

prepare the Panda internal database for use

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_dbopen(panda_pdf *document);

#### DESCRIPTION

`PANDA INTERNAL`. This command opens the TDB database which is used to store information about things like dictionary items which have been created in the document. The use of this database makes Panda much more reliable than it has previously been.

#### RETURNS

Nothing

#### EXAMPLE

here is no examples for this internal call

#### SEE ALSO

panda_dbclose, panda_dbwrite, panda_dbread

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_dbread.sgml

panda_dbread
3

### panda_dbread

read a value from the Panda internal database

     #include<panda/constants.h>
     #include<panda/functions.h>
     char *panda_dbread(panda_pdf *document, char *key);

#### DESCRIPTION

`PANDA INTERNAL`. This function reads a value from the Panda internal database.

#### RETURNS

The value, or NULL if there is no value.

#### EXAMPLE

here is no examples for this internal call

#### SEE ALSO

panda_dbopen, panda_dbclose, panda_dbread

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_dbwrite.sgml

panda_dbwrite
3

### panda_dbwrite

write a value into the Panda internal database

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_dbwrite(panda_pdf *document, char *key, char *value);

#### DESCRIPTION

`PANDA INTERNAL`. This function write a value into the Panda internal database.

#### RETURNS

Nothing

#### EXAMPLE

here is no examples for this internal call

#### SEE ALSO

panda_dbopen, panda_dbclose, panda_dbread

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_endline.sgml

panda_endline
3

### panda_endline

finalise the current line shape

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_endline( panda_page *target);

#### DESCRIPTION

Finalise the line shape we are drawing. Only one line shape may be drawn at any one time. There is no need for this call with the `panda_rectangle`() call.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_addlinesegment (page, 200, 200); panda_endline (page);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_entergraphicsmode.sgml

panda_entergraphicsmode
3

### panda_entergraphicsmode

make sure the page description stream is in graphics mode

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_entergraphicsmode (panda_page * target);

#### DESCRIPTION

`PANDA INTERNAL`. PDF pages are described with a text stream full of commands. Many of these commands are similar to those used within Postscript. This function call ensures that the text stream is in a graphics state.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4); panda_entergraphicsmode (page);

#### SEE ALSO

panda_exitgraphicsmode

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_error.sgml

panda_error
3

### panda_error

handle a `Panda` error

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_error (int fatal, char *msg);

#### DESCRIPTION

Print out the error message to stderr and then exit (if fatal is panda_true).

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_error ("All is rotten in the state of Denmark");

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_exitgraphicsmode.sgml

panda_exitgraphicsmode
3

### panda_exitgraphicsmode

make sure the page description stream is out of graphics mode

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_exitgraphicsmode (panda_page * target);

#### DESCRIPTION

`PANDA INTERNAL`. PDF pages are described with a text stream full of commands. Many of these commands are similar to those used within Postscript. This function call ensures that the text stream is not in a graphics state.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4); panda_entergraphicsmode (page); ... panda_exitgraphicsmode (page);

#### SEE ALSO

panda_entergraphicsmode

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_fillline.sgml

panda_fillline
3

### panda_fillline

fill the closed shape we just drew

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_fillline (panda_page * target);

#### DESCRIPTION

Fill the shape we have just drawn with the previously defined fill.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_addlinesegment (page, 200, 200); panda_addlinesegment (page, 250, 250); panda_endline (page); panda_fillline (page);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_fitwindow.sgml

panda_fitwindow
3

### panda_fitwindow

ask the viewer to fit the viewer window to the first page of the PDF document when it is opened

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_fitwindow (panda_pdf *document, int onoroff);

#### DESCRIPTION

This function records information in the output PDF document requesting that the viewing application fit the display window to the first page of the PDF document when it is opened. This option is not supported by all viewers, and therefore should not be relied upon. The on or off arguement is a panda_true value, which does the obvious thing. The default is to not fit the document to the window.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_fitwindow(document, panda_true);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_freeobject.sgml

panda_freeobject
3

### panda_freeobject

free the memory used by a previously created object

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_freeobject (panda_pdf *output, panda_object *);

#### DESCRIPTION

`PANDA INTERNAL`. This function call frees the memory used by an object. It is used during the cleanup process prior to finishing closing a PDF document. Even if a user of the API has added object types to their code, they should not have to call this function, as their objects should be added to the object tree via `panda_addchild`() to ensure they are written to disc by `panda_writeobject`() having been traversed by `panda_traverseobjects`() at PDF close time.

#### RETURNS

None

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_object *obj;

panda_init();

document = panda_open("filename.pdf", "w"); obj = panda_newobject(document, panda_object_normal); panda_freeobject(document, obj)l

#### SEE ALSO

panda_newobject, panda_writeobject, panda_traverseobjects, panda_addchild

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_freetextannotation.sgml

panda_freetextannotation
3

### panda_freetextannotation

draw a text annotation which doesn't look like a sticky note onto a page

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_freetextannotation(panda_pdf *document, panda_page *page,
     char *text, int top, int left, int bottom, int right,
     int flags);

#### DESCRIPTION

This function inserts a text annotation onto one of the pages in your PDF document. The possible values for the flags arguement are: panda_annotationflag_invisible; panda_annotationflag_hidden; panda_annotationflag_print; panda_annotationflag_nozoom; panda_annotationflag_norotate; panda_annotationflag_noview; panda_annotationflag_readonly -- the values for this arguement may by OR'ed together if needed.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *demo; panda_page *currPage;

panda_init(); if ((demo = panda_open ("output.pdf", "w")) == NULL) panda_error (panda_true, "demo: could not open output.pdf to write to."); currPage = panda_newpage (demo, panda_pagesize_a4);

panda_freetextannotation(demo, currPage, "Hello", 10, 10, 50, 50, 0);

#### SEE ALSO

panda_textannotation, panda_insertannotation

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_fullscreen.sgml

panda_fullscreen
3

### panda_fullscreen

ask the viewer to display the PDF document in fullscreen mode

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_fullscreen (panda_pdf *document, int onoroff);

#### DESCRIPTION

This function records information in the output PDF document requesting that the viewing application display the document in full screen mode. This option is not supported by all viewers, and therefore should not be relied upon. The on or off arguement is a panda_true value, which does the obvious thing. The default is to not display the PDF in fullscreen mode.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_fullscreen(document, panda_true);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_getfontobj.sgml

panda_getfontobj
3

### panda_getfontobj

get the object that the named font is stored in

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_getfontobj (panda_pdf *output, char *fontident);

#### DESCRIPTION

`PANDA INTERNAL`. This function is used to map a font identifier handed to `Panda` by a user to the object that actually stores the font requested. This is because the PDF specification actually wants a reference to this object, instead of merely the name of the font.

#### RETURNS

The font object

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *output;

panda_init(); output = panda_open("output.pdf", "w");

fonthandle = panda_createfont (output, "Helventica", 3, "MacRomanEncoding"); printf("The font was stored in object number %d\n", (panda_getfont (output, fonthandle))->number);

#### SEE ALSO

panda_createfont

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_hidemenubar.sgml

panda_hidemenubar
3

### panda_hidemenubar

ask the viewer to hide it's menu bar when this PDF is displayed

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_hidemenubar (panda_pdf *document, int onoroff);

#### DESCRIPTION

This function records information in the output PDF document requesting that the viewing application's menu bar not be displayed when this PDF is opened. This option is not supported by all viewers, and therefore should not be relied upon. The on or off arguement is a panda_true value, which does the obvious thing. The default is to show the menu bar.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_hidemenubar(document, panda_true);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_hidetoolbar.sgml

panda_hidetoolbar
3

### panda_hidetoolbar

ask the viewer to hide it's tool bar when this PDF is displayed

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_hidetoolbar (panda_pdf *document, int onoroff);

#### DESCRIPTION

This function records information in the output PDF document requesting that the viewing application's tool bar not be displayed when this PDF is opened. This option is not supported by all viewers, and therefore should not be relied upon. The on or off arguement is a panda_true value, which does the obvious thing. The default is to show the tool bar.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_hidetoolbar(document, panda_true);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_hidewindowui.sgml

panda_hidewindowui
3

### panda_hidewindowui

ask the viewer to hide it's display window user interface when this PDF is displayed

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_hidewindowui (panda_pdf *document, int onoroff);

#### DESCRIPTION

This function records information in the output PDF document requesting that the viewing application's window user interface not be displayed when this PDF is opened. This option is not supported by all viewers, and therefore should not be relied upon. The on or off arguement is a panda_true value, which does the obvious thing. The default is to display the user interface.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_hidewindowui(document, panda_true);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_imageboxrot.sgml

panda_imageboxrot
3

### panda_imageboxrot

insert an image into the PDF document at the specified location

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_panda_imageboxrot (panda_pdf * output, panda_page * target, int top, int left, int bottom, int right, double angle, char *filename, int type);

#### DESCRIPTION

This function call inserts an image into the PDF document at the specified location, including the ability to rotate the image on the page. It should be noted that xpdf will sometimes make the rotated image look quite sickly. This is in fact a bug in xpdf (which has beenr eported), and not a bug in `Panda`. The image types accepted by this call are: panda_image_tiff, panda_image_jpeg and panda_image_png.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *demo; panda_page *currPage;

panda_init ();

if ((demo = panda_open ("output.pdf", "w")) == NULL) panda_error (panda_true, "demo: could not open output.pdf to write to.");

currPage = panda_newpage (demo, panda_pagesize_a4);

panda_imagebox (demo, currPage, 0, 0, currPage->height / 2, currPage->width, 45.0, "input.tif", panda_image_tiff);

#### SEE ALSO

panda_imagebox

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_imagebox.sgml

panda_imagebox
3

### panda_imagebox

insert an image into the PDF document at the specified location

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_panda_imagebox (panda_pdf * output, panda_page * target, int top, int left, int bottom, int right, char *filename, int type);

#### DESCRIPTION

This function call inserts an image into the PDF document at the specified location using a reasonable default for rotation (none). This call is included for backward compatability withprevious releases of the API and it is recommened that new code call `panda_imageboxrot`(). It is unlikely that this call will be retired however. The image types accepted by this call are: panda_image_tiff, panda_image_jpeg and panda_image_png.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *demo; panda_page *currPage;

panda_init ();

if ((demo = panda_open ("output.pdf", "w")) == NULL) panda_error (panda_true, "demo: could not open output.pdf to write to.");

currPage = panda_newpage (demo, panda_pagesize_a4);

panda_imagebox (demo, currPage, 0, 0, currPage->height / 2, currPage->width, "input.tif", panda_image_tiff);

#### SEE ALSO

panda_imageboxrot

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_imagesize .sgml

panda_imagesize
3

### panda_imagesize

determine the size of an image

    END

#### DESCRIPTION

This function can be used to determine the size of an image before a `panda_imagebox`() function call.

#### RETURNS

Nothing

#### EXAMPLE

END

#### SEE ALSO

panda_imagebox, panda_imageboxrot

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_init.sgml

panda_init
3

### panda_init

setup Panda ready for use

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_init (void);

#### DESCRIPTION

Performs some simple setup of Panda before it is used for the first time in your application.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_init();

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_insertannotation.sgml

panda_insertannotation
3

### panda_insertannotation

actually insert an annotation

     #include<panda/constants.h>
     #include<panda/functions.h>

     panda_object *panda_insertannotation(panda_pdf *document, panda_page *page,
     int top, int left, int bottom, int right,
     int flags)

#### DESCRIPTION

`PANDA INTERNAL`. This function call creates the object to store the annotation and the common elements which are required.

#### RETURNS

The annotation object which was created.

#### EXAMPLE

ou shouldn't need an example because this is an internal call

#### SEE ALSO

panda_textannotation, panda_freetextannotation

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_insertJPEG.sgml

panda_insertJPEG
3

### panda_insertJPEG

insert a JPEG image into the PDF

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_insertJPEG (panda_pdf * output, panda_page * target, panda_object * imageObj, char *filename);

#### DESCRIPTION

`PANDA INTERNAL`. Do the actual insertion of the JPEG image into the PDF document. This routine handles the conversion of the JPEG image into the form supported by the PDF specification, and similar operations. It is an internal `Panda` call and should not be needed by users of the API.

#### RETURNS

Nothing

#### EXAMPLE

ee panda_imageboxrot for an example usage

#### SEE ALSO

panda_imagebox, panda_imageboxrot, panda_insertTIFF, panda_insertPNG

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_insertPNG.sgml

panda_insertPNG
3

### panda_insertPNG

insert a PNG image into the PDF

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_insertPNG (panda_pdf * output, panda_page * target, panda_object * imageObj, char *filename);

#### DESCRIPTION

`PANDA INTERNAL`. Do the actual insertion of the PNG image into the PDF document. This routine handles the conversion of the PNG image into the form supported by the PDF specification, and similar operations. It is an internal `Panda` call and should not be needed by users of the API.

hile developing this function call, some reference was made to the source code for iText (http://www.lowagie.com/iText), which is a GPL'ed PDF generator written in Java. The code in Panda is original though...

#### RETURNS

Nothing

#### EXAMPLE

ee panda_imageboxrot for an example usage

#### SEE ALSO

panda_imagebox, panda_imageboxrot, panda_insertJPEG, panda_insertTIFF

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_insertTIFF.sgml

panda_insertTIFF
3

### panda_insertTIFF

insert a TIFF image into the PDF

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_insertTIFF (panda_pdf * output, panda_page * target, panda_object * imageObj, char *filename);

#### DESCRIPTION

`PANDA INTERNAL`. Do the actual insertion of the TIFF image into the PDF document. This routine handles the conversion of the TIFF image into the form supported by the PDF specification, and similar operations. It is an internal `Panda` call and should not be needed by users of the API.

#### RETURNS

Nothing

#### EXAMPLE

ee panda_imageboxrot for an example usage

#### SEE ALSO

panda_imagebox, panda_imageboxrot, panda_insertJPEG, panda_insertPNG

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_makedate.sgml

panda_makedate
3

### panda_makedate

format a date into the internal PDF representation

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_makedate (int year, int month, int day, int hour, int minutes, int seconds);

#### DESCRIPTION

`PANDA INTERNAL`. The function makedate generates a date that is suitable to be embedded into a PDF. This date will include information about the timezone in which the PDF was created and the relationship that this timezone has with GMT (Zulu) time. Mostly this function is used internally within Panda, and should not concern the average programmer too much.

#### RETURNS

The date passed formatted as a null terminated string.

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

printf("Panda would encode 19 July 1977 3:14:23 AM as: %s\n", panda_makedate(1977, 7, 19, 3, 14, 23));

#### SEE ALSO

panda_nowdate

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_newobject.sgml

panda_newobject
3

### panda_newobject

create a new object

     #include<panda/constants.h>
     #include<panda/functions.h>
     panda_object *panda_newobject (panda_pdf *output, int type);

#### DESCRIPTION

`PANDA INTERNAL`. Create a new object within the PDF document output. The types of object are panda_object_normal and panda_object_placeholder -- the difference is that a placeholder object wont be written out when the PDF is dumped to disc. This is an internal function call and would only be need by API users if they are creating support for object types not currently supported by `Panda`. If this is the case, then these users are encouraged to submit their code changes back to mikal@stillhq.com for inclusion with the next release of `Panda`, and are reminded of their obligations under the GNU GPL.

#### RETURNS

A pointer to the new object (a panda_object *)

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_object *obj;

panda_init();

document = panda_open("filename.pdf", "w"); obj = panda_newobject(document, panda_object_normal);

#### SEE ALSO

panda_freeobject, panda_writeobject, panda_traverseobjects, panda_addchild

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_newpage.sgml

panda_newpage
3

### panda_newpage

create a new page in the PDF

     #include<panda/constants.h>
     #include<panda/functions.h>
     panda_page *panda_newpage(panda_pdf *document, char *pagesize);

#### DESCRIPTION

Create a new blank page at the end of the PDF with the specified size. Use the standard pagesize strings that are defined by Panda for most things. These are `panda_pagesize_a4`, and `panda_pagesize_usletter`. If you need to create your own page sizes, then have a look at these for hints.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

#### SEE ALSO

panda_open, panda_close

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_newtemplate.sgml

panda_newtemplate
3

### panda_newtemplate

create a template page in the PDF

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_newtemplate(panda_pdf *document, char *pageSize);

#### DESCRIPTION

This function is used to create 'template' pages which can then be refered to on other pages. For instance, if you were creating a document that used a standard letter head, then it would make sense to construct the letterhead as a template, and then use this on all the pages. The created template looks and feels just like any other page in the document for the purposes of creating content. Refer to the `panda_newpage` man page for details on how to use pages.

#### RETURNS

A pointer to the template page

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *templatepage;

panda_init();

document = panda_open("filename.pdf", "w"); templatepage = panda_newtemplate (document, panda_pagesize_a4);

#### SEE ALSO

panda_newpage, panda_applytemplate

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_nfspagemodde.sgml

panda_nfspagemodde
3

### panda_nfspagemodde

defines display characteristics for the PDF document if it is using non fullscreen mode after defaulting to fullscreen mode

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_nfspagemode (panda_pdf *document, int pagemode);

#### DESCRIPTION

If the document in question is using fullscreen mode and then exits from fullscreen mode, then this function configures the behaviour of several of the 'eye candy' options available in some viewers. The possible values for pagemode are: `panda_window_usenone`, which displays neither the outline or thumbnails (if present); `panda_window_useoutlines`, which displays only the outline for the document; `panda_window_usethumbs`, which only displays thumbnails. `Please note that this function will only have an effect on the viewer if the page mode has been set to fullscreen with the panda_fullscreen() function call`

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_nfspagemode(document, panda_window_usenone);

#### SEE ALSO

panda_fullscreen

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_nowdate.sgml

panda_nowdate
3

### panda_nowdate

return the string for now

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_nowdate ();

#### DESCRIPTION

`PANDA INTERNAL`. The function nowdate generates a date that is suitable to be embedded into a PDF. This date will include information about the timezone in which the PDF was created and the relationship that this timezone has with GMT (Zulu) time. Mostly this function is used internally within Panda, and should not concern the avaerage programmer too much. This version takes no input, and makes a date for the current time.

#### RETURNS

The current time in PDF format in a null terminated string.

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

printf("The time now is %s\n", panda_nowdate());

#### SEE ALSO

panda_makedate

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_open_actual.sgml

panda_open_actual
3

### panda_open_actual

actually open a PDF document

     #include<panda/constants.h>
     #include<panda/functions.h>
     panda_pdf * panda_open_actual (char *filename, char *mode);

#### DESCRIPTION

`PANDA INTERNAL`. Open the named PDF document with the mode specified. The only mode currently supported is "w", but others will be integrated later. The interface to this function is identical in it's behaviour to the `fopen`() function call offered by the ANSI C standard IO library. This call actually does the opening for ``panda_open() and `panda_open_suppress`().

#### RETURNS

A pointer to a panda_pdf structure

#### EXAMPLE

se panda_open!

#### SEE ALSO

panda_init, panda_open, panda_open_suppress, panda_close

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_open.sgml

panda_open
3

### panda_open

open a PDF document

     #include<panda/constants.h>
     #include<panda/functions.h>
     panda_pdf * panda_open (char *filename, char *mode);

#### DESCRIPTION

Open the named PDF document with the mode specified. The only mode currently supported is "w", but others will be integrated later. The interface to this function is identical in it's behaviour to the `fopen`() function call offered by the ANSI C standard IO library.

#### RETURNS

A pointer to a panda_pdf structure

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w");

#### SEE ALSO

panda_init, panda_open_actual, panda_open_suppress, panda_close

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_open_suppress.sgml

panda_open_suppress
3

### panda_open_suppress

open a PDF document with some special options

     #include<panda/constants.h>
     #include<panda/functions.h>
     panda_pdf * panda_open_suppress (char *filename, char *mode);

#### DESCRIPTION

`PANDA INTERNAL`. Open the named PDF document with the mode specified. The only mode currently supported is "w", but others will be integrated later. The interface to this function is identical in it's behaviour to the `fopen`() function call offered by the ANSI C standard IO library. This function call additionally doesn't create any of the default objects that a panda_open would create, which is useful when you want to parse an existing PDF into a new document.

#### RETURNS

A pointer to a panda_pdf structure

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open_suppress("filename.pdf", "w");

#### SEE ALSO

panda_init, panda_open_actual, panda_open, panda_close

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_pageduration.sgml

panda_pageduration
3

### panda_pageduration

specify the maximum number of seconds that a page should be displayed by the viewer before moving on

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_pageduration (panda_page *target, int seconds);

#### DESCRIPTION

This function records information within the PDF indicating the maximum number of seconds that the given page should be displayed within the viewer. This is useful for presentations and the like where you might like to automatically move onto the next page in the document at some point. The default value for this is to never move onto the next page automatically. If this value is changed from the default, there is currently no way to revert back to the default later. The feature may not be implemented by all viewers.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_pageduration (page, 30.5);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_printf.sgml

panda_printf
3

### panda_printf

output a formatted string to the PDF file

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_printf (panda_pdf * file, char *format, ...);

#### DESCRIPTION

`PANDA INTERNAL`. This function call behaves just like `printf`(), but the output goes to a PDF file, instead of to stdout.

#### RETURNS

Nothing

#### EXAMPLE

his is an internal function which will only be needed by those playing deeply with Panda itself, so I won't provide an example.

#### SEE ALSO

panda_streamprintf, panda_putc, panda_print

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_print.sgml

panda_print
3

### panda_print

output a simple string to the PDF file

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_print (panda_pdf * file, char *chars);

#### DESCRIPTION

`PANDA INTERNAL`. This function call behaves just like `putc`(), but the output goes to a PDF file, instead of to stdout. It also writes more than one character at a time to the file, which is faster than doing this with a panda_printf.

#### RETURNS

Nothing

#### EXAMPLE

his is an internal function which will only be needed by those playing deeply with Panda itself, so I won't provide an example.

#### SEE ALSO

panda_putc, panda_printf, panda_streamprintf

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_processtrans.sgml

panda_processtrans
3

### panda_processtrans

a traversal callback used for processing transition objects within the PDF

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_processtrans(panda_pdf *document, panda_object *victim);

#### DESCRIPTION

`PANDA INTERNAL`. This function is called by the `panda_traverseobjects`() function to deal with transition effects attached to objects when `panda_close`() call. You shouldn't need to ever call this function.

#### RETURNS

Nothing

#### EXAMPLE

ou shouldn't need to use this function.

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_putc.sgml

panda_putc
3

### panda_putc

output a single character to the PDF file

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_printf (panda_pdf * file, char c);

#### DESCRIPTION

`PANDA INTERNAL`. This function call behaves just like `putc`(), but the output goes to a PDF file, instead of to stdout.

#### RETURNS

Nothing

#### EXAMPLE

his is an internal function which will only be needed by those playing deeply with Panda itself, so I won't provide an example.

#### SEE ALSO

panda_print, panda_printf, panda_streamprintf

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_rectangle.sgml

panda_rectangle
3

### panda_rectangle

draw a rectangle

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_rectangle (panda_page * target, int top, int left, int bottom, int right);

#### DESCRIPTION

Draw a rectangle on the PDF page. There is no need for the `panda_setlinestart`() or `panda_closeline`() calls.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_rectangle( page, 10, 10, 150, 200);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setauthor.sgml

panda_setauthor
3

### panda_setauthor

set the author string for the PDF document

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setauthor (panda_pdf *output, char *value);

#### DESCRIPTION

This function sets the value of the author within the PDF document.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_setauthor(document, "Mikal");

#### SEE ALSO

panda_checkinfo, panda_setcreator, panda_settitle, panda_setsubject, panda_setkeywords

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setcharacterspacing.sgml

panda_setcharacterspacing
3

### panda_setcharacterspacing

set the space between characters

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setcharacterspacing (panda_page *target, double amount);

#### DESCRIPTION

Set the amount of additional space between characters in points.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *output;

panda_init(); output = panda_open("output.pdf", "w"); panda_setcharacterspacing(output, 42.3);

#### SEE ALSO

panda_setwordspacing, panda_sethorizontalscaling, panda_setleading

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setcreator.sgml

panda_setcreator
3

### panda_setcreator

set the creator string for the PDF document

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setcreator (panda_pdf *output, char *value);

#### DESCRIPTION

`PANDA INTERNAL`. This function sets the value of the creator within the PDF document. This is normally the string "Panda", but may be overridden by another call to the function by a user of the API. I'm not sure why you would want to do that though...

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_setcreator(document, "Panda PDF Generator");

#### SEE ALSO

panda_checkinfo, panda_setauthor, panda_settitle, panda_setsubject, panda_setkeywords

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setfillcolor.sgml

panda_setfillcolor
3

### panda_setfillcolor

set the color to fill a close shape with

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setfillcolor (panda_page *target, int red, int green, int blue);

#### DESCRIPTION

This function sets the color to fill a close shape with when the shape is closed. It is expressed as a combinartion of red, green, and blue. The maximum number for each value is 255 (a number greater than 255 is reduced to 255).

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_setfillcolor (page, 100, 200, 300); panda_addlinesegment (page, 200, 200); panda_addlinesegment (page, 250, 300); panda_closeline (page); panda_endline (page);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setfontmode.sgml

panda_setfontmode
3

### panda_setfontmode

set the current font mode

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setfontmode (panda_page *target, int mode);

#### DESCRIPTION

Set the drawing mode for the current font. Valid modes are: panda_textmode_normal, panda_textmode_outline, panda_textmode_filledoutline, panda_textmode_invisible, panda_textmode_filledclipped, panda_textmode_strokedclipped, panda_textmode_filledstrokedclipped and panda_textmode_clipped.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *output;

panda_init(); output = panda_open("output.pdf", "w"); panda_setfontmode(output, panda_textmode_outline);

#### SEE ALSO

panda_setfontsize, panda_setfont

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setfont.sgml

panda_setfont
3

### panda_setfont

set the current font to be that specified

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setfont (char *fontident);

#### DESCRIPTION

Once you have generated a font identifier for a given font, you can then set that current font to that font using this call. Create a font identifier with the `panda_createfont`() call.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *output; char *fonthandle;

panda_init(); output = panda_open ("output.pdf", "w"); fonthandle = panda_createfont (output, "Helventica", 3, "MacRomanEncoding"); panda_setfont (fonthandle);

#### SEE ALSO

panda_createfont

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setfontsize.sgml

panda_setfontsize
3

### panda_setfontsize

set the current font size

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setfontsize (panda_page *target, int size);

#### DESCRIPTION

Set the size of the font to be used next (in points).

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *output;

panda_init(); output = panda_open("output.pdf", "w"); setfontsize(output, 42);

#### SEE ALSO

panda_setfontmode, panda_setfont

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_sethorizontalscaling.sgml

panda_sethorizontalscaling
3

### panda_sethorizontalscaling

set the horizontal scaling of text

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_sethorizontalscaling (panda_pdf *output, double amount);

#### DESCRIPTION

Set the horizontal scaling factor of the text in percent.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *output;

panda_init(); output = panda_open("output.pdf", "w"); panda_sethorizontalscaling(output, 42.3);

#### SEE ALSO

panda_setcharacterspacing, panda_setwordspacing, panda_setleading

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setkeywords.sgml

panda_setkeywords
3

### panda_setkeywords

set the keywords string for the PDF document

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setkeywords (panda_pdf *output, char *value);

#### DESCRIPTION

This function sets the value of the keywords string within the PDF document. The string is merely a list of keywords in the form "cats dogs hamsters chickens"

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_setkeywords(document, "panda documentation pdf api generate");

#### SEE ALSO

panda_checkinfo, panda_setauthor, panda_setcreator, panda_settitle, panda_setsubject

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setleading.sgml

panda_setleading
3

### panda_setleading

set the amount of space between lines of text

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setleading (panda_pdf *output, double amount);

#### DESCRIPTION

Set the amount of space between lines of text in points.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *output;

panda_init(); output = panda_open("output.pdf", "w"); panda_setleading(output, 42.3);

#### SEE ALSO

panda_setcharacterspacing, panda_setwordspacing, panda_sethorizontalscaling

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setlinecap.sgml

panda_setlinecap
3

### panda_setlinecap

sets the line cap for the lines we are drawing now

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setlinecap ( panda_page *target, int cap);

#### DESCRIPTION

A line cap is used at the ends of lines that do not meet other lines. The different cap styles are defined in panda/constants.h and are: panda_linecap_butt, panda_linecap_round and panda_linecap_projectedsquare.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_setlinecap (page, panda_linecap_round); panda_addlinesegment (page, 200, 200);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setlinecolor.sgml

panda_setlinecolor
3

### panda_setlinecolor

change the color of the line drawn

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setlinecolor (panda_page *target, int red, int green, int blue);

#### DESCRIPTION

Set the color of lines being drawn using a combination of red, green and blue.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_setlinecolor (page, 100, 200, 450); panda_addlinesegment (page, 200, 200);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setlinedashing.sgml

panda_setlinedashing
3

### panda_setlinedashing

draw the subsequent lines with the defined dashing pattern

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setlinedashing (panda_page *target, int on, int off, int pahse);

#### DESCRIPTION

This function allows the user to define a line dashing style, which is then applied to subsequent lines drawn on that page. The dashing style is defined as a on and off number, as well as a phase. For example, on = 2, off = 4, phase = 0 should result in a line like:

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_setlinedash (page, 2, 4, 0); panda_addlinesegment (page, 200, 200);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setlinejoin.sgml

panda_setlinejoin
3

### panda_setlinejoin

is used to set the line join style

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setlinejoin (panda_page *target, int join);

#### DESCRIPTION

A line join is used where the ends of two lines meet. The valid line joins are defined in panda/constants.h and are: panda_linejoin_miter, panda_linejoin_round and panda_linejoin_bevel.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_setlinejoin (page, panda_linejoin_bevel); panda_addlinesegment (page, 200, 200);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setlinestart.sgml

panda_setlinestart
3

### panda_setlinestart

sets the starting point of a curve

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setlinestart (panda_page * target, int x, int y);

#### DESCRIPTION

Set the starting point for the sequence of curves and lines that it to be drawn on the current page. This call is compulsory for almost all of the line drawing functions. It is not required for the `panda_rectangle` call.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200);

#### SEE ALSO

panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setlinewidth.sgml

panda_setlinewidth
3

### panda_setlinewidth

sets the width of the line that we are drawing

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setlinewidth (panda_page * target, int width);

#### DESCRIPTION

Set the width of the line that is being drawn... You can use `panda_setlinecap`(), `panda_setlinejoin`() and `panda_setlinedash`() to change other characteristics of the line.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_setlinewidth (page, 42); panda_addlinesegment (page, 200, 200);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_strokeline, panda_fillline, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setobjectproperty.sgml

panda_setobjectproperty
3

### panda_setobjectproperty

set a property value for an object

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setobjectproperty (panda_object *target, int scope, int propid, int propval);

#### DESCRIPTION

Properties are a way of specifing things about objects. These properties can have either a cascade scope (they affect all subsequently created objects that are children of that object) -- `panda_scope_cascade`, or local (they only occur for that object) -- `panda_scope_local`. Possible properties are defined in the `panda_const_properties` manual page.

#### RETURNS

None

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_object *obj;

panda_init();

document = panda_open("filename.pdf", "w"); obj = panda_newobject(document, panda_object_normal); panda_setproperty(obj, panda_scope_cascade, panda_object_property_compress, panda_true);

#### SEE ALSO

panda_newobject, panda_const_properties

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setsubject.sgml

panda_setsubject
3

### panda_setsubject

set the subject string for the PDF document

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setsubject (panda_pdf *output, char *value);

#### DESCRIPTION

This function sets the value of the subject within the PDF document.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_setsubject(document, "Mikal's homework");

#### SEE ALSO

panda_checkinfo, panda_setauthor, panda_setcreator, panda_settitle, panda_setkeywords

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_settitle.sgml

panda_settitle
3

### panda_settitle

set the title string for the PDF document

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_settitle (panda_pdf *output, char *value);

#### DESCRIPTION

This function sets the value of the title within the PDF document.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_settitle(document, "Mikal's excellent PDF document");

#### SEE ALSO

panda_checkinfo, panda_setcreator, panda_setauthor, panda_setsubject, panda_setkeywords

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_setwordspacing.sgml

panda_setwordspacing
3

### panda_setwordspacing

set the space between words

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_setwordspacing (panda_page *target, double amount);

#### DESCRIPTION

Set the amount of additional space between words in points.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *output;

panda_init(); output = panda_open("output.pdf", "w"); panda_setwordspacing(output, 42.3);

#### SEE ALSO

panda_setcharacterspacing, panda_sethorizontalscaling, panda_setleading

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_streamprintf.sgml

panda_streamprintf
3

### panda_streamprintf

output a formatted string to the text stream associated with a given object

     #include<panda/constants.h>
     #include<panda/functions.h>
     char *panda_streamprintf (char *stream, char *format, ...);

#### DESCRIPTION

`PANDA INTERNAL`. This function call behaves just like `printf`(), but the output goes to a textstream within a PDF object, instead of to stdout. Set the value of the textstream to the value returned...

#### RETURNS

Nothing

#### EXAMPLE

his is an internal function which will only be needed by those playing deeply with Panda itself, so I won't provide an example.

#### SEE ALSO

panda_printf, panda_putc, panda_print

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_strokeline.sgml

panda_strokeline
3

### panda_strokeline

stroke the line shape we have just drawn

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_strokeline (panda_page * target);

#### DESCRIPTION

This function must be called for the line shape that we have drawn to actually display on the PDF page. This process is known as 'stroking', and hence the name of this function call.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_setlinestart (page, 100, 200); panda_addlinesegment (page, 200, 200); panda_strokeline (page); panda_endline (page);

#### SEE ALSO

panda_setlinestart, panda_addlinesegment, panda_addcubiccurvesegment, panda_addquadraticsegmentone, panda_addquadraticcurvesegmenttwo, panda_closeline, panda_rectangle, panda_endline, panda_fillline, panda_setlinewidth, panda_setlinecap, panda_setlinejoin, panda_setlinedash, panda_setfillcolor, panda_setlinecolor

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_textannotation.sgml

panda_textannotation
3

### panda_textannotation

draw a text annotation which looks like a sticky note onto a page

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_textannotation(panda_pdf *document, panda_page *page, int open,
     char *text, int top, int left, int bottom, int right,
     int icon, int flags);

#### DESCRIPTION

This function inserts a text annotation onto one of the pages in your PDF document. The open arguement defines whether the text annotation initially appears with the text visible (the open state) or not. The possible values for the icon arguement are: panda_icon_comment; panda_icon_help; panda_icon_insert; panda_icon_key; panda_icon_newparagraph; panda_icon_note; panda_icon_paragraph. The possible values for the flags arguement are: panda_annotationflag_invisible; panda_annotationflag_hidden; panda_annotationflag_print; panda_annotationflag_nozoom; panda_annotationflag_norotate; panda_annotationflag_noview; panda_annotationflag_readonly -- the values for this arguement may by OR'ed together if needed.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *demo; panda_page *currPage;

panda_init(); if ((demo = panda_open ("output.pdf", "w")) == NULL) panda_error (panda_true, "demo: could not open output.pdf to write to."); currPage = panda_newpage (demo, panda_pagesize_a4);

panda_textannotation(demo, currPage, panda_true, "Hello", 10, 10, 50, 50, panda_icon_comment, 0);

#### SEE ALSO

panda_freetextannotation, panda_insertannotation

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_textboxrot.sgml

panda_textboxrot
3

### panda_textboxrot

display some text at a jaunty angle on the PDF page specified

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_textbox (panda_pdf * output, panda_page * thisPage, int top, int left, int bottom, int right, double angle, char *text);

#### DESCRIPTION

This function call creates a textbox on the specified page, and then displays the specified text within that page. The text is displayed at the spefied angle. The current font mode and style et cetera will be used. Sometime in the near future, line wrapping will be used...

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4); panda_textboxrot (demo, currPage, 20 + (lineDepth * 20), 200, 40 + (lineDepth * 20), 400, 33.0, "Demonstration of a text mode");

#### SEE ALSO

panda_createfont, panda_setfont, panda_panda_setfontsize, panda_getfontobj, panda_setfontmode, panda_setcharacterspacing, panda_setwordspacing, panda_sethorizontalscaling, panda_setleading, panda_textbox

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_textbox.sgml

panda_textbox
3

### panda_textbox

display some text on the PDF page specified

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_textbox (panda_pdf * output, panda_page * thisPage, int top, int left, int bottom, int right, char *text);

#### DESCRIPTION

This function call creates a textbox on the specified page, and then displays the specified text within that page. The current font mode and style et cetera will be used. Sometime in the near future, line wrapping will be used...

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4); panda_textbox (demo, currPage, 20 + (lineDepth * 20), 200, 40 + (lineDepth * 20), 400, "Demonstration of a text mode");

#### SEE ALSO

panda_createfont, panda_setfont, panda_panda_setfontsize, panda_getfontobj, panda_setfontmode, panda_setcharacterspacing, panda_setwordspacing, panda_sethorizontalscaling, panda_setleading, panda_textboxrot

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_textdirection.sgml

panda_textdirection
3

### panda_textdirection

specify the direction that the text flows within the document

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_textdirection (panda_pdf *document, int dir);

#### DESCRIPTION

This function records information within the PDF indicating the direction that the text in the document flows in. The possible values for the dir arguement are: `panda_textdirection_l2r`, text is read left to right; `panda_textdirection_r2l`, text is read right to left. The default for this value is `panda_textdirection_l2r`.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w"); panda_textdirection(document, panda_textdirection_r2l);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_transduration.sgml

panda_transduration
3

### panda_transduration

specify the number of seconds that a page transition effect should take to occur

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_transduration (panda_page *target, double seconds);

#### DESCRIPTION

This function records information within the PDF indicating the maximum number of seconds that the given page transition effect should be displayed within the viewer. This is useful for presentations and the like when you realise that you are addicted to Microsoft Powerpoint...

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_transduration (page, 30.5);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_transstyle.sgml

panda_transstyle
3

### panda_transstyle

specify the type of page change transition that should occur

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_transstyle (panda_page *target, int style);

#### DESCRIPTION

his function records information within the PDF indicating the preferred page transition style to use. The following are valid styles to use:

1. panda_pagetrans_split_yi -- vertical split from the inside of the page
2. panda_pagetrans_split_yo -- vertical split from the outside of the page
3. panda_pagetrans_split_xi -- horizontal split from the inside of the page
4. panda_pagetrans_split_xo -- horizontal split from the outside of the page
5. panda_pagetrans_blinds_y -- vertical blinds effect
6. panda_pagetrans_blinds_x -- horizontal blinds effect
7. panda_pagetrans_box_i -- box expanding from the inside of the page
8. panda_pagetrans_box_o -- box contracting from the outside of the page
9. panda_pagetrans_wipe_0 -- a single line wipes the page away from the left to the right
10. panda_pagetrans_wipe_90 -- a single line wipes the page away from the bottom to the top
11. panda_pagetrans_wipe_180 -- a single line wipes the page away from the right to the left
12. panda_pagetrans_wipe_270 -- a single line wipes the page away from the top to the bottom
13. panda_pagetrans_dissolve -- the old page dissolves slowly into the new page
14. panda_pagetrans_glitter_0 -- a glitter effect that moves from the left to the right of the page
15. panda_pagetrans_glitter_270 -- a glitter effect that moves from the top to the bottom of the page
16. panda_pagetrans_glitter_315 -- a glitter effect that moves from the top left to the bottom right of the page
17. panda_pagetrans_none -- no transition effect

he default transition is to have no transition at all. It should be noted that not all viewers support these transition effects.

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_page *page;

panda_init();

document = panda_open("filename.pdf", "w"); page = panda_newpage (document, panda_pagesize_a4);

panda_transduration (page, 30.5);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_traverseobjects.sgml

panda_traverseobjects
3

### panda_traverseobjects

traverse the PDF object tree and perform an operation

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_traverseobjects (panda_pdf * output, panda_object * startObject, int direction, traverseFunct function);

#### DESCRIPTION

`PANDA INTERNAL`. This function traverses the object tree created by `panda_addchild`() and repeatedly calls the function defined as a callback. The traversal has a direction as defined by: panda_up (bottom up) or panda_down (top down). This call is commonly used by `panda_close` to call `panda_writeobject`() and `panda_freeobject`(). API users might also find it useful, although I wouldn't know why.

#### RETURNS

None

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document;

panda_init();

document = panda_open("filename.pdf", "w");

... create a whole bunch of objects and add them to the tree ... panda_traverseobjects(document, document->catalog, panda_down, panda_writeobject);

#### SEE ALSO

panda_newobject, panda_freeobject, panda_writeobject, panda_addchild

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_writeobject.sgml

panda_writeobject
3

### panda_writeobject

write a given object to disc

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_writeobject (panda_pdf *output, object *obj);

#### DESCRIPTION

`PANDA INTERNAL`. Writes all objects created with `panda_newobject`(), that have been added to the object tree with `panda_addchild`() via a call to `panda_traverseobjects`().

#### RETURNS

None

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

panda_pdf *document; panda_object *obj;

panda_init();

document = panda_open("filename.pdf", "w"); obj = panda_newobject(document, panda_object_normal); panda_writeobject(document, obj);

#### SEE ALSO

panda_newobject, panda_freeobject, panda_traverseobjects, panda_addchild

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_writetrailer.sgml

panda_writetrailer
3

### panda_writetrailer

write out the trailer for the PDF document

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_writetrailer (panda_pdf *output);

#### DESCRIPTION

`PANDA INTERNAL`. This command is used to write out the trailer of the PDF document, which contains information about the PDF document, including a pointer to the XREF table.

#### RETURNS

Nothing

#### EXAMPLE

hy would you need an example?

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_writexref.sgml

panda_writexref
3

### panda_writexref

write out the table that lists object locations in the file

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_writexref (panda_pdf * output);

#### DESCRIPTION

`PANDA INTERNAL`. Write out the XREF table in the PDF file that we have just generated.

#### RETURNS

Nothing

#### EXAMPLE

his command is internal to Panda, and you shouldn't ever need to call it...

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_xfree.sgml

panda_xfree
3

### panda_xfree

deallocate memory in a safe manner

     #include<panda/constants.h>
     #include<panda/functions.h>
     void panda_xfree (void *p);

#### DESCRIPTION

`PANDA INTERNAL`. Deallocate a block of memory in a safe manner. For instance, some systems will not allow you to free a NULL pointer...

#### RETURNS

Nothing

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

char *p; p = panda_xmalloc(42); panda_xrealloc(p);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_xmalloc.sgml

panda_xmalloc
3

### panda_xmalloc

allocate some memory

     #include<panda/constants.h>
     #include<panda/functions.h>
     void *panda_xmalloc (size_t size);

#### DESCRIPTION

`PANDA INTERNAL`. Allocate some memory, performing all of the error checking so we don't have to elsewhere.

#### RETURNS

A void * to the memory allocated.

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

char *memory;

memory = (char *) panda_xmalloc(42);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_xrealloc.sgml

panda_xrealloc
3

### panda_xrealloc

allocate some memory, resizing it if already exists

     #include<panda/constants.h>
     #include<panda/functions.h>
     void *panda_xmalloc (void *now, size_t size);

#### DESCRIPTION

`PANDA INTERNAL`. Allocate some memory, performing all of the error checking so we don't have to elsewhere. Resize the memory if it already exists.

#### RETURNS

A void * to the memory allocated.

#### EXAMPLE

#include<panda/constants.h> #include<panda/functions.h>

char *memory;

memory = (char *) panda_xrealloc(memory, 42);

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.

## panda_xsnprintf.sgml

panda_xsnprintf
3

### panda_xsnprintf

a safe version of vnsprintf

     #include<panda/constants.h>
     #include<panda/functions.h>
     char panda_xsnprintf(const char* format, va_list ap);

#### DESCRIPTION

`PANDA INTERNAL`. This command behaves like a slightly modified version of `vsnprintf`. The main difference is that if catches the various different ways that errors can be returned, and turns these into a single NULL is a string big enough to hold the formatted string could not be allocated.

#### RETURNS

A string

#### EXAMPLE

his is an internal function which will only be needed by those playing deeply with Panda itself, so I won't provide an example.

#### VERSION

This documentation was generated for `Panda` 0.4.2 by `autodocbook` (http://www.stillhq.com).

#### AUTHOR

`Panda` is under development by Michael Still (mikal@stillhq.com). All code is Copyright Michael Still 2000 and 2001, and is released under the GNU 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.