dwww Home | Manual pages | Find package

catdoc(1)                   General Commands Manual                   catdoc(1)

NAME
       catdoc  - reads MS-Word file and puts its content as plain text on stan-
       dard output

SYNOPSIS
       catdoc [-vlu8btawxV] [-m number] [ -s charset] [ -d charset] [  -f  out-
       put-format] file

DESCRIPTION
       catdoc  behaves  much like cat(1) but it reads MS-Word file and produces
       human-readable text on standard output.  Optionally it can use  latex(1)
       escape  sequences  for  characters which have special meaning for LaTeX.
       It also makes some effort to recognize MS-Word tables, although it never
       tries to write correct headers for LaTeX tabular environment. Additional
       output formats, such is HTML can be easily defined.

       catdoc doesn't attempt to extract formatting information other than  ta-
       bles  from MS-Word document, so different output modes means mainly that
       different characters should be escaped and different ways used to repre-
       sent characters, missing from output charset. See CHARACTER SUBSTITUTION
       below

       catdoc uses internal unicode(4) representation of text, so it is able to
       convert texts when charset in source document doesn't match  charset  on
       target system.  See CHARACTER SETS below.

       If no file names supplied, catdoc processes its standard input unless it
       is  terminal. It is unlikely that somebody could type Word document from
       keyboard, so if catdoc invoked without arguments and stdin is not  redi-
       rected, it prints brief usage message and exits.  Processing of standard
       input  (even  among  other  files)  can be forced using dash '-' as file
       name.

       By default, catdoc wraps lines which are more than  72  chars  long  and
       separates  paragraphs  by blank lines. This behavior can be turned of by
       -w switch. In wide mode catdoc prints each paragraph as one  long  line,
       suitable for import into word processors that perform word wrapping.

OPTIONS
       -a      -  shortcut  for -f ascii. Produces ASCII text as output.  Sepa-
               rates table columns with TAB

       -b      - process broken MS-Word file. Normally, catdoc checks if  first
               8  bytes of file is Microsoft OLE signature. If so, it processes
               file, otherwise it just copies it to stdin. It  is  intended  to
               use catdoc as filter for viewing all files with .doc extension.

       -dcharset
               -  specifies  destination  charset name. Charset file has format
               described in CHARACTER SETS below and should have .txt extension
               and   reside   in   catdoc   library    directory    (    ${pre-
               fix}/lib/x86_64-linux-gnu/catdoc).  By  default,  current locale
               charset is used if langinfo support compiled in.

       -fformat
               - specifies output format as described in CHARACTER SUBSTITUTION
               below.  catdoc comes with two output formats -  ascii  and  tex.
               You can add your own if you wish.

       -l      Causes  catdoc to list names of available charsets to the stdout
               and exit successfully.

       -mnumber
               Specifies right margin for text  (default 72).  -m 0 is  equiva-
               lent to -w

       -scharset
               Specifies  source  charset. (one used in Word document), if Word
               document doesn't contain UTF-16  text. When  reading  rtf  docu-
               ments, it is typically not necessary, because rtf documents con-
               tain  ansicpg  specification.  But  it  can be set wrong by Word
               (I've seen RTF documents on Russian,  where  cp1252  was  speci-
               fied).  In  this  case  this  option  would take precedence over
               charset, specified in the document. But source_charset statement
               in the configuration file have less priority than charset in the
               document.

       -t      - shortcut for -f tex
                converts all printable chars, which have  special  meaning  for
               LaTeX(1)  into  appropriate  control  sequences. Separates table
               columns by &.

       -u      - declares that Word  document  contain  UNICODE   (UTF-16) rep-
               resentation of text (as some Word-97 documents). If catdoc fails
               to correct  Word document with  default charset,    try     this
               option.

       -8      - declares is Word document is 8 bit. Just in case that catdoc
                recognizes file format incorrectly.

       -w      disables  word  wrapping. By default catdoc output is split into
               lines not longer than 72 (or  number, specified by  -m   option)
               characters and paragraphs are separated by blank line. With this
               option each paragraph is one long line.

       -x      causes catdoc to output unknown UNICODE character as \xNNNN, in-
               stead of question marks.

       -v      causes catdoc to print some useless information about word docu-
               ment structure to stdout before actual start of text.

       -V      outputs catdoc version

