Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
# status

work in progress (though stalled now).  has three tools so far:
- pdf/text, converts a pdf to text (though does not implement character
  encoding/sets, and whitespace is often wrong).
- pdf/walk, a tk program for navigation the structure of a pdf.
- pdf/inflate, rewrites pdf file, reformatting pdf objects and
  decompressing text.

there is no code to render a pdf on a canvas.

# intro

this package contains a library & tools for reading pdf files.  in
the future, perhaps a pdf renderer can be build on top of this code.
there is no documentation since this is a work in progress.  feel
free to fix/improve!

# install

make sure you have $ROOT set, now "mk install" to compile and install
the files.

when building from within inferno, insert SYSHOST=Inferno and ROOT=
in the mk invocations to override the values in the mkconfig.

# download

the latest version can be found at:

# licence & author

appl/lib/pdfinflate.b is copyright & subject to the license from vitanuova.

all other files are in the public domain.  this code has been written by
mechiel lukkien, reachable at or

# todo

doc/syntax.txt has some random blurps on the syntax/structure of
pdf files.  todo.txt has a (probably outdated/inaccurate) list of
things to improve.

- lzw decoding sometimes breaks
- improve the parser appl/lib/pdfread.b, perhaps more proper
  tokenizer, and probably use exceptions for error propagation.
- implement DCTDecode filter.
- pdf/inflate: fix Prev byte offset in trailers
- pdf/inflate: fix remaining bugs.  like fonts that are wrong in the new file.
- pdf/inflate: if compressed data has non-ascii in it, just keep
  the original encoding?  image-specific encodings can probably be
  kept too, no need to make the file size huge with raw bitmaps.


pdf reading library, limbo, from mercurial






No releases published


No packages published