4 мая 2011 г.

Работа c PDF, PS, DJVU

сшиваем несколько pdf файлов в один:


gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=1-2.pdf 1.pdf 2.pdf


или по маске:

gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=myebook.pdf *.pdf


следует учитывать то, что с маской *.pdf файлы будут считаны в том порядке, в каком выдаёт результаты команда


ls -l *.pdf



разбираем pdf файл на составляющие: текст и картинки.

pdf2html filename.pdf



или

pdftohtml filename.pdf


(зависит от дистрибутива)

текст будет конвертирован в HTML файл и картинки будут сохранены в текущем директории
если pdf файл состоит только из картинок, то картинки будутавтоматически пронумерованы

вращаем кучу сосканированных страничек автоматически, с помощью скрипта:

это нужно на случай, если сканнер, который может автоматом заглатывать странички, не может их программно переворачивать.

скрипт jpegsrotate.sh


#!/bin/bash
#
# jpegsrotate
#

if [ -z `which jpegtran` ]; then
usage
echo "Error: jpegtran is needed"
echo
exit 1
fi

shopt -s extglob

DEFMASK="*.jpg"
DEFEVENMASK="*[02468].jpg"
DEFODDMASK="*[13579].jpg"
DEFDEG=270

function usage() {
echo
echo "usage:"
echo "$0"
echo " rotates files with the mask $DEFMASK by $DEFDEG degrees clockwise"
echo "$0 --even"
echo " rotates even files with the mask $DEFEVENMASK by 180 degrees"
echo "$0 --odd"
echo " rotates odd files with the mask $DEFODDMASK by 180 degrees"
echo "$0 --params \"REGEXP\" (90|180|270)"
echo " rotates files with the mask REGEXP by the given aspect ratio clockwise"
echo
}

if [ "$1" == "--even" ]; then
MASK=$DEFEVENMASK
DEG=180
elif [ "$1" == "--odd" ]; then
MASK=$DEFODDMASK
DEG=180
elif [ "$1" == "--params" ]; then
if [ -n "$2" -a -n "$3" ]; then
MASK=$2
DEG=$3
else
usage
exit 1
fi
elif [ -n "$1" ]; then
usage
exit 1
else
MASK=$DEFMASK
DEG=$DEFDEG
fi

for i in $MASK; do
if [ ! -e $i ]; then
usage
echo "Error: current directory must contain files with the mask $MASK"
echo
exit 1
fi
echo "$i"
jpegtran -rotate $DEG $i > $i.rotated
mv $i.rotated $i
done




скрипт может вращать только на 90, 180 или 270 градусов по часовой стрелке

источник скрипта: http://www.howtoforge.com/creating_djvu_documents_on_linux

Комментариев нет:

Отправить комментарий