DJVUDIGITAL(1)
π DJVUDIGITAL β the DjVuLibre-3.5 era glow-up, bestie π
okay so. this is the manual page for djvudigital from DjVuLibre-3.5, and honestly? it's giving "make pretty compressed documents out of your boring old PS and PDF files." sit down, grab a boba, and let's get into it π§β¨
πΈ NAME πΈ
djvudigital β creates DjVu files from PS or PDF files.
like. it takes your PostScript or PDF and turns it into a DjVu. that's the whole personality. periodt. π
β¨ SYNOPSIS β¨
djvudigital [options] inputfile [outputfile]
yes bestie, inputfile is required, outputfile is optional, and [options] is where all the fun lives. π¦
π DESCRIPTION π
This program creates a DjVu file from the PostScript (.ps), GZipped PostScript (.ps.gz), Encapsulated PostScript (.eps), or Portable Document Format (.pdf) file inputfile.
The output file name is either given by argument outputfile, or β and this is the lowkey iconic part β it gets generated by replacing the input file name suffixes with the DjVu suffix (.djvu). automatic naming?? we love to see it π
π«Ά PREREQUISITES π«Ά
This program depends on a specific GhostScript driver. If your GhostScript program does not provide this driver, please check http://djvu.sourceforge.net/gsdjvu.html.
fr fr, no driver = no vibes. go check that link, bestie.
π OPTIONS π
the main character section. buckle up. π’
--verbose,-vβ Displays more informational messages while converting the file. it's chatty. it wants to tell you everything. we support it.--quiet,-qβ Do not display informational messages while converting the file. the "do not perceive me" setting π--dpi=resolutionβ Specify the desired resolution toresolutiondots per inch. The default is300dpi.--psrotate=angleβ Rotate the PostScript file byangledegrees clockwise. Only the values0,90,180, and270are supported. This option only applies to PostScript files. PDF files are always converted according to their native orientation. so PDFs? they said "i'm built different" and kept their own orientation. no cap.--epsf=dispositionβ Specify how to handle Encapsulated PostScript files. Argumentdispositioncan take the valuescrop,fit, andignore. The default dispositioncropcreates a DjVu file whose size matches the bounding box of the Encapsulated PostScript file. Valuefitrescales the graphics to the default page size. Valueignoredisables all Encapsulated PostScript specific code. This option requires Ghostscript7.07or better. π--exact-colorβ Enables a more accurate rendering of the colors. This option requires GhostScript6.52or better. accurate colors are, and i say this with love, the moment. π--threshold=thresβ Specify a threshold for the foreground/background separation code. Acceptable values ofthresrange from0to100. Larger values place more information into the foreground layer. The default threshold value is80.--bg-subsample=subβ Specify the background subsampling ratio. Argumentsubmust be an integer between1and6. The default value is3.--bg-slices=n+...+nβ Specify the encoding quality of the background layer. The syntax for the argument is similar to that described for the-sliceoption of commandc44. The default is72+11+10+10. yes it really is plus signs. no i don't make the rules. π--fg-colors=ncolorsβ Specify the maximum number of distinct colors in the foreground layer. Argumentncolorscan take integer values between1and4000. The default value is256.--fg-image-colors=ncolorsβ Specify the maximum number of distinct colors in an image for considering encoding it into the foreground layer. Argumentncolorscan take integer values between1and4000. The default value is256. (yes, twin to the one above, but for images. they're sisters, not the same person π)--wordsβ Extract the text from the PostScript code and incorporates this information into the DjVu file. This option records the location of every word. every. single. word. meticulous queen π--linesβ Extract the text from the PostScript code and incorporates this information into the DjVu file. This option saves a few bytes by only recording the location of each line. budget-friendly and still slaying π--gsarg=arg1[,arg2,...,argN]β Insert extra arguments on the GhostScript command line.--cseparg=arg1[,arg2,...,argN]β Insert extra arguments on the command line of programcsepdjvuormsepdjvu.--poppler=keywordsβ This option causesdjvudigitalto extract additional information from PDF files using the toolpdftotextthat comes bundled with the Poppler library. Selected information is then added to the djvu file as a postprocessing step. This option is ignored when the input file is not a PDF file. Argumentkeywordsis a comma separated list of keywords. When this list contains keywordmeta, the metadata extracted bypdftotextis inserted into the djvu file. When this list contains keywordtext, the textual information extracted bypdftotextis inserted into the djvu file, possibly replacing the information gathered using the options--wordsor--lines. This is useful for instance when a scanned PDF file contains a hidden text layer that is not recognized by Ghostscript and therefore not passed to thedjvudigitalbackend. it's giving "found the secret lore that was hiding in plain sight" πβ¨--sepfileβ Produces a separated data file instead of a DjVu file. Programcsepdjvucan then convert the separated data file into a DjVu file.--checkβ Display the names of the two auxiliary programs found bydjvudigital, namely a suitable ghostscript interpreter and a suitable backend encoder. See the next two section for details.--dryrunβ Simply display the ghostscript command line generated bydjvudigitalwithout running it. No output file is produced. it's all talk, no action. and honestly? sometimes you need that π«Ά--helpβ Display the manual page fordjvudigital.
π» GHOSTSCRIPT ISSUES π»
Program djvudigital internally relies on a specific Ghostscript driver named djvusep. This driver analyzes the logical structure of the sequence of PostScript rendering commands and decides to execute each command into either the foreground or the background layer. The GhostScript driver produces a separated data file that is then compressed using the DjVuLibre program csepdjvu.
Before processing the input file, program djvudigital searches a Ghostscript executable providing the djvusep driver. The search starts with the file specified by the environment variable GSDJVU and continues with command line executables named gs and gsdjvu.
The DjVuLibre source code contains instruction to compile such a GhostScript executable. More information can be obtained from http://djvu.sourceforge.net/gsdjvu.html.
so basically: it goes looking forGSDJVUfirst, thengs, thengsdjvu. like checking your bestie's story, then your group chat, then your texts. in that order. π
π₯ CSEPDJVU ISSUES π₯
The output of the djvusep GhostScript driver must be processed by the DjVuLibre program csepdjvu. This program can also be replaced by the the proprietary Lizardtech program msepdjvu. Before processing the input file, program djvudigital searches such an executable. The search starts with the file specified by the environment variable CSEPDJVU and continues with command line executables named msepdjvu and csepdjvu.
π OTHER PROGRAMS π
The option --poppler=keywords relies on the tool pdftotext that comes with the Poppler library and the tool djvused that comes with djvulibre. Only recent versions of pdftotext that accept the option -bbox are supported. Both tools are searched by first trying the files specified by the environment variables PDFTOTEXT and DJVUSED, and then trying executables named pdftotext or djvused found along the shell executable path.
π CREDITS π
The first version of this converter was written by LΓ©on Bottou <leonb@users.sourceforge.net> in AT&T Labs. The DjVuLibre version is derived from code graciously released by Lizardtech in January 2004.
shoutout to LΓ©on Bottou for laying down the blueprint, and Lizardtech for the January 2004 drop. legends only ππ
π BUGS π
Program djvudigital can only process input files that GhostScript can process properly.
yeah. that's the whole bug section. it's short, it's honest, it's giving "if gs can't read it, i can't help you." π
π¦ SEE ALSO π¦
djvu(1), csepdjvu(1), c44(1), gs(1), gzip(1)
and that's the page, bestie π«Ά this was DjVuLibre-3.5, dated 1/31/2004 β so go forth, convert your files, and remember: if GhostScript can't handle it, nobody can. mwah πβ¨π
π¦ where this page comes from
- alpine 3.24: djvulibre-doc 3.5.30-r0 Β· GPL-2.0-only
- arch rolling: djvulibre 3.5.30.1-1 Β· GPL-2.0-or-later
- debian bookworm: djvulibre-bin 3.5.28-2.1~deb12u1
- debian bookworm: djvulibre-bin 3.5.28-2.2~deb12u1
- debian trixie: djvulibre-bin 3.5.28-2.2
- epel 10: djvulibre 3.5.28-13.el10_0 Β· GPL-2.0-or-later
- epel 9: djvulibre 3.5.28-4.el9 Β· GPLv2+
- fedora 43: djvulibre 3.5.28-14.fc43 Β· GPL-2.0-or-later
- fedora 43: djvulibre 3.5.30-1.fc43 Β· GPL-2.0-or-later
- fedora 44: djvulibre 3.5.28-16.fc44 Β· GPL-2.0-or-later
- fedora 44: djvulibre 3.5.30-1.fc44 Β· GPL-2.0-or-later
- nixos 26.05: djvulibre 3.5.29
- nixpkgs unstable: djvulibre 3.5.30
- opensuse-leap 16.0: djvulibre 3.5.28-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: djvulibre 3.5.28-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: djvulibre 3.5.28-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: djvulibre 3.5.28-160000.2.2 Β· GPL-2.0-or-later
- ubuntu jammy: djvulibre-bin 3.5.28-2build2
- ubuntu jammy: djvulibre-bin 3.5.28-2ubuntu0.22.04.2
- ubuntu noble: djvulibre-bin 3.5.28-2build4
- ubuntu noble: djvulibre-bin 3.5.28-2ubuntu0.24.04.2
- ubuntu questing: djvulibre-bin 3.5.28-2.2
- ubuntu resolute: djvulibre-bin 3.5.29-1
- ubuntu stonking: djvulibre-bin 3.5.30-1
- Copyright (c) 2001-2003 Leon Bottou, Yann Le Cun, Patrick Haffner
- Copyright (c) 2001 AT&T Corp., and Lizardtech, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms