Избранное »

22.04.2012 – 18:12 | 54 Комментарии | 6 564 views

За без малого два года после последнего обновления скрипта приходило много писем с рекомендациями и пожеланиями по совершенствованию программы. Что-то оставлялось на будущее, что-то реализовывалось в виде grep-запроса и отсылалось автору вопроса. Но вот какое интересное письмо стало …

Читать полностью »
Работа в InDesign

Хитрости и секреты, приемы работы, уроки

Новая версия!

Особенности новой версии Индизайна

Плагины

Описание плагинов, информация о плагинах для работы с Adobe InDesign

Скрипты

Готовые к использованию скрипты для Adobe InDesign

Скриптинг

Описание языка, приёмов и методов программирования для Adobe InDesign

Home » Работа в InDesign

MS Word→InDesign CS4 — укрощение строптивых. Эпизод 3

Добавлено на 05.05.2010 – 03:156 Комментарии | 21 views

О проблемах импорта текста из MS Word в InDesign CS3/CS4 неоднократно упоминалось на различных форумах, например:

Текст русский в Ворде 2007. Есть сноски. При вставке текста в Инди CS4 постоянно происходит вот такой неприятный эффект: обнаруживается, что либо нумерация сносок неправильная (например, одной не хватает), либо где-нибудь в тескте вместо сноски перечеркнуты прямоугольник. Какой-то зависимости НЕ нахожу. Пробовал через Ctrl-D (place) в формате *.doc, Ctrl-C и Ctrl-V — все равно такие проблемы.
Что можно сделать, ибо в противном случае делаю все ручками, а сносок много — под 150?

(форум по Adobe InDEsign на ruDTP.ru, 11.12.2009)

Текст (rtf) загоняю в CS3 — всегда все нормально, загоняю в CS4 — теряет сноску №1 на 5 стр. <…> Если вставлять весь файл (не фрагмент ) в CS4 то и текст сноски теряется, и еще одна сноска. Кинул это файл, только doc, в СS4 все нормально (хотя в CS3 файлы всегда в RTF вставляли, там наоборот если doc, то терял часть сносок). Не понимаю в чем дело.

(форум по Adobe InDEsign на ruDTP.ru, 08.22.2010)

Работал в InDesign CS3. Проблем с загрузкой Word-овских текстов практически не было. Все сохранялось — локальное форматирование, сноски, таблицы, привязанные иллюстрации (крайне редко слетало несколько сносок (из 500 сносок пропадало штук 5-6), пропадали выделения пж, курсив). Загружал файлы в формате «rtf». В общем можно было доверять.
Установил лицензионный CS4, поставил обновления до 6.0.4.
I) Пробую загрузить RTF текст.
1. Пропала часть текста.
2. В начале текста вместо ссылок на сноски стоит розовое выделение, а сноски пропали. Через несколько страниц сноски лениво появились, но идут не подряд. Некоторые пропали, а на их место переехали те, что стояли после.
3. Вместо вордовских маркеров в перечнях — розовые квадратики.
II) Пробую загрузить DOC текст.
Загрузился лучше, но часть сносок пропала по сценарию п.2 (см. выше).

И у меня такая проблема! Найти толковое 100% решение так и не смог. В основном, получается загрузить не теряя сносок — DOC файлы. Перепробовал версии word-a (97, 2000, 2003, 2007) при создании RTF, результат отрицательный.
Использую CS3 для загрузки RTF — всегда все сноски на своих местах, ну а далее в CS4.
Вообще не ожидал от CS4 такого подвоха!

(форум по Adobe InDEsign на ruDTP.ru, 13.03.2010)

И это только последние сообщения. Проблема существует с первых рабочих версий InDesign. В 2005 г.  Maxbor писал:

Имеется файлик (много файликов) *.doc, в котором 10 (100, 500 — нужное подчеркнуть) сносок. Изготовлен в Ворд 2000 русский. При импорте в ИД попадают не все сноски, а процентов 60-70. Остальные сноски отмечены местами входа сноски с подсвеченными розовым цветом местами (отсутствующий шрифт). Попавшие таки в ИД сноски местами правильны, а местами перепутаны, то есть имеющимся входам сносок сопоставляются чужие тексты самих сносок. И та далее.
Если тот же документ(ы) вставить в ИД через буфер обмена/из файла преобразованного в РТФ, абсолютно все сноски на месте. Но тут наступает видоизменение диагноза. Если текст многоязычный (например с умляутами, европейской диакритикой), то вся диакритика превращается в соответствующие кириллические буквы согласно неуникодовой 256-символьной таблице.
Эта проблема, например, заставила на днях отказаться от вертски в CS2 большой книжечки с 352 сносками.

