На основе ответа от Gilles и как найти, рассчитывает страница PDF, я записал
#!/bin/bash
pdforiginal=$1
pdfood=$pdforiginal.odd.pdf
pdfeven=$pdforiginal.even.pdf
pdfout=output_$1
margin=${2:-0}
scale=${3:-1}
pages=$(pdftk $pdforiginal dump_data | grep NumberOfPages | awk '{print $2}')
pagesize=$(pdfinfo $pdforiginal | grep "Page size" | awk '{print $5}')
margin=$(echo $pagesize/2-$margin | bc -l)
pdfjam -o $pdfood --trim "0cm 0cm ${margin}pt 0cm" --scale $scale $pdforiginal
pdfjam -o $pdfeven --trim "${margin}pt 0cm 0cm 0cm" --scale $scale $pdforiginal
pdftk O=$pdfood E=$pdfeven cat $(i=1; while [ $i -le $pages ]; do echo O$i E$i; i=$(($i+1)); done) output $pdfout
rm $pdfood $pdfeven
Таким образом, я могу работать
./split.sh my.pdf 50 1.2
где 50 для корректируют поле и 1.2 для масштаба.
Вы не указали, используете ли Вы устаревшее devilspie
или более новое devilspie2
. В любом случае, насколько я могу сказать из их руководств, ни у какого из них нет доступа к информации, которую Вы хотите.
Devilspie
утилита соответствия окна, она взаимодействует с X-сервером. Переключатели командной строки, которые Вы даете при запуске программы, не передаются X-серверу, так как они только влияют на способ, которым программа запускается и является внутренними коммутаторами той конкретной части программного обеспечения.
Самое близкое, кажется, get_application_name()
звоните, но я сомневаюсь, что это включало бы параметры командной строки. Вы смогли делать то, что Вам нужно использование xdotool
(см. здесь), и парсинг вывода ps aux
или pgrep -al $APP_NAME
.
Ссылки: