Алексей Федорчук
Вот уже не один год применяю Abiword в качестве word-процессора (обычно не совсем точно называемый текстовым процессором) и он меня вполне устраивал. Ибо на 90% мои потребности в офисном софте сводятся к чтению doc-аттачментов, и только в 10% случаев возникает необходимость в создании оригинальных форматированных документов — причём 9% из них небольшие и несложные по оформлению. И лишь в одном случае из ста требуется создание объёмного и не вполне банально отформатированного оригинального материала, который, впрочем, тоже оказывался посильным Abiword’у. Но этот один случай, как правило, был для меня очень важен и по сути, и, главное, по срокам, то есть возникал неожиданно и «требовался вчера».
Так было до тех пор, пока давеча не стал готовить материалы для сбора на книгу про Пиктов и вересковое бухло. По условиям задачи для участия в этом предприятии необходимо представить фрагмент своего потенциального сочинения в основных форматах электронных книг — FB2, EPUB, MOBI, PDF. Поскольку свои всамделишние (не офисные) оригинальные тексты я сочиняю в текстовом редакторе в виде текстового файла с HTML-разметкой, мне показалось самым простым открыть соответствующий фрагмент в Abiword’е, сохранить его в формате ODT, а уж его преобразовывать во всё остальное посредством Calibre, которая нынче умеет делать это хорошо (как — со временем расскажу отдельно).
Что я и не замедлил проделать: открыл HTML-файл, просмотрел, по ходу дела внёс соответствующие коррективы. А необходимость в них у меня всегда возникает при прочтении собственных материалов — почему я и не люблю их перечитывать: возникает желание стереть всё нафиг и написать по новой, приходится себя останавливать. После чего сохранил исходный документ как файл ODT, закрыл Abiword и приготовился к дальнейшим действиям в Calibre.
Но тут мне пришло в голову, что надо бы внести в текст ещё некоторые изменения. Конечно, в Calibre есть нынче встроенный редактор, однако я с ним ещё недостаточно освоился. Поэтому схватился за знакомые пистолеты более привычный Abiword. И каково же было моё удивление, когда в ответ на попытку открыть только что редактировавшийся файл я получил сообщение о невозможности это сделать:
Удручённый, но ещё не осознавший масштабов бедствия, а быстренько установил LibreOffice в минимальной комлектации (Writer, Calc и их зависимости), и попробовал открыть тот же файл в его word-процессоре — и с тем же результатом. Разве что сообщение об ошибке было несколько конкретизировано — она содержалась в такой-то позиции контент-файла:
Восстанавливать правку мне совсем не улыбалось — чисто психологически мне проще переписать текст заново, чем вспоминать, где и что я редактировал в тексте существующем. Но это оттянуло бы оформление сбора на неопредлённый срок. И потому я решил разобраться в причинах ошибки и, по возможности, их ликвидировать.
Как известно, документ формата ODT — это просто компрессированный архив, содержащий XML-файл с содержимым (content.xml) и сопутствующие файлики со всякого рода дополнительной информацией (определением MIME-типа, стилевой таблицей etc.). Так что задача сводилась к распаковке архива, открытию контент-файла в текстовом редакторе и отысканию в нём соответствующей позиции. В коей обнаружилась удивительная вещь — открывающий тег соответствующего абзаца выглядел так:
<text:p text:style-name=»P3» >
А закрывающий — так:
</text:h>
Удивлённый этим обстоятельством не меньше, чем Остап Бендер — наличию двух Советских улиц в Старгороде, я поправил закрывающий тег, переупаковал ODT-файл и попробовал повторить процедуру открытия во Writer’е из LibreOffice. Writer’а ответила сообщением об ошибке в следующей позиции (хорошо, что не скалкой между глаз):
Ошибка оказалась аналогичной (разные открывающий и закрывающий теги). Но легче от этого не стало. А, наоборот, стало мучительно ясно: Abiword способен создавать ошибки на ровном месте.
После этого я решил действовать малой кровью, но на своей земле. Быстро-быстро установил конвертер ODT в TXT:
$ sudo apt in odt2txt/wily
Быстро-быстро конвертировал искалеченный файл:
$ odt2txt picti-i-el.odt > picti-i-el.txt
Быстро-быстро переформатировал его (благо, ничего, кроме рубрикации, там не требовалось). А потом медленно-медленно сказал себе:
Лёха, никогда, никогда, никогда больше не используй Abiword.
Ибо вдруг такая смешная ошибка выпадет на тот самый единственный случай из ста — на очень важный и очень срочный документ? И при этом — достаточно сложный для быстрого ручного переформатирования?
Как-то трудно поверить, что Calibre конвертирует файлы в форматы электронных книг корректно. Некоторое время назад попытка создать fb2-файл завершилась тем, что файл не прошёл валидацию при заливке на сайт. Пришлось переделывать ручками.
Как ни странно, с чтением ни в одном формате проблем не обнаружил.
Использовал когда-то AbiWord для формирования FB2 файлов, для этого написал XSLT конвертер из .abw в .fb2, и тот и другой это XML, и XSLT идеально предназначен для конвертации XML файлов: https://github.com/ibnteo/abw2fb
TeX спасет гиганта мысли.
Волька, да, я его видел. Увы, в нынешних версиях Abiword’а — не работает…
lahzu, верно! Как некогда заметил Алексей Крюков — самое оно: сочинять полустраничную закладную записку начальству с томом Кнута на коленках.
Ну, одно дело — одностраничные документы, для коих все эти ворды и предназначены, а совсем другое — книга с рубрикацией, библиографией, индексом и т.п. Как говорят в Одессе, «две большие разницы» =)
lahzu, вообще-то TeX — тоже не панацея. Для книг, которые я издавал 20 лет назад (а до того даже и писал аналогичные) он подходит ничуть не больше, чем Abiword :)