/var/log/life.log
Блог программиста из солнечной Бурятии

pdf магия

В почте россии прогресс не стоит на месте и с запуском otpravka.pochta.ru взамидействие с ними становиться всё проще. Но тут неожиданно вылезла проблема: документы для печати либо по одному можно скачать или в архиве для всё партии форма 7 и форма 112 на одном бланке А4. А нужно было, чтобы ф7 печаталось на наклейках и по 4 штуки на одном листе.
Т.е. сначала нужно разделить каждый лист на 2 части, взять нужную половину, склеить по 2 на листе и затем результат опять склеить по 2 на листе. Локально ps2pdf отрабатывал как надо, а на сервере результат вылазил за границы листа, пришлост добавить -g5950x8420.
Получился такой однострочник.

1
2
3
4
5
6
unzip -p arc.zip F7_F112.pdf \
| gs -o %stdout -q -sDEVICE=pdfwrite -g4210x5950 -c "< </PageOffset [-421 0]>> setpagedevice" -f - \
| pdf2ps -dLanguageLevel=3 - - \
| psnup -q -2 -Pa5 -pa4 \
| psnup -q -2 -Pa4 -pa4 \
| ps2pdf  -g5950x8420 -dCompatibility=1.4 - print_A4.pdf

и для формы ф112

1
2
3
4
5
unzip -p arc.zip F7_F112.pdf \
| gs -o %stdout -sDEVICE=pdfwrite -q -g4210x5950 -c "< </PageOffset [0 0]>> setpagedevice" -f - \
| pdf2ps -dLanguageLevel=3 - - \
| psnup -q -2 -Pa5 -pa4 \
| ps2pdf  -g5950x8420 -dCompatibility=1.4 - print_A4.pdf