作者:马健
邮箱: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. shell while的用法

    1. #!/bin/shint=1while (( "$int < 10" ))doecho "$int"let "int++"don ...

  2. 聊聊“现在学习MFC有用吗?”

    我用MFC做了4年多,后来转到WPF也做了快5年.对于二者,不敢说精通,但应该算入门.结合自己经历,如果不考虑项目需求,我认为新手学习WPF或许更好点.有3点: 1)大家都知道最近几年Motorola ...

  3. apache配置详解 apache安装路径

    http://www.linuxidc.com/Linux/2015-02/113921.htm 不同apache的安装方式 的安装目录示例 http://www.121down.com/articl ...

  4. 使用Json Template在Azure China创建ARM类型的虚拟机

    前面几篇文章介绍过Azure的两种VM的模式,包括ASM和ARM.并且介绍了如何用Azure CLI和PowerShell创建虚拟机.本文将介绍如何采用Json的Template来创建基于ARM的VM ...

  5. IIS调用批处理权限的处理[转]

    最近公司希望将Windows 2003升级为Windows 2008,做完安全设置后发现.net调用批处理拒绝访问的情况.网上很多说更改应用程序池的权限,建议不需要修改该权限,我这里强烈建议使用默认的 ...

  6. 蓝桥杯 基础练习 BASIC-15 字符串对比

    基础练习 字符串对比   时间限制:1.0s   内存限制:512.0MB 问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字 ...

  7. 一文读懂非关系型数据库(NoSQL)

    为了更好的理解非关系型数据库,我又深入的度娘了下 原文地址:https://baijiahao.baidu.com/po/feed/share?wfr=spider&for=pc&co ...

  8. Tortoisesvn 如何在资源管理器中断开连接

    你在这个文件夹下打开“工具—文件夹选项—查看”,勾选“显示隐藏的文件夹”选项,可以看到在SVN所在的文件夹下面, 有一个.svn文件夹,把它删除了,刷新一下就可以了.

  9. 深入浅出 消息队列 ActiveMQ------增强版

    本小节我们将讲解Apache开源下的ActiveMQ,而ActiveMQ是JMS的一个具体实现.JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于 ...

  10. Linux下Tomcat的启动和停止(包括杀死tomcat进程)

    打开终端 cd /java/tomcat #执行 bin/startup.sh #启动tomcat bin/shutdown.sh #停止tomcat tail -f logs/catalina.ou ...