4 个版本
0.2.0 | 2023 年 1 月 30 日 |
---|---|
0.1.2 | 2023 年 1 月 7 日 |
0.1.1 | 2023 年 1 月 6 日 |
0.1.0 | 2023 年 1 月 5 日 |
0.0.0 |
|
#2223 在 解析器实现
140KB
3.5K SLoC
sndjvu_format 是一个用于处理 DjVu 文档传输格式的库。
"传输格式" 是由 DjVu v3 标准定义的规范 DjVu 文件格式。您可以使用此库解析 DjVu 文件或创建一个。格式最低级别的细节已被抽象化,但您仍然需要理解 DjVu 文档的 "块" 级别结构(见下文)才能有效地使用此库。
DjVu v3 文档模型的概述
(本概述不打算替代阅读 DjVu v3 标准的相关部分。)
DjVu 文档可以是 单页 或 多页。单页文档由一个单独的 组件 组成;多页文档由零个或多个组件以及一些元数据组成。
DjVu 组件有三种类型:DJVU
、DJVI
和 THUM
。一个 DJVU
组件表示一页,一个 DJVI
组件存储多个页面之间共享的数据,而一个 THUM
组件存储多个页面的缩略图。单页文档的单个组件必须是 DJVU
类型。
DjVu 文档中的每份数据都包含在一个 块 中,每个块都有一个类型。大多数块包含在组件中;例外的是包含多页文档元数据的 DIRM
和 NAVM
块。类型为 INFO
的块只能出现在 DJVU
组件的开始位置(在该位置是强制性的);它描述了对应页面的某些基本属性,如像素宽度和高度。除了 INFO
块之外,相同类型的块可以出现在 DJVU
和 DJVI
组件中。这些类型之一的块称为 元素,它描述了与它关联的页面或页面的一个方面(图像数据、OCR 文本、注释等)。