Автоматизация QuarkXPress

Статус
Закрыто для дальнейших ответов.

drwhite

Топикстартер
10 лет на форуме
Сообщения
27
Реакции
0
Еще раз всех приветствую, еще раз спасибо тем, кто рассказал про XTags, но вот возник новый вопрос на этот раз более по программированию, но непосредственно связанный с кварком.

Дано:
winXP
Quark 4.1
Xtags
part_1.qxd, part_2.qxd, ..., part_N.qxd
Некое приложение, в тестовых целях написанное на php («гланды черес ж…попу», но VB, Java и C++ пока плохо знаю), которое загружает из директории все содержащиеся в ней xtg-файлы, производит с ними нужные действия, и сохраняет отредактированные файлы в другую директорию.


Вопрос:
Имеется ли возможность с помощью этого приложения программно открыть (запустить) кварк, открыть в нем файл part_1.qxd, экспортировать из него XTG с помощью XTags, закрыть файл, загрузить этот экспортированный xtg в это же приложение, обработать, сохранить куда следует, а потом повторить эту операцию для оставшихся part_(N-1).qxd файлов, потому как вроде бы скрипты в четвертом кварке работают только на маке?

Рабочее приложение скорее всего будет написано на одном из того, чего пока плохо знаю.
 

boar

15 лет на форуме
Сообщения
291
Реакции
25
Ответ: Автоматизация QuarkXPress

Чтобы что-то программно делать с Кварком, нужно знать его объектную модель. Руководство для разработчиков (SDK) закрытое и стоит что-то около $1000. (хотя где-то в Рунете оно пробегало). Имея его и зная, например, C++, можно делать с Кварком что угодно.
Наверно, лучше пойти другим путем: программно запускать Кварк, устанавливать фокус на его окно и передавать ему нажатия клавиш. Можно использовать отдельную утилиту, которая это умеет, например, Automate. Можно использовать возможности языка программирования (например, в VB/VBA это функция sendkeys).
 

drwhite

Топикстартер
10 лет на форуме
Сообщения
27
Реакции
0
Ответ: Автоматизация QuarkXPress

Благодарность, будем разбираться…
 

XTmaker

Участник
Сообщения
107
Реакции
0
Ответ: Автоматизация QuarkXPress

boar сказал(а):
Чтобы что-то программно делать с Кварком, нужно знать его объектную модель. Руководство для разработчиков (SDK) закрытое и стоит что-то около $1000. (хотя где-то в Рунете оно пробегало). Имея его и зная, например, C++, можно делать с Кварком что угодно.
Наверно, лучше пойти другим путем: программно запускать Кварк, устанавливать фокус на его окно и передавать ему нажатия клавиш. Можно использовать отдельную утилиту, которая это умеет, например, Automate. Можно использовать возможности языка программирования (например, в VB/VBA это функция sendkeys).

К сожалению, XTensions Developer Kit (XDK) стоит не $1000, а $1520 (цена для Европы), если покупать его первый раз. И это — стоимость лицензии на разработку только сроком на 1 год. Потом опять плати. А были времена (лет 7-8 назад), когда всего 500/год стоил.
 

Flame

Unregistered user
20 лет на форуме
Сообщения
1 323
Реакции
57
Ответ: Автоматизация QuarkXPress


Не по теме:
кстати, если не секрет, Вам удалось на продажах своего хифенатора хотя бы XDK отбить?
 

boar

15 лет на форуме
Сообщения
291
Реакции
25
Ответ: Автоматизация QuarkXPress

Кстати, XTmaker, а что-нибудь известно про описание объектной модели 7-го кварка? Кажется, это у них называется DOM и основано на xml. И распространяется чуть ли не открыто. Где-то несколько месяцев назад промелькнуло в кварковском пресс-релизе, и с тех пор -- ни слуху, ни духу. Все ссылки из пресс-релиза ведут на несуществующую страницу :(
 

boar

15 лет на форуме
Сообщения
291
Реакции
25
Ответ: Автоматизация QuarkXPress

И еще, XTmaker, по поводу Hyphenator'а. Нам (издательству) нужен переносчик под 7-й Кварк под Windows. Его родной переносчик по некоторым причинам не подходит. Если есть товар на продажу -- напишите в приват, plz
 

XTmaker

Участник
Сообщения
107
Реакции
0
Ответ: Автоматизация QuarkXPress

Flame сказал(а):

Не по теме:
кстати, если не секрет, Вам удалось на продажах своего хифенатора хотя бы XDK отбить?

Удалось, конечно :) И XDK отбить удалось, и новый Макинтош, и плазменный телек, и много еще чего.

