旋转 djvu 文件中的特定页面?

旋转 djvu 文件中的特定页面?

我想旋转 DjVu 文件中特定范围的页面。我该怎么做?希望不会损失质量。djvu 有 OCR,我也想保留它。

答案1

您可以使用 djvused 旋转 DJVU 页面

下载并安装

使用 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'

-eset-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命令来节省时间。为此,您可以使用echoselect $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)。

相关内容