cbz汇编

最近,我发现我的曾曾祖父在20世纪之交写了两本书:一本是关于航行的,另一本是关于他担任纽约市消防队长的职业的 。 这些书吸引了一些听众,但由于它们是我家族历史的一部分,因此我想保留每本书的数字副本。 但是,我想知道哪种便携式文档格式最适合这种工作?

我很早就决定不要使用PDF。 该格式虽然适用于印前检查,但似乎注定是不间断的功能膨胀,并且会产生难以内省和编辑的文档。 我想要一种具有类似功能的更智能格式。 我想到了两个:漫画档案和DjVu。

漫画档案

顾名思义,漫画档案是一种最常用于漫画的简单格式。 您可以在Comic Book Plus和Digital Comic Museum等网站上看到漫画档案的示例。

漫画档案库的最大功能也是它的最弱之处:它是如此简单,几乎是一种约定,而不是一种格式。 实际上,漫画档案只是扩展名为.cbz,.cbt,.cb7或.cbr的ZIP,TAR,7Z或RAR档案。 它没有用于存储元数据的标准。

但是,它们很容易创建。

创建漫画档案

  1. 创建一个包含图像文件的目录,然后重命名图像,使它们具有固有顺序:

     $ n=0 && for i in *.png ; do mv $i `printf %04d $n`.png ; ((n+=1)); done 
    
  1. 使用您喜欢的存档工具存档文件。 以我的经验,最好地支持CBZ。

     $ zip comicbook.zip -r *.png 
    
  1. 最后,使用适当的扩展名重命名该文件。

     $ mv comicbook.zip comicbook.cbz 
    

生成的文件应在大多数设备上打开。 在Linux上, Evince和Okular都可以打开CBZ文件。 在Android上, Document Viewer和Bubble可以打开它们。

解压缩漫画档案

从漫画档案中恢复数据也很容易:只需取消存档CBZ文件。

由于您喜欢的存档工具可能无法将.cbz扩展名识别为有效的存档,因此最好将其重命名为其本机扩展名:

$ mv comicbook.cbz comicbook.zip
$ unzip comicbook.zip

DjVu

DjVu (发音为“déjàvu”)是AT&T于20年前开发的一种更高级的格式。 这是一种具有高级压缩技术的数字文档格式,可以在您可能没有意识到的更多应用程序中查看,包括Evince , Okular ,在线DjVu.js , DjVu.js Firefox 浏览器扩展, GNU Emacs ,Android上的Document Viewer以及开源,Sourceforge上的跨平台DjView查看器。

您可以在djvu.org上阅读有关DjVu的更多信息并找到示例.djvu文件。

DjVu具有几个吸引人的功能,包括图像压缩,轮廓(书签)结构以及对嵌入式文本的支持。 使用免费和开源工具很容易进行内部检查和编辑。

安装DjVu

开源工具链是DjVuLibre ,您可以在发行版的软件存储库中找到它。 例如,在Fedora上:

 $ sudo dnf install djvulibre 

创建一个DjVu文件

.djvu是已被编码为DjVu文件的图像。 .djvu可以包含一个或多个图像(存储为“页面”)。

要手动生成DjVu,可以使用以下两种编码器之一: c44用于高质量图像, cjb2用于简单双色调图像。 每个编码器接受不同的图像格式:c44可以处理.pnm或.jpeg文件,而cjb2可以处理.pbm或.tiff图像。

如果需要预处理图像,可以在终端中使用Image Magick进行处理 ,使用-density选项定义所需的分辨率:

 $ convert -density 200 foo.png foo.pnm 

然后,您可以将其转换为DjVu:

 $ c44 -dpi 200 foo.pnm foo.djvu 

如果图像很简单,例如白页上的黑色文本,则可以尝试使用较简单的编码器进行转换。 如有必要,请先使用Image Magick将其转换为兼容的中间格式:

 $ convert -density 200 foo.png foo.pbm 

然后将其转换为DjVu:

 $ cjb2 -dpi 200 foo.pbm foo.djvu 

您现在有了一个简单的单页.djvu文档。

