Emacs для начинающих



         

Преобразование файлов в другие форматы в Linux


Автор: Сергей Яремчук, grinder@ua.fm
Опубликовано: 27.11.2002

© 2002, Издательский дом «КОМПЬЮТЕРРА» | http://www.computerra.ru/
Журнал «СОФТЕРРА» | http://www.softerra.ru/
Этот материал Вы всегда сможете найти по его постоянному адресу: http://www.softerra.ru/util/22068/

Краткое резюме:

PS (PostScript) в BMP: gs -sDEVICE=bmp16m -sOutputFile=test.bmp test.ps PS в TXT a2ps --columns=4 --font-size=10 -j -encoding=koi8 shpora.txt -o shpora.ps или ps2pdf ps2ascii

SGML в HTML, RTF, TXT: linuxdoc --bakend=format(html, rtf, text ...) --papersize=size --language=ru file_name.sgml или sgml2html file_name.sgml

SGML в PDF: gml2latex --output=pdf file_name.sgml

DOC в HTML: wvHtml --charset=koi8-r test.doc test.html

Перекодировка из WINDOWS-1251 в KOI8R: iconv -f WINDOWS-1251 -t KOI8R cp1251.txt > koi8r.txt

Очень часто при работе с файлами приходится преобразовывать их в другой формат. Особенно этот вопрос актуален для пользователей Linux, потому что в этой системе еще со времен первых Unix'ов сложились свои форматы файлов и при переносе их на компьютеры работающие под управлением Windows возникает проблема работы с файлами этих форматов, которая решается как правилом путем поиска соответствующих программ просмотра. Как вы понимаете, данный вариант не всегда приемлем, так как нужную программу еще надо найти, и еще не будешь же таскать все эти программы с собой и устанавливать на каждом компьютере. Самый простой вариант решения этой проблемы это преобразовать файлы к требуемому формату, который может быть прочитан на нужном компьютере.

В данной статье будут рассмотрены варианты преобразования только текстовых файлов из одного формата в другой, не будет затронуты вопросы преобразования графических, звуковых файлов и варианты преобразования с одного языка программирования на другой. Хочу еще предупредить, что все эти программы консольные. Что, отстой! Кричат некоторые пользователи. Да, я в принципе согласен, недостатки на лицо. Необходимо помнить не только название программы (впрочем, не совсем так, автодополнение в bash еще ни кто не отменял), но и различные параметры и опции. Но, есть и положительные стороны. К ним относится малый размер программ, малое время загрузки в оперативную память, отсюда и меньшее время выполнения, отсюда и меньшие требования к системным ресурсам (не у всех же Атлоны и четвертые пеньки).

А еще представьте такую ситуацию, что вам надо преобразовать сразу несколько файлов и еще сменить некоторые параметры, вручную через «Сохранить как …» не совсем удобно да и время, понимаете ли, а в консоли это возможно. Также в программах большинство опций унифицировано, и запомнив параметры одной, научится работать в аналогичной не составит большого труда. И еще, практически все рассмотренные программы входят в стандартную поставку так, что искать их по Интернету не придется.

Итак, по порядку. С первой проблемой с которой я столкнулся была необходимость перенести документ в формате PostScript на компьютер работающий под Windows с этого пожалуй и начнем. Итак, первая программа вызывается gs. Просто набрав данную команду с названием файла с расширением ps вы можете просто просмотреть указанный файл, а добавив опцию sDEVICE=<devname> можно преобразовать в другой формат или подготовить файл для выдачи на принтер определенной марки, а с помощью опции sOutputFile= , как вы поняли можно указать имя выходного файла. Вот так можно конвертировать файл PostScript в рисунок с расширением bmp. gs -sDEVICE=bmp16m -sOutputFile=test.bmp test.ps . Для преобразования из ps в pdf формат существуют программы специально для этого предназначенные. Они так и вызываются ps2pdf. Причем существуют несколько программ. ps2pdf – по умолчанию преобразует в формат pdf 1.2 (Acrobat 3.0 и выше) который можно сменить используя опцию -dCompatibility=1.x. Напомню, что максимальный 1.4 используется в Adobe Acrobat 5.0. Если сразу захотите задать формат, то можно воспользоваться программами ps2pdf12 или ps2pdf13. Формат вызова программы такой ps2pdf13 input.ps output.pdf , если вместо имени файла используется тире «-» то в качестве входного (выходного) файла используется стандартный ввод (вывод). Кроме этого существует множество аналогичных программ для конвертирования в другие форматы, например ps2ascii.

Следующий формат с которым часто придется сталкиваться в Linux это SGML. Для того чтобы вы могли его преобразовать необходимо установить пакет linuxdoc. Так как сам формат наиболее близок к HTML, то к нему и будем по началу преобразовывать. Формат вызова команды такой:
# linuxdoc --bakend=format(html, rtf, text ...) --papersize=size --language=ru file_name.sgml

Я думаю, что приведенные параметры очевидны. Чтобы упростить жизнь юзеру и здесь есть отдельные команды для преобразования к тому или иному формату. Например, следующая команда конвертирует из SGML в HTML. sgml2html file_name.sgml А с помощью опции -I – в создаваемые файлы, можно добавить ссылку на файлы изображения (next, prev, toc), которые копируются с каталога /usr/share/linuxdoc-tools/icons/ (рис.1) в текущий. А чтобы преобразовать в формат pdf выполните следующую команду:
sgml2latex --output=pdf file_name.sgml причем в образованном файле будут работать все имеющиеся гиперссылки. Следующие программы предназначены для конвертирования документов набранных в формате MS Word (.doc) в другие форматы. Они будут доступны если у вас установлен пакет . После установки пакета будут доступны несколько программ предназначенных для преобразования в разные форматы. Набрав в командной строке wvVersion file_name.doc можно узнать к какой версии Word принадлежит документ. Команда
wvHtml --charset=koi8-r test.doc test.html
, как вы уже поняли, перегоняет документ Word в html-файл и устанавливает для него кодировку koi8-r. Причем программа вполне корректно переносит таблицы и в некоторых файлах генерирует не так уж много мусора. Добавив опцию --password=password, можно преобразовывать файлы закрытые паролем.

Работу с другими форматами я думаю, разберете сами. Следующая программа немного выпадает из общего плана, но полезность ее очевидна. Это программа iconv, входящая в пакет glibs любого дистрибутива, назначение которой перекодирования текстовых файлов с одной кодировки в другую. Формат вызова программы такой iconv -f исходная_кодировка -t необходимая_кодировка old_file < new_file , где возможные варианты кодировок можно узнать запустив программу с опцией --list. Например самая популярная задача по перекодировке выглядит так
iconv -f WINDOWS-1251 -t KOI8R cp1251.txt > koi8r.txt




Содержание  Назад  Вперед