t2p TODO list
$Id: TODO,v 1.10 2003/03/04 17:58:36 eric Exp $

No particular order.

-----------------------------------------------------------------------------

t2p:

* bookmark format string processing

* bitblt library:
    * run length encoding (needed for G4 compression)
    * optimize
        * replace inner loops in flip_h and flip_v with Duff's Device
    * check for endian problems

* crop

* page sizes
    * metric
    * check page size, if off by too much, generate warning message and
      use actual scan size
    * multiple page sizes, pick the right one?

* sort out use of float and double types

* range checking
    * rotation (0, 90, 180, or 270)
    * page number style (D, r, R, a, A)

* watermarking - in image?

* flip, transpose

* support JPEG, PNG, and other input file formats

* generate text, line art - option to embed fonts

* overlay G4 images in different colors - use ImageMask and the fill color

* thresholding of color and grey scale input

* automatic separation using timify code from Tim Shoppa?

* automatic image detection using DCT or FFT

* bilevel thresholding

* downsampling

* ??? split into two tools, one to process TIFF files,
  and one to convert a single multipage TIFF into a PDF

-----------------------------------------------------------------------------

bitblt routines:

* finish optimized bitblt code

-----------------------------------------------------------------------------

PDF routines:

[Page numbers refer to _Portable Document Format Reference Manual_ by
Adobe Systems Incorporated, Addison-Wesley, 1993.]

* G4 fax encoding

* proper output of real numbers - variable precision, no exponent

* bookmarks (outline)
    * alternate destination specs (only is /Fit currently supported)

* name trees, number trees

* page labels

* balance pages tree - currently a degenerate single-level tree, but the
  PDF spec recommends max. of 6 children per parent

* thumbnails

* PDF Page rotate attribute (p. 53)?

* fix array element ordering

* memory management - need to reference count all structures and free
  them as appropriate - not necessary for t2p program

* when an object is written to the file, set a flag to indicate that
  it is now immutable

* buffered streams (vs. current callback mechanism for unbuffered streams)

* add support for streams with multiple filters