При продолжении рассмотрения выяснилось, что вход сноски и ее текст пропадает для сноски, которая в тексте следует ПОСЛЕ большой русской буквы «К». При этом последующие сноски импортируются правильно, но их нумерация сбивается на единицу (для каждого входжения). И так далее во всем тексте для сносок, идущих после «К».

(форум по Adobe InDEsign на ruDTP.ru, 21.06.2005)

Подвел итог Михаил Иванюшин:

На сегодняшний момент я знаю только один способ не потерять сноски в книге:
1) сохранить текстовый файл как RTF
2) импортировать его в InDesign CS3
3) сохранить результат как INX
4) взять этот INX файл в InDesign CS4 или InDesign CS5 и продолжить верстку книги.
Этот алгоритм уместен в том случае, если в ворде уже есть стилевая разметка, которую надо обязательно сохранить.
Но если нужно просто перенести текст со сносками, и предполагается вся стилевая разметка текста, что называется, с нуля, уже в пограмме вёрстки, то пока не дал сбоя такой подход:
1) при импорте в окне ‘Place’ установить флажок ‘Show Import Options’
2) в открывшемся окне в блоке ‘Formatting’ выбрать радиокнопку ‘Remove Styles and Formatting from Text and Tables’.
Т.е. нет необходимости обращения к проверенной палочке-выручалочке — версии InDesign CS3.

(форум по Adobe InDEsign на ruDTP.ru, 17.04.2010)

Но может быть ситуация изменилась с выходом новой версии 7? Тестируем новый продукт Asdobe. Исходный документ  в формате RTF содержит 243 сноски,  Windows-7, русский MS Word 2003.

Индизайн 7, установки импорта: удалить стили, сохранить локальное форматирование.
Результат: операция мной прервана после 15-минутного ожидания, прогрессбар остановился в самом начале и больше не двигался.

Индизайн 6, установки импорта — те же.
Результат: операция мной прервана после 20-минутного ожидания, прогрессбар остановился в самом начале и больше не двигался.

Индизайн 5, установки импорта те же
Результат: нормальный импорт, все сноски сохранены (243 шт.)

Индизайн 7, установки импорта: удалить стили, не сохранять локальное форматирование
Результат: нормальный импорт, все сноски на месте.

Индизайн 7, установки импорта — сохранять стили и форматирование, автоматический импорт стилей.
Результат: большая часть текста потеряна. Импортировано только 10 страниц. Про сноски лучше не упоминать.

Выводы:
1. В Индизайн 6 и 7 есть проблемы при импорте с сохранением локального форматирования. В Индизайн 5 их нет.
2. Полноценного беспроблемного импорта текста из MS Word в InDesign для русских дизайнеров-верстальщиков не существует, несмотря на недавно отмеченное десятилетие программы.
3. Поскольку обращения в фирму Adobe игнорируются, то  необходим поиск сторонних разработок или разработка новых программных средств по импорту данных в Индизайн.

В результате поиска сторонних разработок был найден только раньше известный InDesign Converter, платный макрос к MS Word, о котором уже писалось на нашем сайте в рубрике «Плагины». Скачиваем, устанавливаем, запускаем. Макрос прерывает свою работу с сообщением об ошибке. Повторные запуски после перезагрузок MS Word и всего компьютера также успеха не имели. Письмо к разработчику макроса с описанием проблемы и скриншотами осталось без ответа.

Первомайские выходные (праздник весны и труда) вдохновили нас заняться разработкой собственного макроса для MS Word по выгрузке данных в тэгированный текст для последующего импорта в InDesign CS4. Было перелопачено много сайтов с макросами, изучена их работа и частично объектная модель MS Word. В особенности хотелось бы отметить сайт Word Expert, многие наработки которого были использованы. И уже получены первые рабочие варианты, с которыми мы бы хотели вас ознакомить.