Если предлагаешь софт, который вне конкуренции, и без которого работать в Кварке невозможно, то отбить лицензию можно легко. Такой софт обычно и рекламировать особо не надо. Русские переносы — это один из самых частых поисковых запросов, который люди делают в поисковиках, если речь идет о QuarkXPress. Без переносов любая верстальная программа — это набор безполезного машинного кода. Поэтому обычно клиенты меня или дилеров переносчика сами находят.

Вот другой софт, без которого в принципе можно и обойтись, продавать гораздо тяжелее.
 

XTmaker

Участник
Сообщения
107
Реакции
0
Ответ: Автоматизация QuarkXPress

boar сказал(а):
Кстати, XTmaker, а что-нибудь известно про описание объектной модели 7-го кварка? Кажется, это у них называется DOM и основано на xml. И распространяется чуть ли не открыто. Где-то несколько месяцев назад промелькнуло в кварковском пресс-релизе, и с тех пор -- ни слуху, ни духу. Все ссылки из пресс-релиза ведут на несуществующую страницу :(

Насчет ДОМа подробностей не знаю, так как не пользуюсь. Помню, что были у них задумки сделать открытым формат файла и сделать его xml. Это была как дешевая альтернатива XDK. Но чем кончилось это все, не знаю. Все равно там не сделать всего того, что можно делать с XDK. XDK — это, конечно, штука мощная. Причем там доступны такие вещи оказываются, что я удивляюсь, почему их Кварк сам еще не реализовал в своей программе. Т.е. сторонним разработчикам они дают возможность это сделать и рассказывают как, а сами еще не сделали.

А насчет портирования своего переносчика под винду хочу огорчить. Собирался это делать, но так как Кварк уже встроил в себя русские переносы, делать этого не буду. Да, родные кварковские переносы выдают много ошибок, особенно в сложных словах. Но все равно их появление сузило потенциальный рынок для меня процентов на 90%. Основная масса нетребовательных юзеров не станет моими клиентами.

А в заключение еще раз поагитирую :) Народ, переходите на Маки. Да, дороже. Зато сколько преимуществ (одно то, что макюзеры не знают, что такое вирусы, чего стоит). Тем более, что сейчас Маки выпускаются на Интел процессоре. Можно держать и Винду и Мак ОС на одном компе. Только вот если поработаете в Мак ОС, в Винду уже возвращаться не захочется :)
 

Vadim_PDF

15 лет на форуме
Сообщения
1 648
Реакции
237
Ответ: Автоматизация QuarkXPress


Не по теме:
Странно, а почему я (проработав на MacOS поверьте немало) на него не вернулся? Вернее не то, что бы не вернулся - работаю периодически, но просто без фанатизма, нормальная система, не более. Может из-за софта (разного универсального, начиная от кодеков видео и заканчивая взломаными плагинами), которого найти на MacOS ой как не просто. Вирусы - не льстите - везде есть. Хотя чем их меньше на системе - тем меньше популярность этой системы. Зависимость поверте прямая.
Хм.. Возможно не успел подсесть на яблочный наркотик? Так может и не надо? :)

 

suntory

Administrator
15 лет на форуме
Сообщения
23 425
Реакции
12 469
Ответ: Автоматизация QuarkXPress

XTmaker сказал(а):
в Винду уже возвращаться не захочется

Не по теме:
Дома возвращаюсь туда-сюда по несколько раз на дню, и всегда хочется :)
 

drwhite

Топикстартер
10 лет на форуме
Сообщения
27
Реакции
0
Еще жалко то, что выходной xtg далек от xml совершенства: тэги разметки в строке с полужирным и курсивным начертанием, и другими тэгами, легко могут пересекаться, не говоря уже о том, что открывающий и закрывающий одиночный тэг идентичны.
Код:
строка с [B]жирным и [I]курсивным [/B]текстом.[/I]
в xtg выглядит вот так
Код:
@s1:строка с <B>жирным и <I>курсивным <B>текстом <I>.
В принципе написать програмку, приводящую его в должный вид можно, но может этот велосипед уже изобретен, кто что знает?

Да и еше такой момент.
После экспотра xtg в нем сохраняются все изменения стилей, сделанные вручную: вид начертания, гарнитура, трэкинг, интерлиньяж и т. д.

Требуется «очистить» все xtg так, чтобы оставались только В, I, U, K, \t и \n.
Сейчас это делает php-модуль с помощью регулярных выражений, но может этот велосипед тоже уже изобретен..?
 

boar

15 лет на форуме
Сообщения
291
Реакции
25
Ответ: Автоматизация QuarkXPress

