Как можно видеть, исходный файл достаточно ровно сверстан, поэтому логично было бы попробовать автоматизировать его нарезку.
Для начала нам потребуется утилита cpdf, взять ее можно тут: https://github.com/coherentgraphics/cpdf-binaries
Вырезка кусочка PDF по его координатам осуществляется командой:
cpdf -crop "Xнач Yнач Xкон Yкон" input.pdf -o output.pdf, где:
Xнач и Yнач - начальная точка квадрата выделения (левая-нижняя)
Xкон Yкон - смещение до конечной точки квадрата выделения (правой-верхней)
при этом счет координат ведется от нижнего-левого угла листа.
Эта команда составит нам пдфник, каждая страница которого будет вырезкой из страницы оригинального файла.
Разумеется я подсчитал смещения по оси X и настрогал пдфников такой очень ленивой строчкой:
for i in {0..3}; do let "x=(14+($i*144))" ; cpdf -crop "`echo $x` 29 134 134 " ~qiwichupa/Gotovaya_versia.pdf -o out_1_$i.pdf ; done;
В результате я получил 4 файла с картами с последней строки оригинала:
раз, два, три, четыре.
Тут лень взяла верх, и я повторил этот однострочник еще 4 раза, вручную поменяв стартовую координату Y, примерно так:
for i in {0..3}; do let "x=(14+($i*144))" ; cpdf -crop "`echo $x` 188 134 134 " ~qiwichupa/Gotovaya_versia.pdf -o out_2_$i.pdf ; done;
В итоге я получил 4*5=20 файлов, каждый из которых имел 1 карту на одной странице. Вагон ручной работы по нарезке избегнут! Дальше марафет.
Режу файлы на страницы, складывая их в отдельную папку:
for i in ./*.pdf; do cpdf -split $i -o ./pdf/$i-%%.pdf ; done;
Удаляю обрезки от первых двух и последней страниц:
rm ./pdf/*-0[12].pdf
rm ./pdf/*-30.pdf
Тут выяснилось что 100%-ный размер получившихся карточек маловат для конвертации в графику, поэтому пришлось увеличить его в 5 раз:
for i in ./pdf/*.pdf ; do cpdf -scale-page "5 5" $i -o $i.pdf; done ;
В результате получились такие прекрасные карточки. Осталось их сконвертировать в растр (png):
for i in ./pdf/*.pdf ; do convert $i -flatten -trim -sharpen 1x1.0 $i.png ; done ;
Вуаля - результат!
Комментариев нет:
Отправить комментарий