作者:马健
邮箱: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. nodejs express mysql

  2. 媒体查询ipad,pc端

    媒体查询 /* 判断ipad */ @media only screen and (min-device-width : 768px) and (max-device-width : 1024px){ ...

  3. Azure VMSS ---- PowerShell创建自定义镜像的VMSS集群

    前面一篇文章介绍了如何用PowerShell创建标准镜像的VMSS集群.http://www.cnblogs.com/hengwei/p/7391178.html 本文将介绍,如何用PowerShel ...

  4. 技术总监Sycx的故事

    其实我在各种演讲里,线下吹牛里面无数次提及过他,讲过他的故事,但是总还是没有任何一次认认真真的详细讲过,所以,今天就讲讲他的故事吧. Sycx是福建漳州人,我经常开玩笑说,你生于一个著名的骗子之乡,为 ...

  5. 自己封装的AJAX (带JSON)

    最简单的封装的AJAX: function myajax(url,onsuccess,fail){ //确定是否支持xhr var xhr = new XMLHttpRequest ? new XML ...

  6. [转]socket使用TCP协议时,send、recv函数解析以及TCP连接关闭的问题

    Tcp协议本身是可靠的,并不等于应用程序用tcp发送数据就一定是可靠的.不管是否阻塞,send发送的大小,并不代表对端recv到多少的数据. 在阻塞模式下, send函数的过程是将应用程序请求发送的数 ...

  7. PV 和 UV IP

    PV(page view),即页面浏览量,或点击量;通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标. 高手对pv的解释是,一个访问者在24小时(0点到24点)内到底看了你网站几个页面.这里 ...

  8. ES之二:Elasticsearch原理

    Elasticsearch是最近两年异军突起的一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于Java/Lucene构建.最近研究了一下,感觉 Elasticsearch 的架构以及其开源的生态 ...

  9. Caused by: java.lang.IncompatibleClassChangeError: Implementing class

    Caused by: java.lang.IncompatibleClassChangeError: Implementing class 可能是导入的jar包重复. 尤其在Maven引用中,请查看是 ...

  10. 关于无法解析的外部符号 _main

    今天在写一段代码的时候,遇到了这个问题,一般遇到这种问题,都是找不到主函数,就是main函数,可是我写的代码是有入口地址main函数的呀.最后发现是自己源文件里,main函数是.c文件,.h文件对应的 ...