Объединение 3х страниц в одну

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
  • Спасибо
Реакции: Vernigorodsk

zollinger

Участник
Сообщения
553
Реакции
168
Стесняюсь спросить - а вот PitStop прям принципиален? Скрипт не устроит?
Попробуйте, может, поможет.
Координаты размещения там настраиваются, кладет 1-2-3 страницы, в таком порядке, и повторяет.
Если страниц некратно 3, последние проигнорирует
1705168917964.png
1705168948894.png
 

Вложения

  • placePages.zip
    1.1 КБ · Просм.: 49

Vernigorodsk

Участник
Топикстартер
Сообщения
16
Реакции
1
Больше вообще ничего не нужно было :)
Повторю вопрос.

Т.е. есть потребность в автоматизации или это раз в год делается?

Эти параметры не меняются?
Не разовая. Это задача связанная с ежемесячным созданием печатного документа в формате А4 из 3-х документов А5., которые присылает заказчик. Периодичность - 2-3 раза в месяц. Кол-во файлов, которые нужно обработать - 25...30 в месяц. Кол-во страниц в файле от 1 тис. до 30 тыс. Суммарно нужно обработать порядка 100+ тыс. страниц. Поэтому нужна автоматизация. Ранее все делалось средствами PrintNet, это специализированная среда для создания печатных документов. Сейчас возможности использования PrintNet - нету, поэтому и ищу друге решение.подходы, с помощью которого можно решить задачу.

Параметры НЕ меняются. На входе всегда 3хА5, на выходе всегда 1хА4.
 

Vernigorodsk

Участник
Топикстартер
Сообщения
16
Реакции
1
Стесняюсь спросить - а вот PitStop прям принципиален? Скрипт не устроит?
Попробуйте, может, поможет.
Координаты размещения там настраиваются, кладет 1-2-3 страницы, в таком порядке, и повторяет.
Если страниц некратно 3, последние проигнорирует
Посмотреть вложение 163079Посмотреть вложение 163080
Нет, PitStop не принципиально вообще, нужно решение которое работает. Вопрос по питстопу возник именно потому что мне показалось это наиболее простым путем. Спасибо , сейчас посмотрю то, что вы прислали.
 

Vernigorodsk

Участник
Топикстартер
Сообщения
16
Реакции
1
Почему в QIP нельзя? Вы чтото недоговариваете
Я не утверждаю, что нельзя. Я не знаю как (и есть ли возможность) в QIP задать смешение страницам так, чтоб они накладывались друг на друга. Я понимаю как из 3хА5 сделать 1 документ, но это не будет А4, потому что QIP не позволяет в процессе совмещения указывать смешения для документов, которые необходимо совместить.

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

Vernigorodsk

Участник
Топикстартер
Сообщения
16
Реакции
1
Стесняюсь спросить - а вот PitStop прям принципиален? Скрипт не устроит?
Попробуйте, может, поможет.
Координаты размещения там настраиваются, кладет 1-2-3 страницы, в таком порядке, и повторяет.
Если страниц некратно 3, последние проигнорирует
Посмотреть вложение 163079Посмотреть вложение 163080
Все круто! Работает!!! Благодарю!!!
Я не программист в JS, поэтому осмелюсь спросить, где настраивается выравнивание второй и третьей страницы по высоте (сейчас они размещаются в центре листа, а мне бы выровнять по верхнему краю листа)?

Вот здесь указывается положение по Х: const posX = [[0, A5W], [40, 40 + A5W], [150, 150 + A5W]];

А по Y?
 

zollinger

Участник
Сообщения
553
Реакции
168
Все круто! Работает!!! Благодарю!!!
Я не программист в JS, поэтому осмелюсь спросить, где настраивается выравнивание второй и третьей страницы по высоте (сейчас они размещаются в центре листа, а мне бы выровнять по верхнему краю листа)?

