2 плагина (скрипта) для Scribus. Расстановка меток реза карт.

Автор xonix, 09 мая 2019, 16:08:56

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

xonix

Справка для тех кто не вкурсе.
Scribus - приложение для визуальной вёрстки документов.(википедия)
Неплохой бесплатный софт верстки. Прост в освоении - то что нужно  PnP-шников. Жаль что мало скриптов в комплекте. Лично мне понравился больше, чем nanDeck, который мне напоминает сломанную табуретку. Всётаки скрибус - это нормальная система верстки.

Скрибус имеет штатную возможность распределять карты по листу, но в отличии Adobe InDesign не имеет штатного скрипта для расстановки меток реза. Я написал простенькие скрипты. Метки реза рисуются на всех углах всех блоков.
Общая ссылка на оба скрипта https://yadi.sk/d/xSfsYa1SmeGdbA

Первая версия скрипта, работает в scribus 1.4.8
Извините, вам запрещён просмотр содержимого спойлеров.

При желании цвет и толщину линий можно изменить прямо в тексте скрипта, ищите строки :
LCol= 'Black' # цвет линии
LWidth=0.28   # тощина линии в pt

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

Выравнивание и расстановка блоков (карт) на листе:  "окна" --> "выравнивание и распределение".
Выделяете блоки и запускаете скрипт: 
для версии 1.4 "Сценарии" --> "Выполнить сценарий"
в версии 1.5  не всё меню переведено ,поэтому "scripter" --> "Выполнить сценарий"

Вторая версия скрипта, для Scribus 1.5.4 и выше

Извините, вам запрещён просмотр содержимого спойлеров.




Учтены пожелания PnP-шников. Умеет сохранять настройки в каталоге скрипта в файле "AddCropMarksMDU.conf". При запуске загружает их, если сможет. В противном случае удаляет конфиг и использует настройки по умолчанию. Этот файл можно удалять без проблем.

capsmolet

#1
Цитата: xonix от 09 мая 2019, 16:08:56Я написал простенький скрипт установки меток реза карт. Метки реза рисуются на всех углах всех блоков.
Отлично, спасибо, а то я уж сам собирался чего-нибудь написать, но в Питоне не силен, хотя сейчас все языки практически одинаковые, а тут ты.

tikitavy

Если возможен интерфейс параметров (хорошо если будут сохраняемые пресеты, или запоминать последний выбор), то вполне вариант сделать как у срипта в InDesign: там настраивается длина, толщина и смещение относительно края фрейма.

Цитата: xonix от 23 мая 2019, 06:37:00Как лучше всего расставлять метки реза?
1 вариант: снаружи углов карт 2 вариант: по краю угла карт Нужен ли отступ от угла карты? В нынешнем скрипте заложен отступ 1мм.
Это настраивается параметром "смещение". Если длина линии указана "5" и: смещение установлено в "-5" - то метки будут внутри фрейма, если смещение установлено в "5" - то будут снаружи. Если длина 5, а смещение 6 - вот он отступ в 1, и т.п.

Ещё желательно (а я бы сказал - важно), чтобы скрипт отрабатывал только выделенные фреймы, а не вообще все. И - неужели в том же VBS для Scribus нет интерфейса для диалоговых окон? О.о
  •  
    Пользователи, которые поблагодарили этот пост: xonix

wil_low

Метки реза нужно направлять внутрь, чтобы не терять их при нарезке. Я делаю 20 пикселей обычно, 3 мм нормально, я думаю.

Цитата: tikitavy от 23 мая 2019, 07:55:26И - неужели в том же VBS для Scribus нет интерфейса для диалоговых окон? О.о
У Scribus python, а не VBS, и API для диалоговых окон есть.
  •  

tikitavy

Цитата: wil_low от 23 мая 2019, 08:26:01Метки реза нужно направлять внутрь, чтобы не терять их при нарезке.
Да, снаружи метки срезаются при использовании резака (когда нарезка идёт частями). Мне нравятся кресты, но делать повторный проход срипта и увеличивать кол-во элементов в проекте считаю ненужным. В растре - кресты, в том же InDesign - уголки внутри.

Цитата: wil_low от 23 мая 2019, 08:26:01API для диалоговых окон есть
Да, без него было бы странно :).

tikitavy

Цитата: xonix от 23 мая 2019, 10:09:16не слышал о таком. Scribus - порождение *nix систем. Так что вряд ли есть плагин vbs для него. Питона более чем достаточно. Да и удобнее он.
VBS я взял из Вашего же сообщения ;) "многие вещи в разы проще делаются чем в vbs или posh". Я со scribus дела не имел, потому не знаю, что там есть. Это и не важно на самом деле.

Цитата: xonix от 23 мая 2019, 10:09:16пока планирую просто чекбокс поставить "внутри/снаружи" картинки. Как оно реально выйдет - дальше видно будет.
Это вариант, хотя смещение гарантируют вынос, который может быть полезен.

capsmolet

