---
name: "nsdejavu"
section: "1"
platform: "linux"
package: "djview-plugin"
version: "4.11-1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/nsdejavu"
---

# nsdejavu(1)

DjVu browser plugin

## NAME

nsdejavu - DjVu browser plugin

## SYNOPSIS

**/usr/lib/x86\_64-linux-gnu/mozilla/plugins/nsdejavu.so**

## DESCRIPTION

The shared library **nsdejavu.so** uses the Netscape browser plugin API to display DjVu images in in a number of popular web browsers. Different web browsers provide various level of support for Netscape plugins. Please check section "Browser Compatibility" for instructions on how to enable the DjVu browser plugin.

The DjVuLibre browser plugin works by invoking a standalone viewer with the special command line option **-netscape**. The plugin first searches a program named **djview**. If this program cannot be found, it searches for **djview4** and finally **djview3.** It is always possible to override this search strategy by setting the environment variable **NPX\_DJVIEW** to the full path of the desired executable.

## MIME TYPES AND EXTENSIONS

Typing the URL of a recognized DjVu document in your web browser should automatically invoke the DjVu browser plugin. Each browser uses different methods to determine that a particular URL is in fact a DjVu document. Web server normally provide a MIME type to web browsers. The official  MIME type for DjVu documents is **image/vnd.djvu**. For compatibility with ancient versions of the DjVu viewer, it is common to use instead the experimental  MIME type **image/x-djvu** or **image/x.djvu**. Web servers should be configured to send the  proper MIME type for DjVu documents.  Most web browsers also recognize files ending with **.djvu** or **.djv** as DjVu files.

An easy way to check if an http server is giving an appropriate content-type is to invoke the following command with a  URL corresponding to an actual DjVu file on the server.

-

  **curl -u** *URL* **\| grep Content-Type**

The result should be one of the following, preferably the first.

-

  **Content-Type: image/vnd.djvu**\
   **Content-Type: image/x.djvu**\
   **Content-Type: image/x-djvu**

Any other  MIME type indicates a server misconfiguration.

## CGI-STYLE FLAGS

The behavior of the DjVu browser plugin can be specified by augmenting the URL using a syntax similar to that used by the CGI programs. This syntax is described by the following template:

-

  **http://.../file.djvu?djvuopts&***keyword=value***&***keyword=value***&***...*

The DjVu browser plugin only recognizes keywords that appear after the word **djvuopts**. The keywords recognized by each viewer are listed in the corresponding man page.  Unrecognized keywords are ignored. The most common keywords are:

- **page=***pagename*

  Specify which page is displayed by name or by ordinal number.

- **zoom=***zoomfactor*

  Set the zoom factor.  Legal values for *zoomfactor* are:\

  | | |
  | --- | --- |
  | *number* | Magnification factor in range 10% to 999%. |
  | **one2one** | Select the "one-to-one" mode. |
  | **width** | Select the "fit width" mode. |
  | **page** | Select the "fit page" mode. |
  | **stretch** | Stretch the image to the plugin window size. |

## BROWSER COMPATIBILITY

The DjVu browser plugin has been tested with several popular web browsers: Netscape 4 and 6; Gecko based browsers such as Mozilla, Galeon and Firefox; KHTML based browsers such as Konqueror; and Opera. Please read the browser documentation to find out where  the plugin library should be installed.

## EMBEDDING DJVU IMAGES IN HTML PAGES

You can integrate DjVu content on an HTML web page with either the \<embed\> or the \<object\> tag. This method will work even if your web  server does not support the DjVu MIME type. The CGI style flags can be directly used as attributes of the embedding tag. The following example shows the W3C standard syntax with the OBJECT tag:

-

  **\<object data="myfile.djvu" type="image/vnd.djvu"**\
             **width="100%" height="100%" \>**\
       **\<param name="page" value="iii"\>**\
       **\<param name="zoom" value="stretch"\>**\
       **This browser cannot render djvu data.**\
   **\</object\>**

And this is the customary syntax with the EMBED tag:

-

  **\<embed src="myfile.djvu" type="image/vnd.djvu"**\
             **width="100%" height="100%"**\
             **page="iii" zoom="stretch"\>\</embed\>**

## INTERFACING THE DJVIEW PLUGIN WITH JAVASCRIPT

Recent versions of the  **djview4** plugin can be controlled from the JavaScript interpreter of  browsers implementing the Mozilla NPRuntime API. To access the plugin object, include the attribute **id="***pluginname***"** into the **\<object\>** or **\<embed\>** tag and use the JavaScript function **getElementById("***pluginname***").**

The plugin object implements two methods to retrieve and set the value of the options usually recognized as CGI-style flags. It also can evaluate a specified JavaScript expression whenever something changes in the status of the djview interface.

- *pluginobject***.setdjvuopt("***key***",***value***)**

  Set the value of the djvu option *key* to the character string *value*. This achieves the same effect as specifying option *key*=*value* among the CGI-style flags.   For instance, values of the key **page** can be page IDs, page titles, page numbers, or page names.

- *pluginobject***.getdjvuopt("***key***")**

  Return the value of the djvu option *key* as a string. The returned value is always a character string,  even when the return is logically a number. Boolean values are returned as strings **yes** or  **no.** Besides the usual CGI-style flags, this function recognizes the additional key  **pages** and returns the total number of pages in the DjVu document. An empty string is returned when the key is not recognized.

- *pluginobject***.onchange="***code***";**

  Ensure that string *code* is evaluated in the context of the plugin object whenever something changes in the djview graphical  user interface.  For instance, this evaluation happens when progressive refinements are painted, and when the user manipulates the image interactively.

- *pluginobject***.version**

  Return a string describing the plugin version. This property can be used to test whether the djview plugin is scriptable in this browser.

Note that the scriptability feature may not  be accessible until the djview plugin is fully loaded. Therefore it is advisable to check *pluginobject***.version** from the JavaScript **onload** before calling any other method.

## CREDITS

This program was written by Andrei Erofeev \<andrew\_erofeev@yahoo.com\> and was then improved by Bill Riemers \<docbill@sourceforge.net\> and Léon Bottou \<leonb@users.sourceforge.net\>.

## SEE ALSO

[**djvu**(1)](/djvu/1.md), [**ddjvu**(1)](/ddjvu/1.md), [**djview4**(1)](/djview4/1.md)
