Metrolog / marks

Развитие проекта прекращено.
GNU General Public License v3.0
3 stars 1 forks source link

Сделать вывод ударных клейм и плашек в файлах по одной штуке. Иерархия папок #69

Closed utalua closed 6 years ago

utalua commented 6 years ago

Требуемое поведение

Было бы очень удобно, если после запуска сборки создавалась отдельная папка (название папки берется дата/время сборки) в папке release. Внутри этой новой папки, отдельно папки для стальных клейм и плашек (наименование из размера клейма). В этих папках каждое клеймо и плашка отдельным файлом PLT (наименование файла - номер шифра калибровщика).

Пример: 10 стальных 6мм клейм с шифром поверителя от 5 до 15 5 плашек с шифром поверителя от 3, 6, 8, 10, 105 100 каучуковых клейм.

1) Наименование папок могу сам прописывать, там же где прописываются клейма. 2) Если сразу не возможно так сделать, то могу для разных видов клейм делать разные сборки. Главное что бы в папке release создавалась еще одна папка.

Текущее поведение

В данный момент после сборки всё собирается в один файл в папке release. А дальше либо в ручную разбиваю клейма по размерам в короле, либо для каждого вида клейм делаю новые сборки.

sergey-s-betke commented 6 years ago

Для генерации нескольких файлов одним скриптом следует посмотреть параметры:

gs -dSAFER -dBATCH -dNOPAUSE -r150 -sDEVICE=pnggray -dTextAlphaBits=4 -sOutputFile=doc-%02d.png doc.pdf

Предположу, что в данном случае каждая страница будет выведена в файлы doc-01.png, doc-02.png, doc-03.png и так далее.

sergey-s-betke commented 6 years ago

И смотреть следует в сторону eps2write. Формат векторный, но поддерживаемый многими продуктами.

sergey-s-betke commented 6 years ago

Генерация множества файлов непосредственно из одного postscript файла не будет гибкой и переносимой. Именами файлов управлять можем крайне ограниченно, да и решение будет завязано исключительно на ghostscript. Кроме того, есть проблемы с вычислением зависимостей в make файлах.

Посему предложение такое:

В итоге у нас появится ещё один тип файлов для обработки заказов: makefile. Один файл на заказ. Но один файл будет порождать множество файлов результатов.

sergey-s-betke commented 6 years ago

eps2write применим. Хотя и префикс убийственный просто (ProcSet /PDF). Стоит поискать возможность отключения вывода этого префикса...

sergey-s-betke commented 6 years ago

Можно управлять выводом в разные файлы и из postscript:

Note, some devices (e.g. pdfwrite, ps2write, ...) only write the output file upon exit, but changing the OutputFile device parameter will cause these devices to emit the pages received up to that point and then open the new file name given by OutputFile. For example, in order to create two PDF files from a single invocation of ghostscript the following can be used:

gs -sDEVICE=pdfwrite -o tiger.pdf examples/tiger.eps -c "<< /OutputFile (colorcir.pdf) >> setpagedevice" -f examples/colorcir.ps 
sergey-s-betke commented 6 years ago

Однако. Требуется реализация полноценного цикла for в makefile. Такой возможности нет в GMSL.

Но можно задействовать guile - реализацию языка Scheme в GNU Make.

Возможно, ради скорости стоит отказаться от PowerShell в сторону guile... http://www.gnu.org/software/make/manual/html_node/Guile-Integration

http://www.gnu.org/software/guile/manual/guile.pdf

sergey-s-betke commented 6 years ago

http://www.gnu.org/software/guile/manual/guile.pdf

sergey-s-betke commented 6 years ago

https://bitbucket.org/bjoli/guile-for-loops/src/45ecce6c2b2cc9f5124aea199207dd57393840fe/tests/tests.scm?at=default&fileviewer=file-view-default

sergey-s-betke commented 6 years ago

https://koketteriet.se/software/guile-for-loops/docs.html#org47969b4

sergey-s-betke commented 6 years ago

https://web-artanis.com/scheme.html

sergey-s-betke commented 6 years ago

Guile не поддерживается версией make на Circle CI. Видимо, придётся отключить сборку на Circle CI. Да и на Ubuntu на Appveyor пока так же.

sergey-s-betke commented 6 years ago

Возникла проблема с кодировкой передаваемых строковых параметров из Makefile в PostScript (#75). И пока внятного и удобного решения не вижу...

sergey-s-betke commented 6 years ago

Необходимо параметрами установить авторазмеры выводимых изображений по размерам клейм.

sergey-s-betke commented 6 years ago

Рассмотреть стоит ps2epsi.ps вместо epswrite для генерации файлов с меньшей преамбулой. Стоит попробовать.

sergey-s-betke commented 6 years ago

https://stackoverflow.com/questions/41139386/ghostscript-how-to-auto-crop-stdin-to-bounding-box-and-write-to-pdf/41180086

sergey-s-betke commented 6 years ago

Стоит посмотреть и в сторону svgwrite.

sergey-s-betke commented 6 years ago

Завершу решение этой задачи на примере #86. На .pcx, скажем.

sergey-s-betke commented 6 years ago

Генерация идёт успешно на примере .pcx и .tif. Эту задачу закрываю. Планирую включить в версии 2.3.

sergey-s-betke commented 6 years ago

Необходимо:

sergey-s-betke commented 6 years ago
sergey-s-betke commented 6 years ago

Остались проблема с тестами:

sergey-s-betke commented 6 years ago
sergey-s-betke commented 6 years ago