Функционал макроса
1. Автоматическое преобразование локального форматирования MS Word в символьные стили Индизайна (bold, italic, bolditalic, sub, sup, underline). Выделения цветом на данный момент игнорируются.
2. Создание одного стиля абзацев для всего текста. Маппинга стилей пока нет. Планируется в будущем.
3. Создание абзацного стиля для сносок. Наше тестирование показало, что ни одна сноска не теряется.
4. Рисунки молча игнорируются и не переносятся в Индизайн. В последующей доработке может быть вставка на их место фразы  типа pic 1, pic 2 и т.д. (тэгированный текст Индизайна не работает с картинками).
5. Таблицы превращаются в текст с разделителями tab между ячейками и \r между строками. Такой текст легко можно превратить обратно в таблицу средствами Индизайна. В дальнейшем можно сделать, чтобы таблицы из MS Word импортировались как таблицы.
6. Списки с буллетами. Буллеты заменяются на звездочку. Можно потом легко через ГРЕП заменить на стиль. В дальнейшем можно решить и эту проблему, чтобы буллеты сразу приходили буллетами.

Совместимость
Работает в Word 2003 и в портабельной бетта-версии Word -2010. Смеем надеяться, что будет работать и в версии 2007.

Установка макроса

1. Скачайте архив с макросом, распакуйте и откройте файл в блокноте, затем выделите весь текст и скопируйте в память (Ctrl+C).

2. Запустите MS Word, нажмите Alt+F8. В появившемя окне выберите Макросы из: Normal dot (общего шаблона)

Snap_2010.05.05 02.10.36_001

3. Нажмите кнопку Создать в этом же окне. Откроется окно редактора Visual Basic, в которое и нужно вставить из памяти ранее скопированный текст (Ctrl+V).

4. Сохраните макрос (Crtl+S) и переключитесь в окно MS Word. На этом установка закончена.

Запуск макроса

1. Откройте файл в MS Word, предназначенный для импорта в InDesign.

2. Нажмите Alt+F8. В открывшемся окне выделите макрос InDesignTagText и нажмите кнопку Выполнить.

Snap_2010.05.05 02.24.20_002

3. В результате работы  сгенерируется текстовый тэгированный файл, который будет записан в ту же папку и с тем же именем, как и у исходного файла, но с расширением .txt. Исходный файл с расширением .doc останется без изменений.

4. Обычным способом импортируйте этот файл в новый документ InDesign CS4.

5. Если вы работаете в InDesign CS3 — откройте сгенерированный файл в блокноте, найдите в начале файла строку, начинающуюся как
«<Version:6>… и вместо шестерки поставьте цифру 5, затем сохраните файл. Такое же изменение можно сразу сделать в исходном тексте макроса.

download

Скачать макрос в текстовом виде

Обновления

8.05.2010 — добавлена обработка обратной косой черты в исходном doc/rtf файле. Ранее возникала ошибка при импорте в Индизайн.
29.05.2010 — Устранена некритическая ошибка, связанная с обработкой угловых скобок

 

Послесловие

Мы надеемся, что затронутые в этой статье вопросы вам небезразличны и что вы примете активное участие в тестировании макроса, выдвините много конструктивных предложений, сообщите о режимах работы, где макрос не справляется или не в полной мере справляется со своей задачей. В противном случае дальнейшее развитие макроса будет прекращено.

С уважением, Борис Кащеев, Михаил Иванюшин, авторы сайта.

Эпизод 2

В комментариях была высказана идея — импортировать в InDesign всё-таки rtf-файл, доказавший свою надежность за долгие годы. Это позволяет сохранить форматирование таблиц, картинки, списки и т.д. А поскольку основная проблема со сносками, то перед импортом только их преобразовать в текст с сохранением локального форматирования. Приводим решение этой задачи.

I. Для преобразования сносок в тэговый текст предлагаем воспользоваться макросом FootnotesToText, взятым с сайта Word Expert и немного подправленным для наших целей. Макрос переносит сноски в основной текст MS Word, заключая его в тэги <FootnoteStart:>, <FootnoteEnd:> и сохраняя локальное форматирование сносок.