drwhite,
а что плохого в том, что тэги пересекаются? Жирность и курсивность -- независимые свойства, и они не обязаны зависеть друг от друга. Если уж хочется задавать их вместе -- можно воспользоваться "совмещенным тэгом" <BI>.
Насчет идентичности открывающего и закрывающего тэга. Так сделано специально, чтобы эти тэги работали в режиме "переключателя" (toggle). Если нужно заставить их работать в режиме "включателя" (face-setting), ставится "~". Например, <~B~I> означает "с этого места текст полужирным курсивом, независимо от того, каким он был до этого"
Насчет экспорта в XTags: использование php -- решение довольно экзотическое, обычно используют вордовские макросы на VBA. Есть чудный немецкий макрос QXPort, в котором можно выбрать какие свойства экспортироавть, а какие не экспортировать в xtags. Например "полужирный и курсив берем, а Times New Roman 12 pt не берем". Кроме того, в инете ходит много самодельных макросов для этого. Кажется, на форумах rudtp/prodtp что-то упоминалось
 

RIKITIKI

20 лет на форуме
Сообщения
1 471
Реакции
522
Ответ: Автоматизация QuarkXPress

TCP-IP XT provides remote control and automation of QuarkXPress documents
for End-Users, Designers, Printers, System Integrators, In-house IT
departments and Programmers. TCP-IP XT is an advanced platform independent,
location independent, and authoring independent scripting command set.

TCP-IP XT enables control of QuarkXPress completely independently of the
QuarkXPress user interface, providing 90% of the user interface
functionality but with the huge advantage of remote and automatic document
construction and content extraction.

TCP-IP XT can link to any database for database driven document creation.
Document construction and query commands can be simply scripted into your
favourite programming or scripting application and sent via a TCP/IP
connection to a single QuarkXPress application/session running the TCP-IP
XT.
http://www.extensionsworld.com/index-directory-quark-software-quarkxpress-xtension-161.html
 

drwhite

Топикстартер
10 лет на форуме
Сообщения
27
Реакции
0
2 boar:

Фишка в том, чтобы в конечном результате заполучить валидный хмл документ, то есть никаких пересекающихся, совмещенных и одинаковых откр. и закр. тэгов.
Кстати если использовать опцию экспорта разделенных тэгов в XTags, то почему-то получается такая картина:
Код:
@s_title:Title¶
@s_text:<B><I><U>Bold·italic·text<B><I><U>·other·text¶
@s_text:next·paragraph¶
@s_text:next·paragraph¶
вместо обычного
Код:
@s_title:Title¶
@s_text:<BIU>Bold·italic·text<BIU>·other·text¶
next·paragraph¶
next·paragraph¶

А на счет тильды — как-то «чертЬегознает» — разбираться надо, экспериментировать.

Пхп, как уже говорилось, — временное прибежище, потому как С++ или Java пока мало изучены.
(Но зато как удобно: программа, вычищающая всё ненужное с помощью рег. выражений, была написана часа за полтора, пхп — форева =) )

За QXPort спасибо, посмотрим, что за зверь.



2 RIKITIKI:

Это по ходу «мегасуперофегенная хреновина», с помощью которой можно сократить время производства как минимум раза в полтора, а как это важно для производства периодических изданий наверное понятно всем =)).
Так что заранее мега респект за проделанную за меня работу. =)
_
 

PUSTO

Участник
Сообщения
38
Реакции
0
Ответ: Автоматизация QuarkXPress

С Visual C++ поставляется утилита Spy++. Она покажет имена классов окон Кварка и логи Win API функций, а дальше анализировать и пробовать.
 

drwhite

Топикстартер
10 лет на форуме
Сообщения
27
Реакции
0
Ответ: Автоматизация QuarkXPress

2 PUSTO
благодарность, как раз начал потихоньку перелазить с пхп на си++, Страуструпа купил, все такое =))
 

PUSTO

Участник
Сообщения
38
Реакции
0
Ответ: Автоматизация QuarkXPress

Страуструп это конечно хорошо, но как фундаментальный справочник по абстрактному C++, без привязки к компилятору и платформе.
Чтоб управлять внешним приложением в Windows "чистого" C++ будет недостаточно. Нужно копать в сторону Win API функций, начиная с таких как FindWindow, PostMessage, SendMessage.
 

drwhite

Топикстартер
10 лет на форуме
Сообщения
27
Реакции
0
Ответ: Автоматизация QuarkXPress

Да поможет нам Интернет и МИРЭА, аминь =)
 
Статус
Закрыто для дальнейших ответов.