1 (изменено: Rumata, 2016-09-12 14:29:20)

Тема: JScript: Конвертер в TXT, RTF, HTML, MHT, XML, PDF, XPS, FB2

Понятно, что таких программ сотни. Эта существует у меня давно, редко, но иногда, дорабатывается. Сегодня добавил еще один формат, в который можно конвертировать и решил опубликовать. Программа позволяет из командной строки преобразовать winword документы в другие форматы, включая FictionBook, популярный формат для электронных читалок.

Установка
-- скачать архив со страницы https://github.com/ildar-shaimordanov/jsxt/releases
-- распаковать содержимое архива в удобное для вас место на компьютере

В архив входят сама программа doc2html.bat и XSLT файл doc2fb.xsl (слегка модифицированный wml2fb.xsl), который необходим для преобразования файлов в формат FictionBook (для электронных читалок). Поэтому если не планируете конвертировать в формат FB2, удалите xsl-файл, в противном случае оставьте его в том же каталоге, где и сама программа.

Требования
-- обязателен WinWord (возможно потребуется дополнение для сохранения файлов в форматах pdf и xps)

Особенности
-- командная строка
-- пакетная обработка
-- большой выбор поддерживаемых форматов
-- поддержка шаблонов имен файлов для массовой обработки файлов
-- возможность определить другой XSLT-файл для преобразования в формат FictionBook
-- возможность запустить WinWord на переднем плане
-- вывод отладочной информации на консоль

Поддерживаемые форматы
Чтание

doc, docx, rtf, html, xml (WordML), mht, txt

Запись

html (по умолчанию), rtf, html, mht, txt, xml, pdf, xps, fb2

Примеры


:: преобразовать в html
doc2html filename.doc

:: аналогично первому, но с выводом отладочной информации на консоль
doc2html filename.doc /v

:: аналогично первому, но WinWord запускается на переднем плане
doc2html filename.doc /fg

:: преобразовать в текстовый файл в формате DOS (cp866)
doc2html filename.doc /f:txt /e:866

:: преобразовать в FictionBook для чтения в электронных книжках
doc2html filename.doc /f:fb2

Аргументы командной строки (все опциональные)

/F:format
    Формат файла на выходе TXT, RTF, HTML, MHT, XML, PDF or XPS.
    Дополнительно, FB2 определено для преобразования в формат FictionBook.

/E:encoding
    Числовое значение кодировки используемое при сохранении в текстовый формат.
    Опция работает только для формата, заданного с помощью /F:TXT.
    Уточняйте список доступных кодировок в своей системе.

    Для кириллических кодировок, используемых в России и Украине используются следующие значения:
    866   - DOS
    28595 - ISO
    20866 - KOI8-R
    21866 - KOI8-U
    10007 - Mac
    1251  - Win

/L:lineending
    Опция определяет как кодировать концы строк. Доступны следующие значения:
    CRLF (значение по умолчанию) , CR, LF, or LFCR.

/XSL:filename
    Имя файла для XSL преобразований для трансформации в формат FictionBook.

/V
    Включить вывод подробного отчета.

/FG
    Запустить WINWORD на переднем плане.

( 2 * b ) || ! ( 2 * b )

2 (изменено: Rumata, 2016-09-12 14:30:35)

Re: JScript: Конвертер в TXT, RTF, HTML, MHT, XML, PDF, XPS, FB2

Мне сообщили что

обрабатываются файлы ТОЛЬКО *.doc, но не *.DOC, *.Doc и прочее аналогичное. Иначе говоря - регистрозависимая обработка файлов.

Я поправил скрипт, чтобы обработка имен файлов была регистронезависимая. Проверено на латинице и кириллице.

Архив обновленного скрипта доступен на странице загрузки - https://github.com/ildar-shaimordanov/jsxt/releases

( 2 * b ) || ! ( 2 * b )

3 (изменено: Rumata, 2016-09-12 14:32:38)

Re: JScript: Конвертер в TXT, RTF, HTML, MHT, XML, PDF, XPS, FB2

Исправил ошибку, которая возникает при попытке сохранить документ в формате FB2.
Поправил все ссылки с google и fosshub на github.

( 2 * b ) || ! ( 2 * b )

4

Re: JScript: Конвертер в TXT, RTF, HTML, MHT, XML, PDF, XPS, FB2

Оказывается при сохранении файлов с включенными комментариями ворд выводит диалог и ждет реакции пользователя. В результате файлы не сохраняются, а скрипт вместе с вордом "подвисают". Чтобы избавиться от этого, необходимо установить несколько опций, чтобы принудительно выключить такие предупреждения.

( 2 * b ) || ! ( 2 * b )