LINUX.ORG.RU

Переставить страницы в PDF 1,24,2,23,3,22,...

 ,


1

3

Все доброго времени суток.

Сейча столкнулся с немного неожиданной для меня задачей. Нужно напечатать на обычном принтере и сшить книгу. Сшиваться будет тетрадями по 24 страницы. Меня попросили выдать PDF, в котором страницы переставлены в «правильном» порядке, т.к. 1,24,2,23,3,22,...

Кто-то сталкивался с таким? Если да, то каким инструментом решить задачу?

★★★★★

С помощью адоб ридера(например) это можно сделать без переделок документа, только придётся печатать каждую тетрадь отдельно. Вероятно немало других инструментов умеют это тоже.

Elyas ★★★★★
()

толи ps2ps толи pstops

cvv ★★★★★
()

Посмотри на qpdf, у него есть опция для выбора страниц:

qpdf infile.pdf --pages infile.pdf [page-range] -- outfile.pdf

The page range is a set of numbers separated by commas, ranges of numbers separated dashes, or combinations of those. The character “z” represents the last page. Pages can appear in any order. Ranges can appear with a high number followed by a low number, which causes the pages to appear in reverse. Repeating a number will cause an error, but you can use the workaround discussed above should you really want to include the same page twice.

Ещё Scribus может. А вообще, в диалоге печати можно же выбирать страницы и писать их номера как в page-range, зачем менять сам документ?

anonymous
()
Ответ на: комментарий от nvl

Забыл отметить деталь: печатать нужно таким образом 660 страниц. Т.е. после первой тетради на 24 страницы пойдет вторая и т.д.

aquadon ★★★★★
() автор топика

можно взять тот же poppler. Сначала с помощью pdfseparate расфигачиваешь свой файл на страницы, а потом с помощью pdfunite объединяешь их в «правильном» порядке.

demidrol ★★★★★
()
Ответ на: комментарий от demidrol

во, нашел в закромах

#!/bin/bash

blank() {
    test -f $1 || ln -sf blank.pdf $1
}

rm -rf out && mkdir -p out

for j in `seq 0 32 302`; do
    for i in `seq 32`; do
        pn="$((i+j)).pdf"
        blank $pn
    done
done

for j in `seq 0 32 302`; do
    rm -rf b && mkdir -p b
    for i in `seq 0 2 15`; do
        p1="$((32+j-i)).pdf"
        p2="$((1+j+i)).pdf"
        out="b/$((i+1)).pdf"
        cmd="pdfjam $p1 $p2 --nup 2x1 --landscape --outfile $out"
        echo $cmd && eval $cmd
    done
    for i in `seq 1 2 15`; do
        p1="$((32+j-i)).pdf"
        p2="$((1+j+i)).pdf"
        out="b/$((i+1)).pdf"
        cmd="pdfjam $p2 $p1 --nup 2x1 --landscape --outfile $out"
        echo $cmd && eval $cmd
    done

    flist="$(seq 16 | sed 's/\(.*\)/b\/\1.pdf/')"
    cmd="pdfunite $flist out/$((j/32+1)).pdf"
    echo $cmd && eval $cmd
done

rm -rf b

Это для тетрадок на 32 страницы + в конец файла добавляются «пустые» страницы для того, чтобы результирующее количество тетрадок было целым.

demidrol ★★★★★
()

сделать ps с нужным для брошурования может psbook, перегнать из/в ps - pdftops/pstopdf

sahib0tmp
()
Ответ на: комментарий от demidrol

Дружище, я в sec не секу вообще, да и голова кругом идет от недосыпа. Подскажи, пожалуйста, что подправить для моего случая (24 страницы)?

aquadon ★★★★★
() автор топика
Ответ на: комментарий от aquadon

для тебя можно сделать так:

1.

pdfseparate <твой_файл>.pdf p_%03.pdf

Создаст в текущей директории файлы p_001.pdf, p_002.pdf, ..., p_600.pdf...

2. Разбиваешь их на группы по 24 файла с правильным порядком следования:

npages=$(for i in $(seq 1 12); do echo -n  "$((i)) $((25-i)) "; done)

3. Генеришь имена файлов для объединения

fnames=$(for i in $(echo $npages); do printf "p_%03i.pdf\n" $i ; done)

4. (костыль, но что поделать) Создаешь команду для генерирования файла

cmd="pdfunite $fnames page_01.pdf"
eval $cmd

Добавить цикл по всем тетрадкам — разберись уж сам.

demidrol ★★★★★
()
Ответ на: комментарий от anonymous

Спасибо, пощупаю. На вид штука отличная.

aquadon ★★★★★
() автор топика

psbook умеет переставлять страницы так, чтобы получилась книга. Там как-то можно задавать число страниц в тетрадях, но как я не помню.

DarthVadimius ★★★★
()

Всем спасибо за советы, в итоге задача была решена при помощи виртуального принтера Boomaga.

aquadon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.