Цитата: xonix от 23 мая 2019, 10:09:16Хорошая идея! Посмотрю как там можно сохранять. В крайнем случае в тойже папке .INI файл буду делать или еще что...  Интерфейс возможен, планирую штатную питоновскую библиотеку Tkinter использовать. Скрибус содержит транслятор питона со штатными его библиотеками, только добавляет свою библиотеку. Питон отдельно устанавливать не нужно.
Не заморачивайся, параметров не так много, я обычно делаю простой текстовый файл и в него сохраняю параметры через точку с запятой (двоеточие), затем считываю, разделяю (что-то вроде split), либо в массив, либо в переменные и дальше работаю как обычно.

tikitavy

Цитата: xonix от 23 мая 2019, 15:16:06Не понял что там за "вынос"
Линия реза может быть дальше от этого самого края карты с XY, а может быть ближе. Вот он и есть вынос :), смещение, offset. Я не знаю, что в Вашем скрипте, я лишь написал, что удобно в том же InDesign (3 параметра реализуют всё необходимое для настройки меток). Про скорость работы (где быстрее) - это вообще всё-равно, в InDesign отрабатвает весьма быстро, ждать не приходится.

tikitavy

Цитата: xonix от 27 мая 2019, 07:45:20Смотрите - всё понятно с надписями?
Всё понятно.

Цитата: xonix от 27 мая 2019, 07:45:20в принципе можно это сделать параметром в меню, хотя смысла особого нет
В InDesign этот параметр есть в настройках скрипта, но я даже не помню, менял ли его когда-нибудь от значения по умолчанию (0,25 пт).

acselerator

Было бы неплохо иметь возможность задать цвет для меток отличный от белого или черного. Я, например, часто использую magenta
  •  

tikitavy

Цитата: acselerator от 27 мая 2019, 11:29:17
Было бы неплохо иметь возможность задать цвет для меток отличный от белого или черного. Я, например, часто использую magenta
Да, поддерживаю. Когда надо задать другой цвет - приходится руками красить.

acselerator

Цитата: xonix от 27 мая 2019, 11:48:46Тогда давайте список желаемых цветов в hex. Я их загоню в список.
Мне кажется, лучше сделать поле для ввода хекса. И тогда каждый сможет ввести нужный ему цвет
  •  

tikitavy

Цитата: xonix от 27 мая 2019, 12:04:2999,99% случаев черного и белого достаточно.
Неее, великоват процент :). Бывает, что метки реза хорошо бы чуть припрятать - например при нестандартном размещении карт встык (когда метка реза одной карты может примыкать к боковой стороне другой). Ещё - карты БЕЗ срезания углов (не факт, что их будут срезать - например карты под ламинированные кармашки, в которых - сам видел - углы оставлены прямо с метками реза; ну и вообще может быть лень углы убирать - не тот проект, что бы на это время тратить). Ну и ещё - чисто эстетически (если кант оранжевый, то лично мне интересно сделать метки чуть тёмно-оранжевыми, "в стиль" фона, а не контрастными чёрными-белыми).

Было бы интересно ещё и параметр двухцветного штриха (с возможностью задать прозрачный цвет) + штриховка линии :) (получаем цветной пунктир).

tikitavy

Цитата: xonix от 27 мая 2019, 17:01:19Так что делаю то, что на менюшке в данный момент, + возможность выбора цвета линий.  Возможно(!) сделаю сохранение параметров.
Всё отлично :). Такой скрипт уже будет в плюс пользователям Scribus.

capsmolet

Цитата: xonix от 27 мая 2019, 12:04:29в питоне есть такая штука "словари" - набор разнородных данных. Одной командой конвертируется в строку и обратно. Останется добавить 2 команды записи и считывания текстового файла.
Наверное, что-нибудь типа union, enum, array, variable.  ;)

И я бы дал пользователю возможность задать и толщину линии. Почему? Потому что печатал не помню что, но фон был темный, а метки серые (0,25), практически не видны были, сделал толщину 0,5 и стало нормально.

capsmolet

Цитата: xonix от 28 мая 2019, 02:21:19Нет, просто в фигурных скобка перечисляются ключи и значения.
так conf = dict(length = 3, indent = 1, color = 'F0F0F0')  или так conf = {'Length' : 3, 'indent' : 1, 'color' : 'F0F0F0'}
Очень удобно и разумно.
Питон построен по принципу "Долой лишние буквы!", отсутствуют ключевые слова вроде: begin...end, {...} и пр.  Вместо этого используются отступы.

Действительно, удобно, хотя и в других языках есть что-то подобное. Сейчас, как я смотрю, разница в языках, в основном, в мелочах, например, в php тоже самое, как массив: $a = array(ключ1 => значение, ключ2 => значение) или короче $a = [ключ1 => значение, ключ2 => значение].

Цитата: xonix от 28 мая 2019, 02:21:19будет выбор цвета линий. Белый на темном точно видно будет. А если карты вплотную , то толщина линий удвоится -  2 линии рядом будут.

