2012年8月5日星期日

用 kindlegen 将 html文件 转为mobi格式电子书的时候,在未换字体的kindle touch上打开发现字体不对的解决办法

昨天把刀剑神域新出的小说网络翻译版下了,然而txt的木有插图,于是自己写了个html,把插图丢进去,再用kindlegen转为mobi格式。

后来在我的kindle touch上打开发现字体问题很大,跟用内置浏览器打开中文网页似的,kindle touch阅读的时候正常的内置中文字体不是这样的,经过一番摸索我找到的解决办法。
以下内容涉及的web知识参考http://www.w3school.com.cn/
  1. 确保html存为utf-8(我用的notepad++,在格式里能设置查看方式,还能直接转换),很多时候用Eclipse等软件编辑含中文的jsp、xml、html文件汉字变乱码,就跟这个字符集神马的有关,我都统一存为utf-8。然后要强调一下,写html文件时,尽量符合XHTML的严格要求:http://www.w3school.com.cn/xhtml/index.asp
  2. 文件最前面要加上文档类型声明(之前我写网页用bootstrap出现了问题就是我没加这个):
    <!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. 在<head></head>标签中加入以下css代码控制字体:
    <style type="text/css">
    body{
    font-family: arial, sans-serif;
    }
    </style>
  4. 在<head></head>标签中加入类型声明:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5. 设置<html>标签的属性:
    <html  xmlns="http://www.w3.org/1999/xhtml" lang="zh" xml:lang="zh">
我并不清楚具体哪部解决了我遇到的这个问题,但是写代码永远是越规范越好,否则容易出奇怪的问题,并不是糊弄过去就可以的。
可在线验证html文件:http://validator.w3.org/ 
不规范的地方、未闭合的标签啥的都能检查出来。
再附上一些自制电子书的教程,看txt时没插图没目录还是挺郁闷的。我还设想用这个将漫画生成mobi格式,自从升级后原生支持横屏了,可解决KT看漫画的难题:
Amazon Kindlegen 使用指南:http://bbs.duokan.com/forum/thread-19999-1-1.html
以及一些参考资料:http://blog.sina.com.cn/s/blog_5c0175790100bdg5.html
官方参考资料请Google一下Kindle Publishing Guideline

今天还试了一下从opf生成带封面和目录并且能跳转的mobi格式电子书,效果很不错,但是写xml和html太累了。
本文写于2012-07-31。

1 条评论:

  1. 谢谢!
    自从kindlegen升级后,生成的mobi的中文字体在kindle touch上变得很难看,用了文章的说的第五个属性后,就好多了.

    回复删除