我想旋转 DjVu 文件中特定范围的页面。我该怎么做?希望不会损失质量。djvu 有 OCR,我也想保留它。
答案1
您可以使用 djvused 旋转 DJVU 页面
下载并安装
- 你可以从这里下载 source forge djvu 软件
- 该
INSTALL
文件指导如何执行安装 - 该软件包包含
djvused - Multi-purpose DjVu document editor
工具目录及其手册页
使用 djvused 旋转 djvu 页面
djvu sourceforge 手册页建议如下:
其他命令
设置旋转 [+-]rot
更改所选页面的默认方向。方向以 0..3 范围内的整数表示,表示 90 度逆时针旋转的次数。当参数前面有符号 + 或 - 时,参数 rot 计算应将多少个额外的 90 度逆时针旋转应用于页面。否则,参数 rot 表示所需的绝对页面方向。只有 DjVu 页面可以旋转。
选项
-e command
使 djvused 执行选项参数命令指定的命令。建议用单引号括住 djvused 命令,以防止不必要的 shell 扩展。
选择命令
select [fileid]
选择由参数 fileid 标识的组件文件。参数 fileid 必须是页码或组件文件标识符。当省略参数 fileid 时,select 命令将选择所有组件文件。
您可以尝试以下命令作为起点,它应该:
- 选择第 5 页
- 旋转 180 度
将其保存在新的 djvu 文件中 - p05.djvu
djvused myfile.djvu -e '选择 5;设置旋转 +2;保存页面 p05.djvu'
答案2
下载并安装 djvused(比较 Yaron 的回答)。
旋转单页
要在 DJVU 文件中将单个页面旋转 180°,请使用
djvused myfile.djvu -e 'select 5; set-rotation +2 ; save'
(-e
并set-rotation
在 Yaron 的回答中进行了解释,或者提供的手册页。
旋转多页
要旋转一系列页面,您可以在终端或脚本中运行以下循环:
for i in {4..8}
do
djvused myfile.djvu -e "select $i; set-rotation +2; save"
done
其中{4..8}
代表从 4 到 8 的范围,但您也可以明确列出数字:for i in 4 5 6 8
,如果不是所有数字都是连续的。您甚至可以将两者结合起来:for i in {4..8} 15 {21..40}
。
旋转大量页面
如果您要旋转大量页面,则可以通过避免重复save
命令来节省时间。为此,您可以使用echo
将select $i; set-rotation +2
命令写入文本文件command-list
(如果command-list
存在,这将删除/替换其内容!):
> command-list # make command-list empty
for i in {4..8}
do
echo "select $i; set-rotation +2" >> command-list
done
检查文件是否包含正确的命令,然后一次性应用所有命令:
djvused myfile.djvu -s -f command-list
这里,-s
替换save
命令并-f
接受包含命令列表的文件(而不是之后的明确命令-e
)。