A new version of the PDF specification?

I have just been looking at the Adobe website and have noticed that there is a new version of the PDF specification available. This version is 1.3 edition II, but the brief examination that I have given it shows that the document has chnaged a fair bit. It would appear that there is a lot more content in it, and the order of information is different. Hopefully they have also fixed some of the bugs evident in version 1.3… If I find anything of interest, then I will post a report here.

Panda 0.1

Panda is a GPL‘ed
PDF generation library. This version is the initial release, and it only
builds simple hello world PDFs. Updates will be posted here as they are

The library provides a ANSI stdio.h style interface, which hides many
of the complexities of the PDF document format without reducing the power
of the developer.


Here is a list of the various features currently available in Panda. After each main type of feature are listed some pointers to Panda functions implementing that functionality.


  • Text annotations – panda_textannotation
    Line drawing

  • Straight lines – panda_setlinestart, panda_addlinesegment, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth
  • Polygons – panda_setlinestart, panda_addlinesegment, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth
  • Curved lines – panda_addcubiccurvesegment, panda_addquadraticcurvesegmentone, panda_addquadraticcurvesegmenttwo, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth
  • Closed lines – panda_closeline, panda_endline, panda_strokeline, panda_fillline, panda_setlinewidth
  • Rectangles – panda_rectangle
  • Line capping – panda_setlinecap
    • Butt
    • Round
    • Projected square
  • Line joins – panda_setlinejoin
    • Mitre
    • Round
    • Bevel
  • Line dashing – panda_setlinedash
  • Coloured shapes and polygons – panda_setfillcolor
  • Coloured lines – panda_setlinecolor
    Image support

  • TIFF (including rotated) – panda_imagebox, panda_imageboxrot
  • JPEG (including rotated) – panda_imagebox, panda_imageboxrot
  • PNG (including rotated) – panda_imagebox, panda_imageboxrot
    Informational items

  • Author – panda_setauthor
  • Creating application – panda_setcreator
  • Title – panda_settitle
  • Subject – panda_setsubject
  • Keywords – panda_setkeywords
    Font support

  • Use of the 14 internal PDF fonts – panda_createfont, panda_setfont
  • Font size – panda_setfontsize
  • Font modes – panda_setfontmode
    • Normal
    • Outline
    • Filled outline
    • Invisible
    • Filled clipped
    • Stroked clipped
    • Filled stroked clipped
    • Clipped
  • Arbitary character spacings – panda_setcharacterspacing
  • Arbitary word spacings – panda_setwordspacing
  • Arbitary horizontal scaling – panda_sethorizontalscaling
  • Arbitary text leading – panda_setleading
    Document functionality

  • Document creation – panda_open, panda_open_suppress, panda_close
  • Page creation – panda_newpage
    Page templates (aka Form XObjects)

  • Create and use template pages – panda_newtemplate, panda_applytemplate
    Text display features

  • Display a text box, including at an angle – panda_textbox, panda_textboxrot
  • Super and sub script support – panda_textbox, panda_textboxrot
    Document viewing features

  • Hide the viewer toolbar – panda_hidetoolbar
  • Hide the viewer menubar – panda_hidemenubar
  • Hide the viewer window eye candy – panda_hidewindowui
  • Fit the document to the viewer window – panda_fitwindow
  • Centre the window on the screen – panda_centerwindow
  • Change the page view mode whilst in non-fullscreen mode – panda_nfspagemode
  • Force the document to be viewed in fullscreen mode – panda_fullscreen
  • Chnage the direction of text flow (left to right vs right to left) – panda_textdirection
  • Specify the maximum display time for a page – panda_pageduration
  • Specify page transitions and their duration – panda_transduration, panda_transstyle
    Windows support

  • Standard win32 DLL
  • COM interface