#!/bin/bash# скрипт для преобразования PDF с 2 страницами на страницу# в чёрно-белый DjVu без полей # использование: имяскрипта документ.pdf # преобразовать в двух-цветные растры для каждой страницыpdftoppm -r 600 -mono $1 rawpage # обработать все страницыfor p in `ls -1 rawpage-*.pbm`; do # вырезать левую половину страницы: -gravity West -crop 50%x100% +repage # отрезать все поля: -trim +repage # добавить узкое белое поле: -bordercolor white -border 10 convert $p \ -gravity West -crop 50%x100% +repage \ -trim +repage \ -bordercolor white -border 10 left.pbm # то же самое, но вырезать правую половину страницы convert $p \ -gravity East -crop 50%x100% +repage \ -trim +repage \ -bordercolor white -border 10 right.pbm # сделать чёрно-белый DjVu (для цветного использовать c44 вместо cjb2) cjb2 -dpi 600 left.pbm "$p-a.djvu" cjb2 -dpi 600 right.pbm "$p-b.djvu" done # собрать в единый DjVudjvm -c "$1.djvu" rawpage-*.djvu
Автоматическая обрезка полей довольно хорошо реализована в команде
-trim
ImageMagick, но можно задать параметры обрезки и вручную (приходилось).
Например, чтобы принудительно обрезать по 3% с каждой стороны, в опции convert
можно вставить -shave 3%x3% +repage
.Если хочется не DjVu, а именно PDF, то собрать из изображений PDF можно так (о создании PDF с помощью IM см. здесь):
convert -define pdf:use-trimbox=true `ls -v *.ppm` -density разрешение_в_dpi книжка.pdfЕсли страниц много, такой способ будет очень медленным (и прожорливым), лучше конвертировать каждую отдельно (можно тем же
convert
, если качество устраивает, можно специально для этих целей предназначенным sam2p
), а потом объединять страницы вместе. Для объединения PDF-страниц в PDF-документ я использую pdftk
: $ pdftk *.pdf cat output книжка.pdf
Преимущества этого способа: можно разрезать и обрезать страницы именно так, как надо. Недостатки: возможность поиска по тексту безвозвратно теряется, размер файла обычно увеличивается, добиться нормальной растеризации шрифта трудно, ну и способ совсем не автоматический.
3. Изменение границ страницы в PDFedit
Наконец, есть ещё способ. Совмещающий и возможность указать вручную что именно следует отрезать, и сохраняющий PDF в почти исходном виде. Есть редактор для PDF-файлов — PDFedit. Однако хотя эта программа и с графическим интерфейсом, методы всё те же.
Порядок действий:
- открываем копию PDF-файла в PDFedit и выбираем страницу, целиком заполненную текстом, чтобы было видно его границы;
- засекаем примерные численные координаты углов прямоугольника обрезки;
- в
меню «Страница» выбираем «Изменить метрики страницы»; далее вводим
новые параметры страницы цифрами, жмём «Изменить», чтобы проверить
результат (такой вот GUI; что от чего отмеряется придётся познать на
опыте), подобрав параметры страницы применяем обрезку ко всем с 1 по
последнюю;
- сохраняем результат.
Преимущества: способ быстрый (даже если в документе несколько сотен страниц), возможность поиска по тексту сохраняется (да и вообще всё сохраняется), можно как угодно отрезать заметки на полях, номера страниц и колонтитулы. Недостатки: способ требует ручного подбора параметров, нельзя вырезать две страницы из одной (может можно, если дублировать страницы?), сам редактор PDFedit далеко не прост и полон сюрпризов.
Источник: http://sovety.blogspot.com/2010/01/3-ways-to-crop-pdf-margins.html