创建多页DjVu文件

尽管单页DjVu很有用,但鉴于DjVu有时具有出色的压缩效果,它最常用作多页格式。

假设您有许多.djvu文件的目录,则可以使用djvm命令将它们捆绑在一起:

 $ djvm -c pg_1.djvu two.djvu 003.djvu mybook.djvu 

与CBZ存档不同,捆绑映像的名称对其DjVu文档中的顺序没有影响,而是保留了您在命令中提供的顺序。 如果您有先见之明以自然的排序顺序(001.djvu,002.djvu,003.djvu,004.djvu等)命名,则可以使用通配符:

 $ djvm -c *.djvu mybook.djvu 

处理DjVu文档

使用djvm编辑DjVu文档很容易。 例如,您可以将页面插入到现有的DjVu文档中:

 $ djvm -i mybook.djvu newpage.djvu 2 

在此示例中,页面为newpage。 djvu成为文件mybook .djvu中的新页面2。

您也可以删除页面。 例如,要从mybook.djvu删除第4页:

 $ djvm -d mybook.djvu 4 

设定轮廓

您可以将元数据添加到DjVu文件中,例如大纲(通常称为“书签”)。 若要手动执行此操作,请创建带有文档轮廓的纯文本文件。 DjVu大纲以类似Lisp的结构表示,带有开头的书签元素,后跟书签名称和页码:

(bookmarks
("Front cover" "#1")
("Chapter 1" "#3")
("Chapter 2" "#18")
("Chapter 3" "#26")
)

括号定义轮廓中的级别。 大纲当前只有顶级书签,但是任何部分都可以通过延迟其右括号来包含子部分。 例如,为第1章添加一个小节:

(bookmarks
("Front cover" "#1")
("Chapter 1" "#3"
("Section 1" "#6"))
("Chapter 2" "#18")
("Chapter 3" "#26")
)

大纲完成后,保存文件,并使用djvused命令将其应用于DjVu文件:

 $ djvused -e 'set-outline outline.txt' -s mybook.djvu 

打开DjVu文件以查看轮廓。

A DjVu with an outline as viewed in Okular

嵌入文字

如果要存储要创建的文档的文本,可以将文本元素( djvused术语中的“隐藏文本”)嵌入DjVu文件中,以便Okular或DjView之类的应用程序可以选择文本并将其复制到用户剪贴板中。

这是一个复杂的操作,因为要嵌入文本,必须首先拥有文本。 如果您可以访问良好的OCR应用程序(或转录打印页面的时间和精力),则可能会有该数据,但是必须将文本映射到位图图像。

一旦有了每行(或者,如果愿意,每个单词)的文本和坐标,就可以为每个页面编写一个带有块的djvused脚本:

select; remove-ant; remove-txt
# -------------------------
select "p0004.djvu" # page 4
set-txt
(page 0 0 2550 3300
(line 1661 2337 2235 2369 "Fires and Fire-fighters")
(line 1761 2337 2235 2369 "by John Kenlon"))

.
# -------------------------
select "p0005.djvu" # page 5
set-txt
(page 0 0 2550 3300
(line 294 2602 1206 2642 "Some more text here, blah blah blah."))


每条线的整数代表每条线的X和Y坐标的最小和最大位置( xminyminxmaxymax )。 每一行都是以像素为单位的矩形,可以在页面的左下角的原点。

您可以将嵌入的文本元素定义为单词,线条和超链接,并且可以映射形状不只是矩形的复杂区域。 您还可以嵌入特殊定义的元数据,例如BibTex键(以小写形式表示(年份,书名,编辑,作者等),以及DocInfo键(从PDF规范中借用,始终以大写字母开头) ,作者,主题,创建者,生产者,CreationDate,ModDate等)。

自动创建DjVu

能够手工制作非常详细的DjVu文档是很不错的选择,但是如果您将DjVu用作日常格式,则会注意到您的应用程序缺少一些在普遍存在的PDF中可用的便利。 例如,很少有(如果有的话)应用程序提供与PDF一样方便的“ 打印到DjVu”或“ 导出到DjVu”选项。