Вот здесь указывается положение по Х: const posX = [[0, A5W], [40, 40 + A5W], [150, 150 + A5W]];

А по Y?
Вообще, высота исходного листа А5 = 210 мм, высота вашего листа, на который все собирается, тоже 210 мм, поэтому как не ставь, оно вдоль верхнего-нижнего краев выравнивается
aRect = [mm2pt_(posX[j][0]), mm2pt_(A4W), mm2pt_(posX[j][1]), mm2pt_(0)];
- второй параметр - позиция по Y нижнего левого угла, четвертый параметр - позиция по Y верхнего правого угла. Система координат - от верхнего левого угла, вниз вправо
 
  • Спасибо
Реакции: Vernigorodsk

zollinger

Участник
Сообщения
553
Реакции
168
Все круто! Работает!!! Благодарю!!!
Я не программист в JS, поэтому осмелюсь спросить, где настраивается выравнивание второй и третьей страницы по высоте (сейчас они размещаются в центре листа, а мне бы выровнять по верхнему краю листа)?

Вот здесь указывается положение по Х: const posX = [[0, A5W], [40, 40 + A5W], [150, 150 + A5W]];

А по Y?
ну и можно еще добавить одну строчку
JavaScript:
            f.buttonFitBounds = false;
            f.buttonScaleWhen = scaleWhen.never;
            f.buttonPosition = position.iconOnly;
            f.lineWidth = 0;
            f.buttonAlignY = 100;
вот это f.buttonAlignY = 100; будет прижимать картинку к верху, = 0 - к низу. По умолчанию стоит 50, т.е. по середине
 
  • Спасибо
Реакции: Vernigorodsk

zollinger

Участник
Сообщения
553
Реакции
168
ну и можно еще добавить одну строчку
JavaScript:
            f.buttonFitBounds = false;
            f.buttonScaleWhen = scaleWhen.never;
            f.buttonPosition = position.iconOnly;
            f.lineWidth = 0;
            f.buttonAlignY = 100;
вот это f.buttonAlignY = 100; будет прижимать картинку к верху, = 0 - к низу. По умолчанию стоит 50, т.е. по середине

ну и можно еще добавить одну строчку
JavaScript:
            f.buttonFitBounds = false;
            f.buttonScaleWhen = scaleWhen.never;
            f.buttonPosition = position.iconOnly;
            f.lineWidth = 0;
            f.buttonAlignY = 100;
вот это f.buttonAlignY = 100; будет прижимать картинку к верху, = 0 - к низу. По умолчанию стоит 50, т.е. по середине
Но тут возможны побочки, т.к. будет игнорировать прозрачные поля на страницах, работает, как с картинкой. Видите, поля пропали и текст прижался прямо к краю.
В общем, под конкретные нюансы нужно допиливать, конечно, но это как ни делай, все равно придется
1705211113077.png
1705211148711.png
 
  • Спасибо
Реакции: Vernigorodsk

Vernigorodsk

Участник
Топикстартер
Сообщения
16
Реакции
1
работае
ну и можно еще добавить одну строчку
JavaScript:
            f.buttonFitBounds = false;
            f.buttonScaleWhen = scaleWhen.never;
            f.buttonPosition = position.iconOnly;
            f.lineWidth = 0;
            f.buttonAlignY = 100;
вот это f.buttonAlignY = 100; будет прижимать картинку к верху, = 0 - к низу. По умолчанию стоит 50, т.е. по середине
Работает! С параметром f.buttonAlignY = 90 именно тот результат, что мне нужен.
 

Vernigorodsk

Участник
Топикстартер
Сообщения
16
Реакции
1
ну и можно еще добавить одну строчку
JavaScript:
            f.buttonFitBounds = false;
            f.buttonScaleWhen = scaleWhen.never;
            f.buttonPosition = position.iconOnly;
            f.lineWidth = 0;
            f.buttonAlignY = 100;
