[ID СС2017] Есть ли мысли про глобальную предразметку текста?

vbatushev

15 лет на форуме
Сообщения
2 220
Оценка реакций
1 201
Для Go есть такая библиотека gooxml · Baliance. То есть по идее можно считать DOCX, распарсить и преобразовать в некий другой формат, тот же Tagged Text.
Есть библиотека и для Python — python-docx. Как бы тоже самое можно замутить.
Минусы библиотеки gooxml — лицензирование для коммерческого использования.
Плюсы — не нужны никакие дополнительные установки вроде Python-а и зависимостей, после написания утилиты будет один-единственный исполняемый файл (можно на компилить и для виндоса, и для мака, и для линакса, скажем, чтобы на серваке крутилось).
Минусы библиотеки python-docx — нужно иметь Python и тянуть к себе саму библиотеку.
Плюсы — либеральная лицензия OSI Approved :: MIT License.
Для себя бы я делал на Go, ибо быстро и можно сделать многопоточным, чтобы перемалывать толпу файлов.
 

vbatushev

15 лет на форуме
Сообщения
2 220
Оценка реакций
1 201
116636


Указание операционной системы нужно, потому что UNICODE для Tagged Text должен быть либо UNICODE-WIN, либо UNICODE-MAC. И конец новой строки в Windows должен быть \r\n (в макоси, надеюсь, \n). Можно не указывать, если конвертация делается для индизайна той же ОСи.
Перелопачивает все DOCX-и и складывает TXT в указанную папку (не указано, значит, складывает рядом с DOCX).

Пока это прямо пре-пре-пре-альфа. Например, не обрабатывает таблицы да и всякие там сноски тоже. Может, и вовсе в это фазе замрет :)
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 987
Оценка реакций
8 262
Зачем питон и go? Там формат элементарный - куча xml в архиве, распарсить самому проще, чем с этой экзотикой разбираться.
 

JAW

15 лет на форуме
Сообщения
14 804
Оценка реакций
3 158
Эх, мне бы кто нибудь конверт в BBCode сделал :)
А то даже центровка не проскакивает через копипаст с сохранением оформления.
 

Oleg Butrin

15 лет на форуме
Сообщения
1 568
Оценка реакций
847
Разобрать docx вообще не такая уж проблема. Раз двадцать делал. Можно даже одними скриптами InDesign, но это на любителя
Собрать из docxTagggedText тоже довольно просто через трансформации.
А вот заставить пользователей правильно форматировать в Ворде -- это, насколько я знаю, не удавалось еще никому и истории.
 

zollinger

Участник
Сообщения
64
Оценка реакций
22
Я так когда-то давным-давно в PageMaker справочники телефонные верстал, из .dbf брал данные специально написанной программой на Delphi, задавал стили тегами и писал в тестовый файл. После настройки генерация справочника занимала считанные минуты.
А сейчас в ID есть grep-стили, отличная вещь, я ими списки для караоке клепал, причем на нескольких языках.
Я к чему это (помимо как похвастаться '))' ). Может, есть смысл пересмотреть задачу, переосмыслить и сделать штатными средствами? ID щас дикой мощности система, можно практически всё сделать штатными средствами
 
Последнее редактирование:

kstati

иɯɐɯɔʞ
Сообщения
896
Оценка реакций
441
Я так когда-то давным-давно в PageMaker справочники телефонные верстал, из .dbf брал данные специально написанной программой на Delphi, задавал стили тегами и писал в тестовый файл. После настройки генерация справочника занимала считанные минуты.
А сейчас в ID есть grep-стили, отличная вещь, я ими списки для караоке клепал, причем на нескольких языках.
Я к чему это (помимо как похвастаться '))' ). Может, есть смысл пересмотреть задачу, переосмыслить и сделать штатными средствами? ID щас дикой мощности система, можно практически всё сделать штатными средствами
А уж если на indesign натравливать xml и правильно настроенную команду "map tags to styles", то и скорость не будет напрягать. Основная заморочка с DTD. Но, как обычно - один раз долго настраиваешь, многократно быстро применяешь.
 

hulk1776

Топикстартер
10 лет на форуме
Сообщения
436
Оценка реакций
11
напомните, чем общепринятый метод не устраивает?
Иногда в импортированном тексте могут слетать начертания. На днях вообще все зависло при импорте ворд-документа. Через 30 минут научного втыка (матанализа) оказалось, что Инди давился двумя сносками в виде звездочек (остальные 40, в виде цифр, проблем не создавали). Чтобы спать спокойно лучше всего импортировать notepad'овский текст. А еще лучше tagged text. Но битва за подготовку идеального tagged-варианта займет времени (на данном уровне знаний) на порядок больше, чем дочистка полуручными методами (с иногдашним подключением "матанализов"))).
 

