Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Электронный офис в Linux
1998-2001, ИД "Мой Компьютер", 43(214)/28.10.2002

Формат трансформации

Сергей ЯРЕМЧУК grinder@ua.fm

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

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

PostScript

Итак по порядку. Первая проблема, с которой я столкнулся,═≈ это перенос документа в формате PostScript на компьютер, работающий под Windows. С этого, пожалуй, и начнем. Итак первая программа вызывается gs. Просто набрав данную команду с названием файла с расширением .ps, вы можете просмотреть указанный файл, а добавив опцию -sDEVICE=<devname>, можно преобразовать его в другой формат или подготовить для выдачи на принтер определенной марки. С помощью опции -sOutputFile= можно указать имя выходного файла. Вот так можно конвертировать файл PostScript в рисунок с расширением .bmp:

Для преобразования из .ps в .pdf тоже существуют специально предназначенные для этого программы. Они так и вызываются═≈ ps2pdf, причем речь идет о нескольких приложениях. ps2pdf по умолчанию преобразует в формат PDF═1.2 (Acrobat═3 и выше), версию которого можно сменить, используя опцию dCompatibility=1.x. Напомню, что самый свежий═≈ 1.4 используется в Adobe Acrobat═5. Если сразу захотите задать формат, то можно воспользоваться программами ps2pdf12 или ps2pdf13. Формат вызова софтины такой:

Если вместо имени файла используется дефис (-), то в качестве входного (выходного) файла используется стандартный ввод(вывод). Кроме того, существует множество аналогичных программ для конвертирования .ps в Рисунок другие форматы, например, ps2ascii.

И напоследок вкратце упомяну об очень мощной утилите a2ps, с помощью которой можно подготовить документ к выводу на печать в формате PostScript или в файл. Опций у программы большое количество, о некоторых я расскажу.

Представьте себе такую ситуацию: вы, будучи человеком прогрессивным и предусмотрительным, написали себе шпору на экзамен на компьютере, но, естественно в формате А4 нести ее с собой, я бы сказал, не совсем удобно. Для этого надо уменьшить шрифт и разбить на маленькие части. Для этого выполняем такую команду:

Что мы сделали? Очень просто: установили количество колонок текста равным четырем, размер шрифта═≈ 10, параметр -j означает рамку вокруг текста, затем указали необходимую кодировку, исходный файл и с помощью флага -о═≈ выходной. Результат посмотрите на рисунке. Опций, как уже отмечалось, много, и с их помощью с исходным файлом можно проделать практически все чего душа пожелает.

SGML

Следующий формат, с которым часто придется сталкиваться в Linux,═≈ это SGML. Для того чтобы вы могли его преобразовать, необходимо установить пакет linuxdoc. Так как сам формат наиболее близок к HTML, в сей последний и будем преобразовывать поначалу. Формат вызова команды такой:

Чтобы упростить жизнь юзеру, разработчики позаботились об отдельных командах для преобразования в тот или иной формат. Например, следующая команда конвертирует из SGML в HTML:

А с помощью опции -I в создаваемые файлы можно добавить ссылку на файлы изображения (next, prev, toc), которые копируются с каталога /usr/share/linuxdoc-tools/icons в текущий.

А чтобы преобразовать в формат .pdf, выполните следующую команду:

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

DOC

Следующие программы предназначены для конвертирования текстовых документов, набранных в формате MS═Word (.doc), в другие форматы. Эти приложения будут доступны, если у вас установлен пакет wv (http://www.wvWare.com). Набрав в командной строке wvVersion file_name.doc, можно узнать, к какой версии Word принадлежит документ. Команда wvHtml --charset=koi8-r test.doc test.html, как вы, должно быть, поняли, перегоняет документ Word в html-файл и устанавливает для него кодировку koi8-r. Приложение вполне корректно переносит таблицы и генерирует не так уж много мусора. Добавив опцию --password=password, можно преобразовывать файлы, закрытые паролем. Работу с другими форматами, я думаю, освоите сами.

Следующая программа═≈ iconv, входящая в пакет glibs любого дистрибутива. Она предназначена для перекодирования текстовых файлов из одной кодировки в другую. Формат вызова iconv такой:

Возможные варианты кодировок можно узнать, запустив приложение с опцией --list. Например, самая популярная задача по перекодировке выглядит так:

Cледующая программа, antiword (http://www.winfield.demon.nl), предназначена для преобразования документов в формате Word═6, 95, 97 и 2000 в текстовый файл или PostScript. После установки программы создайте в домашнем каталоге подкаталог .antiword (именно с точкой) и перенесите в него все файлы из каталога Resources, который находится в каталоге, куда вы распаковали исходные тексты программы.

С помощью команды antiword -t -m cp1251.txt test.doc можно вывести на терминал содержимое файла test.doc, причем программа вполне корректно (насколько это вообще возможно в терминале) отображает как содержимое самого файла со всеми элементами форматирования, так и таблицы. Если файл в кодировке koi8-r, то опцией -m необходимо подключить файл koi8-r.txt. Если есть необходимость конвертировать Word'овский файл в формат PostScript, воспользуйтесь следующей командой:

Здесь мы указали еще и размер страницы (доступны также letter и legal). Кстати, при использовании данной программы вам нечего бояться макровирусов═≈ они попросту не будут работать.

Вот мы кратко рассмотрели некоторые программы для работы с текстовыми файлами в Linux. Сразу оговорюсь: я не стремился рассказать обо всех подобных программах по причине их большого разнообразия, а только о наиболее часто мной используемых. Более подробную информацию можно узнать, запустив соответствующий man или команду с опцией --help, а лучше оба варианта═≈ я заметил, что информация, выводимая в том и другом случае, не всегда совпадает. Надеюсь, что еще одним белым пятном на карте острова пингвинов стало меньше. Успехов.

Linux forever.