II. Восстановление тэгированных сносок в InDesign производите разработанным нами скриптом footnotesFromTags.jsx, который выполняет обратную процедуру создания сносок из текста, помеченного вышеуказанными тэгами. В скрипте решена задача сохранения локального форматирования сносок (для чего собственно он и разрабатывался). На данный момент сохраняется форматирование Bold, Italic, Bold Italic и легко могут быть добавлены другие типы форматирования.

Скрипт также создает абзацный стиль Footnotes и присваивает его всем восстановленным сноскам. Отредактируйте параметры стиля по своему усмотрению. Сноски в таблицах не обрабатываются.

Работоспособность скрипта тестировалась в InDesign CS4.

Общая последовательность действий

  1. Установите макрос FootnotesToText в MS Word и скопируйте скрипт footnotesFromTags в папку пользовательских скриптов Индизайна.
  2. Откройте предназначенный для импорта документ в MS Word, запустите макрос FootnotesToText. После обработки макросом сохраните документ под другим именем и с расширением .rtf.
  3. Импортируйте ваш файл .rtf в Индизайн. Обратите внимание на параметры импорта— форматирование текста не должно потеряться.
  4. Поставьте курсор в текст и запустите скрипт footnotesFromTags. Процесс восстановления будет сопровождаться прогрессбаром.

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

download

Скачать архив с макросом и скриптом

Эпизод 3

Недавно мы получили письмо от Андрея Сущенко:

Как-то миновала меня чаша сия раньше и со сносками у меня все было хорошо. Но вот пришел и мой черед. Встретил вашу статью со скриптами и советами. Спасибо, помогло. Правда я на маке работаю. И стоит у меня MS Word 2008, который не поддерживает работу с VBA. Пришлось написать скрипт для тегирования сносок на AppleScript. Решил поделиться. Выложите на сайт. Может какому-нибудь Mac-юзеру еще пригодится :-)

Спасибо, Андрей. Мы с удовольствием выполняем Вашу просьбу

Скачать скрипт footnote2teg.scpt для MS Word 2008 MAC

 

