Как оптимальнее автоматизировать обработку документов?
А как там с офлайн-браузером дело обстоит?
Где?
1. хранить всю информацию в плоских текстовых файлах или в базе данных
2. доставать и форматировать эту информацию perl'ом, или textutils'ами (только из текстовых файлов)
3. форматировать в TeX
4. из TeX'а в PostScript (если надо печатать) или PDF (если требуется и электронный документ с навигацией по внутренним ссылкам)
а вместо Tex-а юзать какой-нибудь XSL:FO
Хоть SGML и docbook
ты его пробовал использовать? мне навскидку показалось, что его до пенсии не изучать придётся
да, кстати, тогда уж не Tex, а LaTeX...
Что там изучать? Действия все те же самые, что при любой верстке.
Вот её-то и ломает изучать без особой на то надобности.
ps
Верстка - это как куски текста размазаны по страницам.
TeX задумывается. А тот кто на нем пишет - нет. По-моему так.
Я написал лишь, что если уж париться с ним, то поменьше - используя LaTeX
Более того, решение такое задачи почти не будет отличаться от решения исходной
Так что не очень понятно, зачем потом писать решение предложенной тобой задачи?..
Значит ворд сам по себе, а автоматизация отдельно
Будем копать в сторону VBA...
Попробуй посмотреть в сторону WordML - там должно быть не очень страшно, да и язык тогда можно будет использовать свою либимый.
все исходные документы уже есть в вордеСочувствую.
Просто я поздно подключился к процессу.
К слову, я его практически поборол (осталось немного документов, которые проще обработать руками).
И вообще, причем тут ворд-то?
Тут главная проблема была в том, что все эти документы не были выдержаны в едином формате данных
Или perl'ом или textutils'ами эта проблема легко решается?
Если да, то как?
А под него программить под vs.net-ом?
Можно и vs.net, можно и другим языком. Главное, чтобы язык обеспечивал удобную работу с xml-ем.
И вообще, причем тут ворд-то?При том, что он не предназначен для хранения информации.
Для этого удобнее всего база данных или любой легко парсящийся формат (тут предлагали XML).
Для качественной печати word тоже не предназначен -- для неё нужна издательская система,
по этому я и предлагал TeX (тоже далеко не идеал). Если нужно сделать абы как,
можно, конечно, и из word'а печатать (будет чуть лучше печати плоского файла).
Легко, конечно, не решаются.
Тут главная проблема была в том, что все эти документы не были выдержаны в едином формате данных
Или perl'ом или textutils'ами эта проблема легко решается?
Если да, то как?
Но чаще всего проще написать достаточно умный скрипт, чем руками править.
"Лучше день потренироваться, потом за пять минут долететь."
Как именно, зависит от того, что общего в этих форматах.
Например, если известно, что каждый файл плоский и где-то содержит
фамилию, имя и отчество в виде Иванов Иван Иванович или Иванов И. И.,
то grep + cut + paste будет достаточно. Если могут встречаться
записи Иван Иванович Иванов, то лучше уже perl -- наверное придётся
заводить словарик допустимых имён (из Даля или ещё откуда стянуть
чтобы понять где имя, где отчество, а где -- фамилия. Если скрипт
понять не в состоянии, тут уже придётся вручную разбираться.
grep + cut + pasteА готовых примеров нету случайно?
лучше уже perl -- наверное придётся
заводить словарик допустимых имён (из Даля или ещё откуда стянуть)
Или описаний подводных камней и тп?..
for i in *.txt; do cat $i | tr -s [:space:] " " | grep -o "[А-Я][а-я]+ +[А-Я][А-я]+ +[А-Я][а-я]+"; done
выдаёт все ФИО, записанные в файлах *.txt.
Если записи имеют вид Фамилия И.О., то:
for i in *.txt; do cat $i | tr -s [:space:] " " | grep -o "[А-Я][а-я]+ +[А-Я][.] *[А-Я][.]"; done
и т.д.
Как я уже писал, разбираться с именами, написанными вперемешку в разных видах, сложнее.
Спасибо
Оставить комментарий
durka82
В первую очередь по времени выполненияПод WinXP.
Задача следующая:
Есть около 200-та вордовых файлов известной структуры с информацией об авторах докладов (в том числе и мыло автора).
Есть еще два вордовых файла - шаблоны для документов, которые надо разослать (русская и английская версии).
Нужно на основе этих шаблонов (выбирая русскую или английскую версию в зависимости от языка имени автора) и данных об авторе и названии статьи сформировать уникальные(для каждого автора) вордовые документы, сконвертить их в pdf и разослать по электронной почте (это не спам - это конференция )
Как мне видится решение этой проблемы:
1. Сделать из шаблонов параметризованные файлы ворда (вроде как в документ ворда можно вставить поля и работать с их значениями как с переменными?..)
2. Скриптом (wsh?) доставать информацию из каждого из файлов об авторах и применять к документу из 1. (так вообще можно делать?)
3. Печатать документ на pdf-принтер
4. Формировать письмо
Вопросы:
1. Мб уже есть готовое решение для подобных задач?
2. С вордом такие вещи вообще делать можно?
3. Раз документ в конце нужен в pdf, может сразу это все в pdf и делать? Или там так не получится?
4. В Бате реально формировать письма внешним скриптом? Или лучше это сделать в оутлук-экспрессе?
5. wsh-ом это все сделать получится, или есть более подходящие средства?
Спасибо