作者:马健
邮箱:stronghorse_mj@hotmail.com发布:2008.08.03
更新:2008.08.24


补充说明:此文成文较早,当时PDG浏览器只支持纯正PDG,不支持名为PDG,实为DjVu的文件。现在UnicornViewer已经支持名为PDG,实为DjVu的文件,因此对于散页DjVu,多半都用PdgRenamer更名为PDG,压成zip包后用UnicornViewer看。如果是多页DjVu,可以用DjVuToy拆成散页再更名,或直接用高版本UnicornViewer浏览。


声明:
1、谨以此文献给喜欢折腾的各位热血人士,不喜欢折腾的就不必看了。
2、本文欢迎转载,不过转载的时候请注明原作者为strnghrs。
3、DjVu转换成PDG后,打开可能会有点慢:既然在空间上赚取了利润,在时间上付出一点成本也是应该的。

一、准备散页DjVu
怎么获得DjVu文件就不必问我了,问了也不会有结果。
如果获得的是打包后的多页DjVu,可以用DjVuToy的“文件拆分”功能拆开。

二、文件更名
散页DjVu需要更名为PDG,并且符合PDG文件名规范:主文件名为6位字母、数字,控制名位pdg,均为小写。
主文件名由前缀加数字组成,前缀含义为:
cov:封面
bok:书名
leg:版权
fow:前言
!:目录
att:附录
bac:封底
ins:插页
正文页无前缀,直接用6位数字编码。
更名工具很多,我习惯用RenameIt。如果有人做个专用工具,估计能赚点论坛币出来。

三、转成真正PDG文件
PDG文件本身是支持DjVu压缩的,只是需要在前面加上PDG文件头,所以转换完成后,文件总长度会比原DjVu文件总长度大一点。
转换方法:用DjVuToy的“PDG压缩”功能,选择上一步中名为PDG,实为DjVu的文件所在文件夹,注意不要选“转换为快速版”,这样可以保证最大限度保持清晰度。
对于黑白单层DjVu(只有Sjbz段,无FG44、BG44、FGbz等),DjVuToy会在PDG文件头后直接嵌入原DjVu文件,实现无损转换。对于灰度、彩色DjVu(含FG44、BG44、FGbz等段),由于PDG浏览器对这类文件的解释与众不同(上下颠倒、颜色互换),所以只能先解码,再重新压缩成单层DjVu(只含BG44),因此文件质量或长度可能会有一点损失。

DjVu转PDG的方法与步骤的更多相关文章

  1. VirtualBox安装Debian6的方法和步骤(详细)

    下面是用VirtualBox安装Debian6的方法和步骤 l 新建一个文件夹,用于存放虚拟硬盘,如Debian l 打开VirtualBox,点击新建 l 输入虚拟机名称,Debian_6 l 给虚 ...

  2. CentOS 6.5系统上安装SVN服务器端的方法及步骤

    VN其实就是Subversion,分为服务器端和客户端.之前在网上搜了很多方法,都有各种问题,经过自己搜集整理以及实际尝试,总算有个比较靠谱的方法.本文主要介绍CentOS 6.5系统上安装SVN服务 ...

  3. 调整innodb redo log files数目和大小的具体方法和步骤

    相较于Oracle的在线调整redo日志的数目和大小,mysql这点则有所欠缺,即使目前的mysql80版本,也不能对innodb redo日志的数目和大小进行在线调整,下面仅就mysql调整inno ...

  4. matlab和c++混合编程---matlab和vs的环境配置问题及方法和步骤(转载)

    matlab和c++混合编程---方法和步骤 matlab和c++混合编程---matlab和vs的环境配置问题 摘要:Matlab具有很强的数值计算和分析等能力,而C/C++是目前最为流行的高级程序 ...

  5. 详解学习C#的方法和步骤

    如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 掌握一门.NET面向对象语言,C#或VB.NET. 强烈反对在没系统学过一门面向对象语言的前提下去学ASP.NET. ASP.NET是一个 ...

  6. PLSQL执行sql语句输出的中文是???之解决方法和步骤

    方法/步骤 1 登陆plsql,执行sql语句,输出的中文标题显示成问号????:条件包含中文,则无数据输出 步骤阅读 2 输入sql语句select * from V$NLS_PARAMETERS查 ...

  7. VC++6.0环境下调试c语言代码的方法和步骤_附图

    1.C语言程序四步开发步骤 (1)编辑.可以用任何一种编辑软件将在纸上编写好的C语言程序输入计算机,并将C语言源程序文件*.c以纯文本文件形式保存在计算机的磁盘上(不能设置字体.字号等). (2)编译 ...

  8. 相机标定 matlab opencv ROS三种方法标定步骤(3)

    三 ,  ROS 环境下 如何进行相机标定 刚开始做到的时候遇到一些问题没有记录下来,现在回头写的时候都是没有错误的结果了,首先使用ROS标定相机, 要知道如何查看节点之间的流程图  rosrun r ...

  9. 相机标定 matlab opencv ROS三种方法标定步骤(1)

    一 . 理解摄像机模型,网上有很多讲解的十分详细,在这里我只是记录我的整合出来的资料和我的部分理解 计算机视觉领域中常见的三个坐标系:图像坐标系,相机坐标系,世界坐标系,实际上就是要用矩阵来表 示各个 ...

随机推荐

  1. Linux之时间、地点、人物、事件、情节

    时间 date 显示当前时间 time cmd 显示 cmd的运行时间 地点 locate 根据文件名,迅速找到文件.基于系统构建的索引 find 根据各种规则找到文件,更强大,但比较慢 wherei ...

  2. [转]HTTP详解(1)-工作原理

    1. HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议.它可以使浏览器更加高效,使网络传输减少. ...

  3. SpringCloud基础教程学习记录

    这个学习记录是学习自翟永超前辈的SpringCloud的基础教程. 自己写这个教程的目的主要是在于,想要更凝练总结一些其中的一些实用点,顺便做个汇总,这样自己在复习查看的时候更加方便,也能顺着自己的思 ...

  4. [C++] 分治法之棋盘覆盖、循环赛日程表

    一.分治的基本思想 将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之. 对于一个规模为 n 的问题,若问题可以容易地解决,则直接解决,否则将其分解为 k 个规模较小的子 ...

  5. Java堆初始大小的建议值

    摘自:<Java Performance>第三章 Initial Heap Space Size Configuration This section describes how to u ...

  6. 一次Mono解析Excel文档编码出错排查记录

    最近在捯饬Asp.Net站点部署到Linux平台上面,在文档导入的操作中经过网上搜索采用了能够支持跨平台的ExcelDataReader组建.在本地windows上测试通过NuGet安装的组建,这货依 ...

  7. 问题:oracle CLOB类型;结果:oracle中Blob和Clob类型的区别

    BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的的,或者可以直接用LOB字段代替这两个.但是为了更好的管理ORACLE数据库,通常像图 ...

  8. ping 127.0.0.1请求超时的解决办法?

    转自:http://blog.51cto.com/dengyong/1429699 打开网络连接,你很有可能启用了虚拟wifi.若有无线网卡就把无线网卡关掉,然后本地连接那里(就是有线网卡的那个连接) ...

  9. Shell编程进阶 2.2 shell数组

    给一个字符指定一个数组 怎么显示数组 a= echo $a a=( ) echo $a echo ${a[@]} echo ${a[*]} 指定显示数组中第几个数字 echo ${a[]} echo ...

  10. 部署和调优 2.1 squid正向代理

    安装squid yum install -y squid Squid 官方网站为 http://www.squid-cache.org 打开注释掉的 cache_dir ufs / 缓存目录的位置,大 ...