Автор Тема: 2 плагина (скрипта) для Scribus. Расстановка меток реза карт.  (Прочитано 11286 раз)

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

Оффлайн 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". При запуске загружает их, если сможет. В противном случае удаляет конфиг и использует настройки по умолчанию. Этот файл можно удалять без проблем.
« Последнее редактирование: 11 Март 2022, 16:35:43 »
     
    Поблагодарившие: wil_low, wait, pAnAp, capsmolet, Nadinochka, DeniZka

    Оффлайн capsmolet

    Я написал простенький скрипт установки меток реза карт. Метки реза рисуются на всех углах всех блоков.
    Отлично, спасибо, а то я уж сам собирался чего-нибудь написать, но в Питоне не силен, хотя сейчас все языки практически одинаковые, а тут ты.
    « Последнее редактирование: 09 Май 2019, 15:20:21 »
       

      Оффлайн tikitavy

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

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

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

        Оффлайн wil_low

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

        И - неужели в том же VBS для Scribus нет интерфейса для диалоговых окон? О.о
        У Scribus python, а не VBS, и API для диалоговых окон есть.
           

          Оффлайн tikitavy

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

          API для диалоговых окон есть
          Да, без него было бы странно :).

          Оффлайн tikitavy

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

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

          Оффлайн capsmolet

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

          Оффлайн tikitavy

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

          Оффлайн tikitavy

          Смотрите - всё понятно с надписями?
          Всё понятно.

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

          Оффлайн acselerator

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

            Оффлайн tikitavy

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

            Оффлайн acselerator

            Тогда давайте список желаемых цветов в hex. Я их загоню в список.
            Мне кажется, лучше сделать поле для ввода хекса. И тогда каждый сможет ввести нужный ему цвет
               

              Оффлайн tikitavy

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

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

              Оффлайн tikitavy

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

              Оффлайн capsmolet

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

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

              Оффлайн capsmolet

              Нет, просто в фигурных скобка перечисляются ключи и значения.
              так 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 => значение].

              будет выбор цвета линий. Белый на темном точно видно будет. А если карты вплотную , то толщина линий удвоится -  2 линии рядом будут.

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

              Оффлайн tikitavy

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

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

              Да, тогда толщина - лишнее.
              Так это если карты встык. А если нет? Тогда приходит тот самый пример:
              а метки серые (0,25), практически не видны были, сделал толщину 0,5 и стало нормально.

              Оффлайн capsmolet

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

              Оффлайн capsmolet

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

              Оффлайн tikitavy

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

              Глюки - цена свободного ПО
              Увы, да. Но и у "несвободного" ПО их хватает.

              Ну и печалька - новый скрипт вешает намертво скрибус 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, 07:32:17
              Linux для пользователя опоздал лет на 20-25, и естественно пытаются наверстать.
              Что касается Windows-Linux-MacOS, то "холивары" излишне, когда начинаешь смотреть на это всё с учётом "спонсоров". Открытое ПО в глобальном масштабе нужно сан, оракл, новел и кто там ещё жив? Всем "железячникам". Именно они этот сектор поддерживают деньгами, специалистами и патентами - потому что их бизнес от этого зависит. Потому на пользователей они НЕ ориентированы. Все работы и заботы о пользователях идут, энтузиасты трудятся, делают, всякие убунты очень даже вполне как ОС для пользователя (если работают). Но это несравнимо с отточенной моделью в Windows 10 (сейчас, раньше microsoft тоже пользователей не баловали, но баловали разработчиков и кормили этим рынок проприетарного-ПО, который уже и заботился о пользователях тонной программ и утилит, ну и игр, конечно же), и несравнимо с армией пользователей MacOS.

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