CHARACTER SETS
       When processing MS-Word file catdoc uses information about two character
       sets, typically different
        -   input and output. They are stored in plain text files in catdoc li-
       brary directory. Character set files should contain two whitespace-sepa-
       rated hexadecimal numbers - 8-bit code in character set and 16-bit  Uni-
       code  code.   Anything from hash mark to end of line is ignored, as well
       as blank lines.

       catdoc distribution includes some of these  character  sets.  Additional
       character  set  definitions,  directly  usable by catdoc can be obtained
       from ftp.unicode.org. Charset files have .txt suffix, which shouldn't be
       specified in command-line or configuration files.

       Note that catdoc is distributed with Cyrillic charsets  as  default.  If
       you  are  not Russian, you probably don't want it, an should reconfigure
       catdoc at compile time or in runtime configuration file.

       When dealing with documents with charsets other than  default,  remember
       that Microsoft never uses ISO charsets. While letters in, say cp1252 are
       at  the  same position as in ISO-8859-1, some punctuation signs would be
       lost, if you specify ISO-8859-1 as input charset.  If  you  use  cp1252,
       catdoc  would  deal with those signs as described in CHARACTER SUBSTITU-
       TION below.

CHARACTER SUBSTITUTION
       catdoc converts  MS-Word file into following internal Unicode  represen-
       tation:

       1. Paragraphs are separated by ASCII Line Feed symbol (0x000A)

       2. Table cells within row are separated by ASCII Field Separator symbol
           (0x001C)

       3. Table rows are separated by ASCII Record Separator (0x001E)

       4. All printable characters, including whitespace are represented with
       their
           respective UNICODE codes.

       This UNICODE representation is subsequently converted into 8-bit text in
       target character set using following four-step algorithm:

       1. List of special characters is searched for given Unicode character.
           If  found,  then  appropriate multi-character sequence is output in-
           stead of character.

       2. If there is an equivalent in target character set, it is output.

       3. Otherwise, replacement list is searched and, if there is multi-char-
       acter
           substitution for this UNICODE char, it is output.

       4. If all above fails, "Unknown char" symbol (question mark) is output.

       Lists of special characters and list of substitution are character  set-
       independent, because special chars should be escaped regardless of their
       existence in target character set  (usually, they are parts of US-ASCII,
       and  therefore  exist  in  any  character  set)  and replacement list is
       searched only for those characters, which are not found in target  char-
       acter set.

       These  lists are stored in catdoc library directory in files with prefix
       of format name. These files have following format:

       Each line can be either comment (starting with  hash  mark)  or  contain
       hexadecimal  UNICODE  value,  separated by whitespace from string, which
       would be substituted instead of it. If string contain no  whitespace  it
       can  be  used as is, otherwise it should be enclosed in single or double
       quotes. Usual backslash sequences like '\n','\t' can be  used  in  these
       string.

RUNTIME CONFIGURATION
       Upon  startup catdoc reads its system-wide configuration file ( catdocrc
       in catdoc library directory) and then user-specific  configuration  file
       ${HOME}/.catdocrc.

       These files can contain following directives:

       source_charset = charset-name
               Sets default source charset, which would be used if no -s option
               specified.  Consult  configuration of nearby windows workstation
               to find one you need.

       target_charset = charset-name
                Sets default output charset. You probably know, which  one  you
               use.

       charset_path = directory-list
               colon-separated  list  of  directories,  which  are searched for
               charset files.  This allows you to install  additional  charsets
               in your home directory.  If first directory component of path is
               ~  it  is replaced by contents of HOME environment variable.  On
               MS-DOS platform, if directory name starts with  %s,  it  is  re-
               placed  with directory of executable file. Empty element in list
               (i.e. two consequitve colons) is considered current directory.

       map_path = directory-list
               colon-separated list of directories, which are searched for spe-
               cial character map and replacement map.  Same substitution rules
               as in charset_path are applied.

       format = format name
               Output format which would be used by default.  catdoc comes with
               two formats - ascii and tex but nothing prevents you from  writ-
               ing  your  own format (set two map files - special character map
               and replacement map).

       unknown_char = character specification
               sets character to output instead of  unknown  Unicode  character
               (default  '?')  Character specification can have one of two form
               - character enclosed in single quotes or hexadecimal code.

       use_locale =(yes|no)
               Enables or disables automatic selection of output  charset  (de-
               fault yes),
                based  on  system locale settings (if enabled at compile time).
               If automatic detection is enabled, than output charset  settings
               in the configuration files (but not in the command line) are ig-
               nored,  and current system locale charset is used instead. There
               are no automatic choice of input charset, based of  locale  lan-
               guage,  because  most modern Word files (since Word 97) are Uni-
               code anyway

BUGS
       Doesn't handle fast-saves properly. Prints footnotes as  separate  para-
       graphs  at the end of file, instead of producing correct LaTeX commands.
       Cannot distinguish between empty table cell and end of table row.

SEE ALSO
       xls2csv(1), catppt(1), cat(1), strings(1), utf(4), unicode(4)

AUTHOR
       V.B.Wagner <vitus@45.free.net>

MS-Word reader              Version @catdoc_version@                  catdoc(1)

Generated by dwww version 1.16 on Sat Oct 3 07:33:15 CEST 2026.