djvuファイルには、djvuページに2つの書籍ページがあります。各djvuページに1ページがあるように分割したいと思います。例えば、
いくつかのソフトウェア(好ましくはコマンドラインユーティリティ)でこれを行うことができるかどうか疑問に思います。ありがとうございます!
PS:これ1つの文書テストに使用できます。
答え1
以下はテストされていませんが、原則として機能します(時間があればテストします)。
たとえば、次のようにdjvuファイルをjpgに変換できます。
#!/bin/sh
# djvu -> jpgs converter
i=1
# number of pages (392)
while [ $i -ne 392 ]
do
ddjvu -page=$i -format=pnm 1.djvu $i.pnm
pnmtojpeg $i.pnm > $i.jpg
rm -f $i.pnm
echo "page $i done"
i=`expr $i + 1`
done
(からhttp://caree.livejournal.com/74639.html)
その後利用できますスキャンテーラーページを分割し、新しい出力(tifファイルで構成)を生成します。
3番目のステップは申請することです。djvbindそのフォルダに移動すると、必要なdjvuファイルを取得できます。
答え2
ここに私の完全な作業スクリプトがあります。djvulibre-bin
ライブラリddjvu
(tiff形式にデコードするには)、(cjb2
tiffをdjvuに直接変換する方法がわからないため)、djvm
(djvuファイルにページを挿入/削除するには)ツールとimagemagick
ライブラリconvert
(ページを分割してパスワードに変換するには)pbmファイル形式)ツール。すべての図書館が通過できますapt-get
。
計画:
file.djvu --./ddjvu--> ダブルフォールディング tiff --./convert--> シングルページ tiff --./convert--> pbm --./djvm--> out.djvu
例:djvusplit 3 10 file.djvu
これを意味しますsplit pages from 3 to 10
。
完全なコード:
#!/bin/bash
echo Usage: djvusplit PAGEFROM PAGETO FILE.DJVU
#make temp folder
mkdir ./tmp
cp "$3" ./tmp/
cd tmp
for i in $(seq -w $2 -1 $1) # Descending
do
ddjvu -format=tiff -page=$i "$3" t$i.tiff
convert -crop 2x1@ t$i.tiff t$i-%d.tiff
convert t$i-0.tiff t$i-0.pbm
convert t$i-1.tiff t$i-1.pbm
cjb2 t$i-0.pbm t$i-0.djvu
cjb2 t$i-1.pbm t$i-1.djvu
djvm -i t$i-0.djvu t$i-1.djvu 2
djvm -d $3 $i
djvm -i $3 t$i-0.djvu $i
rm ./t*
done
# total clean
mv $3 ../out.djvu
cd ..
rm -r ./tmp
残念ながら…
- 生成された多くのtiff/pbm/djvuファイルのため、非常に遅く実行されます。
- ページを分割すると、すべてのOCRテキストが失われます。
私はこのスクリプトとは異なるいくつかのスクリプトを使用して電子ライブラリを維持します。彼らはそれを見つけました。ここGitHubから。
答え3
PDFやJPEGなどの他の一般的な形式と比較して、DjVuファイルを直接操作できるツールはほとんどありません。画像操作プログラムの場合、追加の障害物があります。これらのプログラムのほとんどは一度に1つの画像でしか機能できませんが、DjVuファイルには複数のページが含まれています。
一つの可能性はPDFを通して見ることです。ddjvu
フォローフリーランサーDJ、PDFun2up
フィルタとpdf2djvu:
ddjvu -format=pdf 2up.djvu 2up.pdf
un2up <2up.pdf | pdf2djvu /dev/stdin >1up.djvu
私からインスピレーションを得てdjvuのためのun2upを一緒に編むこともできます。PDFバージョン使用Python-djvulibre。 APIがどれほど難しいかを確認していません。