Имя: Пароль:
1C
1С v8
Добавить колонтитулы в многостраничные графические файлы
0 Baloven
 
15.11.14
04:54
Доброго дня
в общем столкнулся с несколькими проблемами решая задачу по пакетной печати графических файлов.
есть внешняя обработка которая формирует некий документ(-ы) ну допустим исковое заявление в суд - с этим все нормально, НО..
встала задача формирования списка приложений (приложения - это фактически отсканированные файлы как правило xlsx, docx, pdf, tif
в качестве унификации решено все файлы хранения сконвертировать из используемых оригинальных форматов в PDF (это просто решается с помощью утилит imegemagick) но следующий этап !!! нужно при отрабоке процедуры печати комплекта в печатываемые файлы приложений добавлять:
в верхний колонтитул фразу наподобии: "приложение №х к исковому заявлению в отношении должника Фамилия Имя Отчество" + символ переводки картеки + "Страница х из У" при этом колонтитул должен быть прижат к правому углу для нечетных страниц и к левому для четных (двухсторонняя печать)
ну и внизу нижний колонтитул: "копия верна: 15 ноября 2014 года представитель по доверенности ______________ Иванов И.И."
собственно вопрос: не могу толком найти информацию по применению ключей imegemagick для этой задачи - а в частности именно по работе с многостраничными файлами
1 Wobland
 
15.11.14
07:22
ответ: да
2 b_ru
 
15.11.14
08:11
Как вариант можно ваши картинки превратить в SVG, наложить все нужные колонтитулы текстом, а затем уже сконвертировать в PDF.
3 b_ru
 
15.11.14
08:15
А с imagemagick можно так:
http://www.imagemagick.org/Usage/text/

ну или эдак:
http://www.imagemagick.org/script/composite.php
4 Baloven
 
15.11.14
14:36
(3) то что так можно - именно потому на него и посмотрел (да и к слову говоря давно уже выдрал процедуры сканирования из документооборота и скорректировал под свои задачи) я смотрел мануалы - но там примеры работы с 1 картинкой ну или примеры для создания/редактирования 1 картинки - а я спрашиваю про редактирование по сути ряда картинок - конечно можно разбить tif или тот же pdf на страницы - их отредактировать скриптом (добавить те самые колонтитулы) и заново собрать - но что-то мне подсказывает что решение гораздо проще - ведь есть же экспорт конкретных страниц многостраничного файла в другой формат (указывается через квадратные скобки у источника) - вот и возник вопрос как на на кокретную страницу добавить колонтитул???
5 Baloven
 
17.11.14
12:05
в общем так и не могу совладать с редактированием PDF - пока что единственный рабочий вариант это разобрать PDF на страницы например так

convert e:\q.pdf e:\q.png - в результате получим кучу файликов q-0.pgn - q-(n-1).pgn

где (n-1) это число страниц -1 (по сути индекс страницы при этом первыя страницы имеет индекс 0!!!! кстати к странице можно обратится по индексу (и в том числе экспортировать именно ее или их вот так:

convert e:\q.pdf[1-7] e:\q.png

что конвертирует со второй по 8ю страницы
или так

convert e:\q.pdf[1-3,7,28] e:\q.png

что соответственно конвертирует 1-3 страницы и 7 и 28, при этом индексы естественно у нового файла будут сохранены

теперь грабли :) куда без них - в вышеприведенных примерах есть ГЛЮК поковырявшись в доках и погуглив и с ним разобрался по сути вышеприведенная строка (и любая выше) должны иметь ключ указывающий с каким разрешением сделать выходной файл - а то иначе очень разочаруетесь ну мне достаточно 200dpi - так что пример должен выглядеть примерно так:

convert -density 200 e:\q.pdf[1-3,7,28] e:\q.png

собрать обратно (перебрав их и отредактировав.... это чуть позже)

convert e:\q-*.png e:\q.pdf

сейчас буду ковырять само редактирование - чуть позже выложу строки
6 Baloven
 
17.11.14
12:06
(3) чуток в описании ошибся "[1-3,7,28]" естественно это номера 2-4 и страницы 8, 28
7 Baloven
 
17.11.14
12:08
+(6) совсем уже :) сорри не в (3) а в (5) ну и не 28 а 29.... и почему здесь нет функции редактирования сообщения
8 Baloven
 
18.11.14
08:53
собственно вот примерно что получилось:

convert -pointsize 24 label:"Страница 5 из 7" q-0.png -background none -gravity east -append out.png

это добавление наверху страницы (q-0.png - это файл со сканом страницы) нумератора справа (слева добавить нужно east поменять на west)

теперь формируем нижний колонтитул:

convert -pointsize 24 label:"18 ноября 2014 года" -pointsize 24 label:"Передставитель по доверенности_____________________ Иванов И.И." -pointsize 16 label:" " -gravity west подвал.png

Здесь мы поставили дату, ниже подписант, ниже добавлен строка с пробелом, потому как лично у меня попросту иначе принтер обрезает половину строки подписанта при печати

convert out.png подвал.png
-gravity Center -append finalPage-01.png

ну здесь объединение верхней части с частью подписанта...
тут мне пока что непонятен один момент: как это все написать одной строкой? потом как из-за того что везде разное выравнивание - получается их нельзя объединить? или как-то можно?
9 Baloven
 
18.11.14
08:55
+(8) размер шрифта (-pointsize 24) подбирал экспериментарным путем
10 Baloven
 
18.11.14
11:19
в общем никто так и не помог - победил сам...
замучался и запутался в скобках, не сразу понял что между ними должны быть ОБЯЗАТЕЛЬНО пробел!!!!

в общем вот одной строкой

convert ( ( -background none -pointsize 24 label:"Страница 1 из 7" -background none -pointsize 24 label:"Приложение №27" -gravity East -append ) test.tif[0] -gravity East -append ) ( -background none -pointsize 24 label:"18 ноября 2014 года" -pointsize 24 label:"Передставитель по доверенности_____________________ Иванов И.И." -pointsize 16 label:" " -gravity West -append ) -gravity Center -append -density 200 OUT-01.png

дабы не заморачиваться с перебором файлов (листов) разобранного tif-файла или PDF - я решил сразу обратиться к нужной странице и конвертировать именно ее. Так как у меня заранее изветстно количество страниц в файле (лежит в базе в отдельном поле описания файла) то сделать цикл для заполнения данной коммандной строки - проблем нету - кому интересно - смотрите форум и справку :)
ну и потом после заполнения всего этого добра и перебора по сути всех приложений - можно до кучи собрать все в единый PDF чтобы печатать можно было при необходимости единым файлом - только тут сразу оговорюсь что если у Вас как и у меня принтер с двухсторонней печатью - то незабудьте добавить по 1 пустой странице в конце файлов у которых количество листов нечетное...
на сим все - всем спасибо :)
11 Baloven
 
18.11.14
11:29
.... да +(10) много времени ушло на понятие и последовательность обработки скобок. на последнем этапе у меня в итоге получилась ситуация что у меня правильно формировался верхний колонтитул (прижатие его справа или слева) но нижний как ни крути был слева листа (отрабатывался в конце команды "-gravity West", но я не мог понять почему не отрабатывался "-gravity Center" пока чисто случайно не продублировал строку в середине.... вот этот кусок строки ""Приложение №27" -gravity East -append ) test.tif[0] -gravity East -append ) (" у меня был такой:
""Приложение №27" test.tif[0] -gravity East -append ) (" ну и скобочки не было второй в начале команды - на нее и дал ошибку - вот после этого все встало на места... нижний по центру верхний справа(слева) и у нижнего обе строки с прижатием к левому началу :)