Linux-admin.net.ru / Преобразование текстовых файлов. / Преобразование файлов в другие форматы в Linux.
Преобразование файлов в другие форматы в Linux.
Автор : Сергей Яремчук
Краткое резюме:
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= можно преобразовать в другой формат или
подготовить файл для выдачи на принтер определенной марки, а с помощью опции
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) в другие форматы. Они будут доступны если у вас
установлен пакет wv. После
установки пакета будут доступны несколько программ предназначенных для
преобразования в разные форматы. Набрав в командной строке 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
Cледующая программа antiword предназначена для
преобразования документов в формате Word 6, 7, 97 и 2000 в текстовый или файл
формата PostScript. После установки программы (make all, make install) создайте
в домашнем каталоге подкаталог .antiword (именно с точкой) и перенесите в него
все файлы из каталога Resources который находится в каталоге в котором вы
распаковали исходные тексты программы. Теперь с помощью вызова antiword -t -m
cp1251.txt test.doc можно вывести на терминал содержимое файла test.doc,
причем программа вполне корректно (как это вообще возможно на терминале)
отображает как содержимое самого файла со всеми элементами форматирования так и
таблицы. Если файл находится в кодировке koi8-r то опцией -m необходимо
подключить файл koi8-r.txt. Если есть необходимость конвертировать Word'овский
файл в формат PostScript воспользуйтесь следующей командой antiword -p a4 -m
koi8-r.txt text.doc > 1.ps т.е. добавили размер страницы (доступны еще
форматы letter и legal). Кстати при использовании данной программы вам нечего
боятся макровирусов они попросту не будут работать.
И напоследок вкратце упомяну об очень мощной
утилите a2ps с помощью которой можно подготовить документ к выводу на печать в
формате PostScript или в файл. Опций у программы большое количество о некоторых
я расскажу. Представьте себе такую ситуацию вы как прогрессивный человек
написали себе шпору на экзамен (заметки на лекцию) на компьютере, но естественно
в формате А4 нести ее с собой я бы сказал не совсем удобно. Для этого надо
уменьшить шрифт и разбить на маленькие части. Для этого выполняем такую
команду
a2ps --columns=4 --font-size=10 -j -encoding=koi8 shpora.txt -o
shpora.ps
что мы сделали, установили количество колонок текста равным
четырем, размер шрифта – 10, параметр -j означает рамку вокруг текста, указали
необходимую кодировку, исходный файл и с помощью флага -о выходной, результат
посмотрите на рисунке. Опций как я уже говорил много и с помощью них с исходным
файлом можно проделать практически все чего душа пожелает.
Вот мы кратко рассмотрели некоторые программы
для работы с текстовыми файлами в Linux. Сразу скажу я не старался рассказать
обо всех подобных программах по причине их большого разнообразия, а только о
наиболее часто мной используемых. Более подробную информацию можно узнать
запустив соответствующий man или команду с опцией --help, а лучше оба варианта,
я заметил, что информация, выводимая при этом, иногда может отличаться. Успехов.