但是,您仍然可以通过利用PDF作为中间格式来使用DjVu。

不幸的是,简单,自动DjVu转换所需的库是根据CPL许可的,该要求具有工具链中的GPL代码无法满足的要求。 因此,它不能作为已编译的库分发,但是您可以自由地自己编译它。

由于DjVuLibre团队提供了出色的构建脚本,因此该过程相对简单。

  1. 首先,使用软件开发工具准备系统。 在Fedora上,快速简便的方法是与DNF组:

     $ sudo dnf group install @c-development  

    在Ubuntu上:

     $ sudo apt-get install build-essential 
    
  1. 接下来,从Sourceforge下载GSDjVu源代码 。 确保下载GSDjVu ,而不是DjVuLibre (换句话说,不要单击文件列表顶部的绿色大按钮,而应单击最新文件)。
  1. 取消存档刚刚下载的文件,然后将目录更改为该文件:

    $ cd ~/Downloads
    $ tar xvf gsdjvu-X.YY.tar.gz
    $ cd gsdjvu-X.YY
  1. 创建一个名为BUILD的目录。 必须将其命名为BUILD ,以消除您的创造力:

    $ mkdir BUILD
    $ cd BUILD
  1. 下载构建GSDjVu应用程序所需的其他源程序包。 具体来说,您必须下载Ghostscript的源代码(几乎可以肯定已经安装了该源代码,但是需要使用它来进行构建)。 此外,您的系统必须具有jpeglibpngopenjpegzlib的源包。 如果您认为您的系统已经具有这些项目的源包,则可以运行构建脚本;否则,请执行以下操作: 如果找不到源,则脚本将失败,并让您在重试之前纠正错误。
  1. 运行下载中包含的交互式build-gsdjvu构建脚本。 该脚本将解压缩源文件,使用gdevdjvu驱动程序修补Ghostscript,编译Ghostscript并从构建结果中删除不必要的文件。
  1. 您可以在路径中的任何位置安装GSDjVu 。 如果您不知道PATH变量是什么,则可以通过echo $ PATH看到它。 例如,将其安装到/ usr / local前缀:

    $ sudo cp -r BUILD/INST/gsdjvu  /usr/local/lib64
    $ cd /usr/local/bin
    $ sudo ln -s ../lib64/gsdjvu/gsdjvu gsdjvu

将PDF转换为DjVu

现在,您已经构建了Ghostscript驱动程序,将PDF转换为DjVu只需一个命令:

 $ djvudigital --words mydocument.pdf mydocument.djvu 

这会将PDF中的所有页面,书签和嵌入的文本转换为DjVu文件。 --words选项将所有映射的嵌入式PDF文本映射到DjVu文件中的相应点。 如果没有嵌入的PDF,则不会保留任何嵌入的文本。 使用此工具,您可以在应用程序中使用便捷的PDF功能,并最终得到DjVu文件。

为什么选择DjVu和CBZ?

DjVu和漫画书存档是您的档案库的绝佳附加文档格式。 将一系列图像填充为PostScript格式(如PDF)或显然主要用于文本的格式(如EPUB)似乎很愚蠢,因此将CBZ和DjVu作为附加选项很好。 它们可能不适用于您的所有文档,但是最好对它们感到满意,以便在最有意义的时候使用它们。

翻译自: https://opensource.com/article/19/3/comic-book-archive-djvu

cbz汇编

