从 djvu 文件中提取多个页面

从 djvu 文件中提取多个页面

我有一个多页的 djvu 文件。我想知道如何提取仅包含多个页面的子集的新 djvu 文件?

例如,一个 djvu 文件有 10 页,我想提取一个由原始 djvu 文件的第 3-6 页组成的新 djvu 文件。可以用 djvulibre 的一些命令来完成吗,例如 djvused、djvm、...?我正在使用 Ubuntu Linux。

考虑两种不同的情况:提取而不删除原始 djvu 文件中的页面,以及提取而不删除。

谢谢!

答案1

我没有看到任何方法可以显式保存一系列页面,因此我选择删除其余页面。

# Extract and save each page in its own file
pages=$(djvused -e 'n' "$if")
for ((i=1; i<=$pages; i++)) ;do
    of="${if%.*}.$(printf "%03d" $i).djvu"
    djvused -e "select $i; save-page-with \"$of\"" "$if"
done

# Remove one page from an existing djvu file
djvm -delete "$if" 2 # remove page 2

# Save pages 3-6 to a new file, by removing 
#   all other pages from a copy of the original
from=3; to=6
of="${if%.*}.$from-$to.djvu"
cp "$if" "$of"  
pages=$(djvused -e 'n' "$of")
for ((i=$pages; i>$to; i--)) ;do  djvm -delete "$of" $i ;done
for ((i=1;    i<$from; i++)) ;do  djvm -delete "$of" 1  ;done

答案2

我只想使用:DjVuLibre DjView 4.5DjVu 文档查看器。它的 GUI 有一个另存为下的功能文件菜单,可以将给定范围的页面保存到 djvu 文件中。

答案3

一系列更简单的 shell 语句来实现捆绑的 DjVU 分割:

mkdir -- 'mydoc/' &&
djvmcvt -i 'mydoc.djvu' 'mydoc/' 'new-mydoc-index.djvu'

相关内容