Да, тогда толщина - лишнее.

tikitavy

Цитата: xonix от 28 мая 2019, 02:21:19Вместо этого используются отступы.   
Вот это и не нравится в нём (у меня на работе пайтон+GTK используется для создания "коммерческого" ПО, и некоторые интересные фишки периодически рассказывают; отступы как часть синтаксиса - очень "на любителя", лично мне мешает читать текст программы, возможно из-за привычки к си-подобному). Про словари - аналогичные конструкции есть и в других языках, включая "скриптовые" (тот же PhP дремучих ещё версий, в java это вариации map - ключ-значение).

Цитата: capsmolet от 28 мая 2019, 07:54:32Сейчас, как я смотрю, разница в языках, в основном, в мелочах
Ну, есть различия, которые заставляют подстраиваться. Но вообще - не особо важно, на чём программировать.. в начале :). А потом выбора не будет, т.к. многие такие решения заточены под конкретные задачи, и выбора, на самом деле, нет (или он мал).

Цитата: capsmolet от 28 мая 2019, 07:54:32Да, тогда толщина - лишнее.
Так это если карты встык. А если нет? Тогда приходит тот самый пример:
Цитата: capsmolet от 27 мая 2019, 19:06:42а метки серые (0,25), практически не видны были, сделал толщину 0,5 и стало нормально.

capsmolet

Цитата: tikitavy от 28 мая 2019, 08:18:52Вот это и не нравится в нём (у меня на работе пайтон+GTK используется для создания "коммерческого" ПО, и некоторые интересные фишки периодически рассказывают; отступы как часть синтаксиса - очень "на любителя", лично мне мешает читать текст программы, возможно из-за привычки к си-подобному).
А я вообще не знал, что у Питона такой синтаксис, никогда с ним не сталкивался.  :o

capsmolet

Цитата: xonix от 29 мая 2019, 02:58:49Глюки - цена свободного ПО
Ну уж полноте, не начиная холивар, и в коммерческих дерьма не меньше. Linux для пользователя опоздал лет на 20-25, и естественно пытаются наверстать. Я помню, когда лет 20 назад я начал заниматься FreeBSD и Linux - это было жестко, для запуска Xorg ручками правишь файл, да еще не все драйвера подходят, и не ошибись в параметрах.  :)

tikitavy

#19
Цитата: xonix от 29 мая 2019, 02:58:49С содроганием жду импортозамещения windows на linux в бюджетных учреждениях.
Всё будет ок у бюджетников :). Простым пользователям вообще всё равно. Администраторы часть задач на nix и так крутят. Эта пугалка про отказ от windows уже несколько лет витает, но пока ничего интересного и кардинального не случилось (пока что в некритичных отраслях есть варианты).

Цитата: xonix от 29 мая 2019, 02:58:49Глюки - цена свободного ПО
Увы, да. Но и у "несвободного" ПО их хватает.

Цитата: xonix от 29 мая 2019, 02:58:49Ну и печалька - новый скрипт вешает намертво скрибус 1.5.4. на 1.4.8 вообще не работает.
В скрибусе нет нормальной отладки скриптов, поэтому отладка затруднена сильно. 
Проблема ещё может быть в версии python. Посмотрел в инете: Scribus 1.5, вроде бы, ориентирован на 2.7 пайтон, версия 3 не поддерживается (?). Т.е. при написании скриптов надо учитывать версию интерпретатора.

Небольшая книга про скрипты в Scribus, от 2018 года: https://opensource.com/sites/default/files/ebooks/pythonscriptingwithscribus.pdf

Post Merge: 29 мая 2019, 08:32:17

Цитата: capsmolet от 29 мая 2019, 08:23:37Linux для пользователя опоздал лет на 20-25, и естественно пытаются наверстать.
Что касается Windows-Linux-MacOS, то "холивары" излишне, когда начинаешь смотреть на это всё с учётом "спонсоров". Открытое ПО в глобальном масштабе нужно сан, оракл, новел и кто там ещё жив? Всем "железячникам". Именно они этот сектор поддерживают деньгами, специалистами и патентами - потому что их бизнес от этого зависит. Потому на пользователей они НЕ ориентированы. Все работы и заботы о пользователях идут, энтузиасты трудятся, делают, всякие убунты очень даже вполне как ОС для пользователя (если работают). Но это несравнимо с отточенной моделью в Windows 10 (сейчас, раньше microsoft тоже пользователей не баловали, но баловали разработчиков и кормили этим рынок проприетарного-ПО, который уже и заботился о пользователях тонной программ и утилит, ну и игр, конечно же), и несравнимо с армией пользователей MacOS.

Так что сугубо объективно - речь о "навёрстывании" Linux в этом направлении - не идёт. Просто люди работают. Где на оракл, где из энтузиазма. Что будет - то и будет. Microsoft пока что для пользователя - молодцы (учитывая переориентацию их ОС начиная как с 7, так и с 8 ).