cbz汇编_CBZ和DjVu:PDF的开源替代品相关推荐

  1. pdf编辑 开源_新闻编辑室看到了开源的光芒

    pdf编辑 开源 您是否听说过有关大型媒体公司的新闻,该公司的新型专有内容管理系统(CMS)能够处理所有需求,开箱即用,并且所有新闻记者都喜欢它? 没有? 那是因为很少有人将这么大的纤维串在一起. 用 ...

  2. j pocket_Wallabag:Pocket的开源替代品

    j pocket 早在2014年,我就写了wallabag ,这是一种可替代后来使用的应用程序(如Instapaper和Pocket)的开源替代品. 如果需要,请看一下该文章. 不用担心,我会等你. ...

  3. dreamweaver开源_Dreamweaver的7种开源替代品

    dreamweaver开源 编者注:本文最初于2016年3月发布,并进行了更新以反映一些最初推荐的工具中的更改. 并不是很多年前,互联网上几乎每个网页都是经过精心设计的. 这很艰难,在CSS真正扎根并 ...

  4. dropbox_Dropbox的5种开源替代品

    dropbox Dropbox是文件共享应用程序的800磅重的大猩猩. 即使它是一种非常流行的工具,您也可以选择使用替代方法. 也许是因为您出于所有良好的原因(包括安全性和自由性)而致力于开放源代码方 ...

  5. GitHub、YouTube 们的开源替代品都有了!

    作者 | 唐小引 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 有这样一个宝藏网站,里面收集了超级多知名软件的开源替代品.像 GitHub.Slack.1Pass ...

  6. linux代替ps的软件,Photoshop的开源替代品 图像编辑器GIMP迎来25岁生日

    原标题:Photoshop的开源替代品 图像编辑器GIMP迎来25岁生日 来源:cnBeta.COM 从GIMP作为一个开源图像编辑器开始,进而引发GTK工具箱的诞生以及发展成为一个自成体系的项目,被 ...

  7. matlab 替代品_MATLAB的4种开源替代品

    matlab 替代品 编者注:本文最初于2016年6月发布,并进行了更新以提供您可能希望考虑的其他选项. 对于许多数学,物理科学,工程学,经济学以及其他领域中包含大量数字成分的学生而言,MATLAB是 ...

  8. 5 款 Gmail 的开源替代品

    Gmail 享有非凡的成功,非常多的用户,几乎无处不在,而且开发者非常喜欢使用 Gmail.本文主要介绍 5 款 Gmail 的开源替代品. Roundcube RoundCube Webmail 是 ...

  9. 【AI热点技术】ChatGPT开源替代品——LLaMA系列之「羊驼家族」

    ChatGPT开源替代品--LLaMA系列之「羊驼家族」 1. Alpaca 2. Vicuna 3. Koala 4. ChatLLaMA 5. FreedomGPT 6. ColossalChat ...

最新文章

  1. Android 实时文件夹
  2. 李宏毅线性代数笔记13:SVD分解
  3. leetcode 1423. 可获得的最大点数(滑动窗口)
  4. Java集合工具类:Collections
  5. 小度智能音箱维修点_小度智能音箱无法唤醒怎么办
  6. 解决jupyter notebook输出显示不完整问题
  7. 根据网卡MAC地址查询厂商信息
  8. 2013年最新十大xp系统下载排行榜-无极系统下载站
  9. 计量经济学实验报告计算机,计量经济学实验报告记录.doc
  10. MATLAB数据类型及转换
  11. Oracle 公有云(OCI)价格与计费工具
  12. rm: cannot remove `xxx’: Operation not permitted的解决方法
  13. 荣耀“打倒华为”第一机
  14. 解读全球免费化:是众望所归还是坑死不赔
  15. 红牛分公司数据part02
  16. 中兴笔试题目总结(四)软件工程部分
  17. 双相障碍快速循环发作的治疗:证据回顾 | 文献述评
  18. 沪指暴跌200点 两市超过四分之一股票跌停
  19. 程序员 520 表白方式
  20. JavaScript第二章——变量及数据类型 2021-09-26

热门文章

  1. 机器人逆向运动学(IK):问题分析
  2. c#使用msiexec静默安装IIS
  3. jenkins开启web代理通过tcp端口方式使master与slave建立连接
  4. Hive分区(Partition)和桶(Bucket)
  5. 开源软件成熟度评测报告-分布式消息中间件
  6. 怎么一次抛出多个异常
  7. 强制改变CSS样式,页面布局
  8. 支付不重复订单号生成
  9. Windows下报蓝屏/绿屏代码UNEXPECTED_STORE_EXCEPTION错误或爆音、死机的解决方案
  10. SAP ABAP PARAMETERS