Как_же_так

Участник
Сообщения
60
Оценка реакций
56
Иногда в импортированном тексте могут слетать начертания. На днях вообще все зависло при импорте ворд-документа. Через 30 минут научного втыка (матанализа) оказалось, что Инди давился двумя сносками в виде звездочек (остальные 40, в виде цифр, проблем не создавали). Чтобы спать спокойно лучше всего импортировать notepad'овский текст. А еще лучше tagged text. Но битва за подготовку идеального tagged-варианта займет времени (на данном уровне знаний) на порядок больше, чем дочистка полуручными методами (с иногдашним подключением "матанализов"))).
ну со сносками-то точно не вариант напрямую импортировать текст
Пока самый надежный алгоритм макрос word FootnotesToText + скрипт footnotesFromTags в ID
 

hulk1776

Топикстартер
10 лет на форуме
Сообщения
436
Оценка реакций
11
пример предъявите. текста, где "не доходит"
Вот, например (см. скрины).
Сам файл выложу, если разберусь, как.
Ставилось копипастом. Правда, если ставить импортом ртфа, то курсивы остаются. Но это на тестовом макете. А в работе просто увидел, что курсивы пропали. В общем периодическая головомойка с начертаниями. Поэтому хочется подстраховаться надежным тегированием начертаний.
 

Вложения

К.Т.

Участник
Сообщения
119
Оценка реакций
113
Рабочая среда:
1. Стили в *.indd (или в *.indt).
2. Соответствующие стили в шаблоне Word *.dotx (лучше с такими же именами).
3. Соответствующий пресет импорта *.smp.
Рабочий процесс:
1. Привязка шаблона к новому документу Word.
2. Подготовка документа: назначение стилей в тексте.
3. Импорт подготовленного документа в InDesign с указанным пресетом.
И никаких проблем.
(Разумеется, это может относиться не только к символьным стилям, но и к абзацным.)
 
Последнее редактирование:

hulk1776

Топикстартер
10 лет на форуме
Сообщения
436
Оценка реакций
11
Рабочая среда:
1. Стили в *.indd (или в *.indt).
2. Соответствующие стили в шаблоне Word *.dotx (лучше с такими же именами).
3. Соответствующий пресет импорта *.smp.
Рабочий процесс:
1. Привязка шаблона к новому документу Word.
2. Подготовка документа: назначение стилей в тексте.
3. Импорт подготовленного документа в InDesign с указанным пресетом.
И никаких проблем.
(Разумеется, это может относиться не только к символьным стилям, но и к абзацным.)
Да, сделал умольчальный пресет. Но все равно основой текст в Индизе оказывается не той гарнитурой и не того кегля. На нем написано "body+". Как всегда. Должен быть Calibri, 11. А он Times New Roman, 12. А если Clear overrides (чтобы получить нужную гарнитуру и кегль) - пропадают все курсивы и пр. Все же думаю, самым радикальным способом раз-навсегда избавиться от от этого будет расстановка в Ворде тегов (типа <b>, <i>, <bi>) и последующего снятия всего форматирования со всего. Правда расстановка таких тегов и есть главная задача, которую надо решить.
 
Последнее редактирование:

К.Т.

Участник
Сообщения
119
Оценка реакций
113
В этом рабочем процессе предполагается, что весь текст в индизайне должен быть определён стилями.
Соответственно, весь текст в подготовленном документе в ворде — тоже.
Без стиля не должно быть ни одного символа.
В итоге после импорта просто делается Clear Overrides всему тексту, и всё.
 

Как_же_так

Участник
Сообщения
60
Оценка реакций
56
пропадают все курсивы и пр.
Дак надо пройтись PerfectPrepText"ом сначала, вроде уже было в начале темы про этом.

А про импорт со абзацными стилями – у меня камень преткновения это куча мусорных стилей в документах ворда от авторов (сделать требованиями ограничиться стилями не вариант).
 

К.Т.

Участник
Сообщения
119
Оценка реакций
113
куча мусорных стилей в документах ворда от авторов
Разумеется. Это неизбежно, как новый год.
Поэтому документ надо готовить к импорту.
Ну или изыскивать всякие замудрённые способы вроде тегирования, что странно при наличии штатных способов.