пятница, 15 октября 2010 г.

Режем PDF-ку с отсканированной книжкой (переплёт посередине)

Мелочь, а сделать сие действие быстро и удобно не выходит. ScanKromastor под винду я не осилил, интерфейс хуже некуда.

На пределах ЛОРа найдено решение (аффтару somestuff респект):

num=0 && convert SOURCE.pdf page_%d.jpg && for i in page*.jpg ; do convert -crop 50%x0 page_$num.jpg $(printf crop_page_"%0.4d" $num).jpg && let "num += 1" ; done && rm ./page* && convert ./crop_page_*.jpg out.pdf && rm ./crop_page_*.jpg 

Из пакетов, делающих всю работу, нужен, кажется, только imagemagick.
Набор команд разбирает скормленную ей pdf-ку (думаю, можно и tiff и djvu спокойно скормить) на кучу jpeg файлов (правильным образом нарезая), после чего слепляет снова всё в один pdf файл (можно сменить на tiff или по вкусу).

Данный скрипт рассчитан на документы, расположенные горизонтально.
Если же препарируемый распологается вертикально, можно поступить двумя путями:
1) перевернуть документ в нужную сторону и не ломать голову. для этого использовал первое, что пришло в голову (не заглядывая в man), используя тот же набор софта:
convert -rotate 90 source.pdf destination.pdf
Тем самым повернул документ на 90 градусов по часовой стрелке.

2) Подравить параметр "обрезки".
Вместо crop 50%x0 я поставил crop 0x50%, тем самым обрезав половину не слева, а сверху.

Если, например, переплёт смещён куда-то в сторону, то можно играться параметром 50%. В одной книге я поставил 53%, тем самым левая половина полученного документа была чуть больше, чем правая.

Скорость работы - почти мгновенная.

P.S. Есть ещё альтернативная софтина unpaper, тоже консольная.
Но сходу в неё не вкурил, а под руку попался данный скрипт, который и был применён для поставленной задачи.

P.S.S. замечено падение качества на некоторых PDF-ках. В мане написано, что по умолчанию качество ставится 72 dpi.
Чтобы этого избежать используем ключи -density 250 -quality 100% -compress lossless, чтобы установить DPI в 250 и отключить потери по JPEG.