6 Комментарии »

  • Результат первой попытки использования в целом успешный.
    Есть проблемы с кодировкой комментариев и сообщений. Разобраться, увы, так и не смог. Но с ней что-то не то. Ни текст комментариев, ни сообщения при работе в MS Word 2003 Ru оказывается нечитаемым.

  • kirasir:

    Нету на маке проблем. Локальное на месте, сноски на месте — не адобу пинать надо.
    Скорее у меня без проблем, потому что у меня свой подход.

  • Admig:

    Спасибо за работу!
    Проблема архинасущная. Но общий подход к ее решению мне все-таки видится другим. Насколько я понимаю, вся проблема в сносках. Текст без сносок затягивается нормально через RTF. Лично у меня сбоев не было. И что важно при этом — сохранение картинок из Word-а; структуры сложных таблиц с объединенными ячейками, заголовочными строками; нумерованных и булетных списков. Так почему бы не использовать на полную эти возможности. Тогда надо в Word-е преобразовать сноски в тегированный текст, сохранить в RTF. Т.е. оставить тэги только для сносок, а в InD затягивать RTF (при этом сноски остаются в тэгах). Уже в InD локальное форматирование легко преобразуется в стилевое — например, с помощью Blatner Tools, или прекрасно работающим бесплатным скриптом Preptext. Останется только преобразовать тегированные сноски в настоящие. И такие скрипты тоже имеются, например, ReFoot. Вот только эти скрипты не сохраняют локальное форматирование внутри сносок. Вот если бы здесь чего-нибудь подкрутить, тогда проблема будет решена.

    Или другой путь. Начало такое же… Запихиваем RTF с тегированными сносками в InD. Сразу же экспортируем его в тэгированный текст. Все форматирование, таблицы полностью сохраняются. И теперь импортируем обратно в InD уже как тегированный текст. При этом сноски становятся на место (конечно, если в Word-е для них прописали правильные индезайновские теги. Ну или в Text-Only можно эти тэги подправить.).
    Но при таком способе теряются внедренные картинки, которые изначально могли быть в Word-е.
    Тогда перед экспортом в тэгированный текст внедренные картинки надо «разэмбеддить» и затем скриптом заменить все inline-картинки на тэги, содержащие полный путь к ним (вот этого скрипта и не хватает!). Далее — так же как и выше, импортируем тэгированный текст в InD, обрабатываем локальное форматирование, заменяем тэги с путями к картинкам на сами картинки — например недавно обсуждавшимся здесь скриптом уважаемого Михаила Иванюшина.
    В любом случае при таком подходе по максимуму используется то, что может дать RTF без глюков.

  • admin:

    Admig, мне очень понравилось ваше первое предложение. Теперь попробую изложить как я это понял,а вы подправьте если что не так. Значит, подправляем макрос, чтобы сноски с сохранением форматирования вставлялись в основной вордовский текст уже не как сноски, а как простой текст с сохранением форматирования, там же метим тэгами начало и конец всех конкретных сносок. Таблицы и графику и всё остальное не трогаем и сохраняем такой файл в RTF. Импортируем в Индизайн сохраненный RTF-файл. При этом форматирование сносок должно сохраниться, сохранятся и тэги начала-конца сносок. Далее запускаем индизайновский скрипт, который по тэгам опознает сноски внутри основного текста и сделает их настоящими сносками. Этот скрипт надо разработать. Это не так сложно, программирование для Индизайна я на два порядка лучше знаю чем программирование для MS Word. Вы упомянули скрипт Refoot, нельзя ли мне его выслать или дать ссылку на скачивание, в том случае если он не jsxbin?
    Второй ваш вариант мне кажется сложнее, да я уже и успел влюбиться в первый.
    И последний вопрос — вы точно уверены что RTF без сносок всегда хорошо импортируется в ID во всех версиях, со всевозможной графикой и сложными таблицами? А то за последние два года я текста без сносок в своей работе не видел.

  • Admig:

    Борис, вы совершенно правильно поняли мою первую идею. Единственное, что хотелось бы заметить, — при разметке сносок в Word-овском макросе нужно учесть возможность того, что сноска может состоять из более чем одного абзаца.
    Вообще говоря, такой макрос уже существует. Кем написан увы не помню, но прислать могу. Делал он по сути то же самое, только размечал тэги не под InDes, а под Вентуру. Посмотрите, может окажется полезным.
    Упомянутый мной скрипт ReFoot берется отсюда:
    http://www.indiscripts.com/post/2010/04/refoot-convert-markup-text-into-indesign-footnotes
    Есть еще один скрипт на VB такого же назначения. Где-то нашел, что-то сам подправил — уже не помню, т.к. не особо этим владею. Там текст сноски передается в виде текстовой переменной, поэтому и теряется ее форматирование. Пришлю также в письме.

    По поводу перевод локального форматирования в стилевое после импортирования RTF в InD: Blatner Tools, по-моему, слишком много подробностей сохраняет в стилях, приходится чистить лишнее. Недавно обновленный скрипт Preptext справляется лучше всего.

    По поводу второго моего варианта — так есть еще и третий. После импортированного «подготовленного» RTF в Индизайн текст сразу экспортируется в inx или в idml. Все сохраняется — форматирование, таблицы, графика. И потом уже в этом inx (по сути текстовый файл!) заменяются «тэгированные» сноски на «правильные» Индизайновские. Но это только в теории. Разобраться в структуре inx файла очень непросто.

    Насчет корректности импорта RTF без сносок. Что сказать? Уверен, что лично у меня в CS4 ни разу сбоя не было. Когда боролся с пропаданием сносок, пробовал разные варианты, в т.ч. убирать их вообще. Графика точно сохраняется. Списки сохраняются. Сложная структура таблиц сохраняется. Форматирование иногда дает сбой, когда импортируется DOC. С RTF было все в порядке.

  • Admig:

    И еще вдогонку одна мысль. При разметке сносок тэгами в Word-е хорошо бы отдельно обрабатывать случаи, когда сноска стоит внутри ячейки таблицы. Расстановка сносок на места скриптом в Индизайне в этих местах даст сбой.
    Может бы, пометить другими тэгами, с тем чтобы в Индизайне эти случаи обработать уже вручную по усмотрению пользователя.

Оставить комментарий!

Вы должны быть в системе чтобы оставить комментарий.