вот это f.buttonAlignY = 100; будет прижимать картинку к верху, = 0 - к низу. По умолчанию стоит 50, т.е. по середине
Еще позволю себе один вопрос - быстродействие.
Исходный файл на 2100 страниц обрабатывается 4мин 30 сек. Можно ли этот скрипт запускать из командной строки, а не из под Акробата,
 

Drawer

Участник
Сообщения
1 849
Реакции
817
  • Смешно
Реакции: zollinger

zollinger

Участник
Сообщения
553
Реакции
168
работае

Работает! С параметром f.buttonAlignY = 90 именно тот результат, что мне нужен.
А они у вас без фона, одна сквозь другую просвечивают? Я просто добавил фон к каждой исходной странице и все прям вааще про красоте стало.
Ну, если вам не нужно, чтобы они были прозрачными или если у вас уже нет фона.
1705253809326.png
 

zollinger

Участник
Сообщения
553
Реакции
168
Еще позволю себе один вопрос - быстродействие.
Исходный файл на 2100 страниц обрабатывается 4мин 30 сек. Можно ли этот скрипт запускать из командной строки, а не из под Акробата,
Ну, тут уже вопросы к Акробату и вашему компу.
Запускать из командной строки я способа не знаю.
Возможно, можно как-то прикрутить Action Wizard для массовой обработки, но мне лень.
Несложно все это на Питоне каком-нибудь переписать, вообще Акробат будет не нужен, но, опять же, мне лень
 

Drawer

Участник
Сообщения
1 849
Реакции
817

Vernigorodsk

Участник
Топикстартер
Сообщения
16
Реакции
1
<t
А они у вас без фона, одна сквозь другую просвечивают? Я просто добавил фон к каждой исходной странице и все прям вааще про красоте стало.
Ну, если вам не нужно, чтобы они были прозрачными или если у вас уже нет фона.
Посмотреть вложение 163087
Без фона, просвечиваются. И у меня достаточно широкие поля в исходных файлах. Именно поэтому есть возможность накладывать одну страницу на другую. В общем, все что я хотел - получилось. Благодарю.
 

zollinger

Участник
Сообщения
553
Реакции
168
<t

Без фона, просвечиваются. И у меня достаточно широкие поля в исходных файлах. Именно поэтому есть возможность накладывать одну страницу на другую. В общем, все что я хотел - получилось. Благодарю.
Мне удалось прикрутить скрипт к Action Wizard. Но - это если у вас Acrobat DC, будет работать в других версиях - я без понятия.
Скачайте архив, разархивируйте куда-нибудь, будет файл Place 3 pages.sequ.
Правая кнопка, Import Action, на все соглашаетесь
Дальше в Акробате открываете один из ваших исходных файлов, More Tools - Action Wizard - Place 3 pages. Добавляете нужные файлы, Start, ждете. Он их там пока обработает.
1705255923225.png

чтобы настроить свои значения, Manage Actions - Edit
1705255979544.png

И вот тут какой-то косяк. Кнопка Specify Settings может нажаться сразу, а может с 50-го раза. Но - нажмется когда-то, там и впишете ваши значения
1705256118412.png

вот вам и массовая автоматическая обработка
 

Вложения

  • Place 3 pages.zip
    1.6 КБ · Просм.: 31
  • Спасибо
Реакции: Vernigorodsk

zollinger

Участник
Сообщения
553
Реакции
168

zollinger

Участник
Сообщения
553
Реакции
168
Да, один нюанс. Имена функций (mm2pt_ в данном случае) в Action'е и в скрипте конфликтуют, так уж устроен акробат, глобальное пространство имен.
Поэтому или Action, или скрипт. Нужно файл скрипта удалить (или переименовать в .js_)
Ну или там еще пути есть, но они вам не особо нужны
 
  • Спасибо
Реакции: Vernigorodsk
Статус
Закрыто для дальнейших ответов.