Closed utalua closed 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 и так далее.
И смотреть следует в сторону eps2write
. Формат векторный, но поддерживаемый многими продуктами.
Генерация множества файлов непосредственно из одного postscript файла не будет гибкой и переносимой. Именами файлов управлять можем крайне ограниченно, да и решение будет завязано исключительно на ghostscript. Кроме того, есть проблемы с вычислением зависимостей в make файлах.
Посему предложение такое:
В итоге у нас появится ещё один тип файлов для обработки заказов: makefile. Один файл на заказ. Но один файл будет порождать множество файлов результатов.
eps2write
применим. Хотя и префикс убийственный просто (ProcSet /PDF
). Стоит поискать возможность отключения вывода этого префикса...
Можно управлять выводом в разные файлы и из 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
Однако. Требуется реализация полноценного цикла for
в makefile. Такой возможности нет в GMSL.
Но можно задействовать guile
- реализацию языка Scheme в GNU Make.
Возможно, ради скорости стоит отказаться от PowerShell в сторону guile... http://www.gnu.org/software/make/manual/html_node/Guile-Integration
Guile не поддерживается версией make на Circle CI. Видимо, придётся отключить сборку на Circle CI. Да и на Ubuntu на Appveyor пока так же.
Возникла проблема с кодировкой передаваемых строковых параметров из Makefile в PostScript (#75). И пока внятного и удобного решения не вижу...
Необходимо параметрами установить авторазмеры выводимых изображений по размерам клейм.
Рассмотреть стоит ps2epsi.ps
вместо epswrite
для генерации файлов с меньшей преамбулой. Стоит попробовать.
Стоит посмотреть и в сторону svgwrite
.
Завершу решение этой задачи на примере #86. На .pcx, скажем.
Генерация идёт успешно на примере .pcx и .tif. Эту задачу закрываю. Планирую включить в версии 2.3.
Необходимо:
Остались проблема с тестами:
[x] лишние зависимости:
obj/mf/test_SP_2018_c/build_multifile_order.mk: tests/mf/test_SP_2018_c.mk tests/mf/test_SP_2018_r.mk tests/mf/test_SP_2018_v.mk tests/mf/test_SP_2018_c.mk | $(TARGETDIR)
Требуемое поведение
Было бы очень удобно, если после запуска сборки создавалась отдельная папка (название папки берется дата/время сборки) в папке release. Внутри этой новой папки, отдельно папки для стальных клейм и плашек (наименование из размера клейма). В этих папках каждое клеймо и плашка отдельным файлом PLT (наименование файла - номер шифра калибровщика).
Пример: 10 стальных 6мм клейм с шифром поверителя от 5 до 15 5 плашек с шифром поверителя от 3, 6, 8, 10, 105 100 каучуковых клейм.
1) Наименование папок могу сам прописывать, там же где прописываются клейма. 2) Если сразу не возможно так сделать, то могу для разных видов клейм делать разные сборки. Главное что бы в папке release создавалась еще одна папка.
Текущее поведение
В данный момент после сборки всё собирается в один файл в папке release. А дальше либо в ручную разбиваю клейма по размерам в короле, либо для каждого вида клейм делаю новые сборки.