Provided by: djvuserve_3.5.28-2build2_amd64 bug


       djvuserve - Generate indirect DjVu documents on the fly.


       Program  djvuserve is a CGI program that can be executed by a HTTP server for serving DjVu
       documents.  This program is able to convert a bundled multi-page document into an indirect
       document on the fly.


       Program djvuserve must first be installed as a CGI program for your web server.  There are
       several ways to achieve this.   The Apache web  server,  for  instance,  often  defines  a
       specific directory for CGI programs using the ScriptAlias directive.  Assume that the file
       httpd.conf contains the following line:

          ScriptAlias /cgi–bin/ "/var/www/cgi–bin"

       It is then sufficient to create a small executable shell script /var/www/cgi–bin/djvuserve
       containing the following lines:

          exec /full/path/to/djvuserve

       Suppose that a large bundled multi-page DjVu document is available at the following URL.


       The  CGI  program  djvuserve  lets you access this same document as an indirect multi-page
       DjVu document using the following URL.


       Serving indirect  multi-page  DjVu  documents  provides  for  efficiently  browsing  large
       document  without  transferring  unnecessary pages over the network.  See djvu(1) for more

       Furthermore djvuserve searches certain keywords among the CGI arguments of the  URL.   The
       keyword bundled forces serving a bundled document using


       The  keyword download inserts a content disposition HTTP header that suggests to display a
       save dialog instead of displaying the document.



       The Apache web server provides a way to  automatically  execute  djvuserve  for  all  DjVu
       documents.   This  can  be  achieved  using  the following directives in either the Apache
       configuration file or the .htaccess files.

          Action djvu-server /cgi–bin/djvuserve/
          AddHandler djvu-server .djvu

       Apache then executes program djvuserve for serving all DjVu files.  Providing the  URL  of
       DjVu  file  serves  this  DjVu  file as usual, except that bundled multipage documents are
       converted to indirect documents on the fly.  This convenience comes at the expense of  the
       computational cost of executing djvuserve whenever a DjVu file is requested.


       Program djvuserve provides a mean to directly access any component of a bundled multi-page
       DjVu document can be accessed using an extended URL.   Suppose  that  the  component  file
       representing  page  1  is named p0001.djvu.  The following URL provides a direct access to
       this page:


       It is preferred however to access individual pages using the CGI style arguments described
       in nsdejavu(1), as in the following URL.


       The special component file name index.djvu is recognized as a request for the index of the
       corresponding indirect multi-page document.  In fact, when you access a  bundled  document
       using djvuserve, the browser gets redirected to the following URL:


       and  then  behaves as if the bundled file was a directory containing the various component
       files of an equivalent indirect document.


       Program djvuserve, like many  CGI  programs,  bypasses  a  number  of  access  protections
       established  in  a web server.  Assume for instance that your web site contains DjVu files
       protected by a password.  Program djvuserve knows nothing about this protection  and  will
       happily serve any DjVu file associated with a valid URL.

       Access  control with djvuserve can be implemented by first remembering that the web server
       always executes program djvuserve via shell script /var/www/cgi–bin/djvuserve.

       This script can decide to execute the real program djvuserve on the basis  of  the  target
       filename available in the environment variable PATH_TRANSLATED.

       There  can  be several such scripts providing access to various collections of DjVu files.
       Each of these scripts can be password protected using the usual methods supported by  your
       web server.


       Hyperlinks  specified  using  a  relative URL may not work with djvuserve.  These URLs are
       relative to the URL of the DjVu document. Yet djvuserve changes the apparent document  URL
       http://server/dir/doc.djvu        into        the        more        complicated       URL
       http://server/cgi–bin/djvuserve/dir/doc.djvu/index.djvu.  The extra components change  the
       interpretation of relative URLs.


       This program was written by Leon Bottou <>.


       djvu(1), djvmcvt(1), nsdejavu(1)