热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

在linux下阅读CHM,WDL以及其它格式电子图书的变通方法

在linux下阅读CHM,WDL以及其它格式电子图书的变通方法--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
  现在网上的电子图书绝大部分都是pdf、chm、wdl和word文档doc格式。也有部分图书采用纯文本 txt格式。txt格式在linux下可用文本阅读器打开,灰褂玫?inux平台支持中文显示,使用上不存在什么问题。pdf格式由于使用广泛,在linux下也得到了良好支持,可以使用xpdf, KGhostView等打开阅读,还可以到www.adobe.com去下载linux版的Acrobat Reader(最新版本为5.0),使用上也没有太大问题。而且与txt相比,pdf支持图像显示,超链接等功能,使用上自然更加方便。

  对于其它电子图书格式,如chm、wdl以及超星电子图书格式,由于没有在linux平台下的阅读工具,使用十分不便。特别是对于学习在linux平台下操作和编程的图书,需要一边看书,一边操作,时常需要在 windows和linux两种平台下来回切换,操作极为麻烦。笔者因需要在linux平台下学习编程,下载的几本电子图书都是chm或者wdl格式,不得不在widows下看一部分,再重新启动到linux操作一部分,然后再启动到windows,再学习一部分,然后再换回linux。

  如此反复折腾,时间长了,人和机器都受不了。我也在网上搜索过,除了找到一大堆“chm、wdl在linux怎么用”之类问题,没有找到什么好的解决办法。一天,在 linux下使用Kwrite时无意之中打开打印菜单,显示出来的打印机里有一项是Acrobat PDFWrite,按下打印按钮,输入要保存的文件名,再用AcrobatReader打开察看,一切显示正常。原来一篇文章可以这样变成了pdf格式,如果能将windows平台下的电子图书都用这种方法转换成pdf格式,以后使用不就是大大方便了。于是重新启动到windows平台,经过一阵摸索之后,找到了两种异曲同工的解决方法,一种是打印成ps格式,另一种是打印成pdf格式。前一种转换方便,通用性强,但效果较差。后一种有诸多优点,但需要专门的软件支持。

  一、 将电子图书转换成ps格式

  绝大多数windows平台下的阅读工具都具备打印功能,因此采用打印到文件的办法转换图书格式是简单易行的。首先在windows的控制面板里看看自己的系统里有没有打印机,如果没有,就添加打印机,注意:添加的打印机必须是支持PostScript格式的,其它的参数设置选择默认即可。在我的系统上我选择的是HP LaserJet ⅢSi PostScript v52.3打印机,然后到阅读工具的打印菜单,选择打印,选择好打印机,关键的一步就来了,此时一定要选上“打印到文件”,按下“打印”后,再指定文件的保存路径和文件名,按下“确定”之后,一个后缀名为prn的文件就在你指定的目录下生成了。如果没有什么意外的话,重新启动到linux,用 GhostView打开这个文件,应该能看到文件的内容。下面以chm格式的Effective C++为例,详细讲述整个过程。

  在windows下安装好打印机后,运行effectiveC++.chm文件,出现阅读界面。在上方的工具条上点击打印图标,出现一个标题为“打印主题”的选择窗口,默认选择为“打印选定主题”,改为“打印选定主题及全部次标题”,点击“确定”,出现打印界面,选择好打印机(在我的系统上为HP LaserJet ⅢSi PostScript v52.3打印机),然后点击在“打印到文件(F)”前的方框,点击“打印”,会出现一个“打印到文件…”的对话框,指定文件的保存路径和文件名后,点击 “确定”即可生成prn文件。然后重新启动进入linux,运行ghostview或kghostview即可查看,而且文本和图像均可显示。

  Word文档格式doc的转换也很简单,只要在word里选择打印,然后按上述过程操作即可。其它的电子图书格式如wdl也完全可以如法炮制。不过转换之后的prn文件体积可不小。一本300多页的《linux参考大全》第一部分转换后就有近8兆。超星电子图书格式也完全可以如此办理。只要阅读工具支持打印,任何格式的电子图书都可以用这种方法转换成ps文件。

  存在的问题:将电子图书转换成ps文件或多或少会存在一些问题,如某些字体会发生变化,chm转换的ps文件没有超链接等等。如果文字显得太浅,不太看得清楚,可以换一种打印机试试,有些打印机驱动程序可以设置分辨率,转换之后的效果要好一些。对于wdl文档,如果发现转换后字体互相重叠,可以在打印时将纸张定义得宽一些。

  二、 将电子图书转换成pdf格式

  与转换成ps格式一样,转换成pdf也要用打印方式。不过,这次所用的打印驱动程序只能是adobe的PDFWrite。要安装这个打印机驱动程序,最好的方法是安装adobe公司提供的Acrobat软件,这里要注意不是大家常见的AcrobatReader,Acrobat是用来制作pdf格式文件的,可以将各种电子文档制作成pdf文件。而AcrobatReader只能阅读和打印pdf文件,而不能制作pdf文件。Acrobat本来可以在 adobe网站上下载,但要有帐号。所以我选择了国内的站点下载了Acrobat 5.0,这个东东可不小,有108兆。安装时要使用自定义方式,这样才能选择安装PDFWriter和亚州字体。安装好后,会出现分别一个Acrobat PDFWriter和Acrobat Distiller打印机。这里我们只用PDFWriter打印机。操作方法与转换成ps类似,选择打印机时一定要选择PDFWriter,但不要选中 “打印到文件(F)”,直接点击“确定”,会自动出现一个对话框,让你指定文件的保存位置和要保存的文件名,确定之后即可生成文件。有条件的朋友也可直接安装PDFWriter,但要有adobe exchange的支持。

  pdf格式有一些优点是ps没有的。比如转换后的chm文件仍然保持了超链接的功能,给使用带来方便,同时能较完整的保持原文件的风貌,因此我推荐有条件的朋友采用这种方式。

  在转换wdl文档时,也会出现字体重叠的毛病。经过反复试验,发现将纸张定义为400×400可以保证字符之间有足够的间距。同时将分辩率设置为600,这样转换之后字体会清晰一些。
推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • windows便签快捷键_用了windows十几年,没想到竟然这么好用!隐藏的功能你知道吗?
    本文介绍了使用windows操作系统时的一些隐藏功能,包括便签快捷键、截图功能等。同时探讨了windows和macOS操作系统之间的优劣比较,以及人们对于这两个系统的不同看法。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Win10下游戏不能全屏的解决方法及兼容游戏列表
    本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ... [详细]
author-avatar
小女人快乐方子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有