9
21
2017
16

使用 Prince 转换 HTML 文档给 Kindle 阅读

本文来自依云's Blog,转载请注明。

ZeroMQ 的指南文档很长很长。我想放在 Kindle 里,上下班的时候看,长知识又不伤眼。

首先尝试 Push to Kindle。就是本博客每篇文章下边都有的那个链接里的东西。试了好几次终于成功了。然而,章节标题看不出来跑哪儿去了也就算了,代码去哪儿了?注意格式啊!

于是换浏览器,HTML 转 PDF。顺手按 F12,把每个标题右边的导航链接删掉了。然后打印~代码格式没有坏哦~然而,还是有很多代码没显示出来,倒是显示了一堆其它语言代码的链接……继续 F12 改样式表修了。这些都是小问题,最大的问题是,在我不断地调整页面大小的时候,我的火狐每次「准备……」的过程都特别漫长,那个负责转换的子进程吃很多很多 CPU,还卡死了所有它负责的标签页……终于,在等待近半小时它还没准备好的时候,我失去了耐心,杀掉了那个火狐子进程,换 Prince 了。这次我体会到多进程架构的好处了:页面卡了,换个标签页打开,分配到另外的子进程的时候就可以正常使用了。

Prince 是个非常不错的 HTML 转 PDF 软件。免费版本会有个它自己的图标放第一页右上角,没啥问题,打印的时候也不会出现。要是你非要去掉它的话,也可以找个 PDF 编辑工具删掉它。

然后是确定页面大小。因为代码的行都比较长,我决定横屏阅读,也就是「landscape」模式。然后拿尺子量了一下,差不多是 9cm×12cm。维基百科告诉我 Kindle Paperwhite 是6英寸的屏幕,但是我没有弄明白它的长和宽到底是多少,所以还是动手测量了。因为 Kindle 上字显示小一些也挺清晰的,所以我把短边乘以了二(好像并不合理啊,因为已经是 landscape 了,应该两边同步放大才对;不过其实我一开始想的是一页占两屏……)。

然后再加上针对 ZeroMQ 文档的修改,得样式表如下:

td + td {
  display: none;
}

.collapsible-block-folded {
  display: none;
}

.collapsible-block-unfolded {
  display: block !important;
}

.collapsible-block + br + span {
  display: none;
}

body {
  font-family: serif !important;
}

@page {
  size: 18cm 12cm landscape;
  margin: 0;
}

然后让我们的王子干活啦:

prince -s zguide.css zguide.html -o zguide.pdf

因为需要反复尝试,所以我已经把 ZeroMQ 那个巨大的 HTML 下载到本地了。

最终成果在这里。因为页边距为零,所以在一般的阅读器里看起来挺难看的,但是在 Kindle 里就挺适合了~

Category: Linux | Tags: kindle prince | Read Count: 12415
endle 说:
Sep 22, 2017 09:04:32 AM

我觉得landscape两次翻页对应pdf一页很重要。我有一本图书馆下载的pdf书,landscape看,第二次翻页会下滚两行到页尾,非常难受

Smallville 说:
Sep 22, 2017 04:44:44 PM

prince 转出来的PDF中文乱码怎么?
类似这样输出很多:
prince: page 9: warning: no font for CJK character U+539F, fallback to '?'

Avatar_small
依云 说:
Sep 22, 2017 05:06:32 PM

字体有问题?指定一下默认字体呢?

Avatar_small
依云 说:
Sep 22, 2017 05:07:44 PM

我现在是一页对一页地翻。跟 PDF 页面的大小有关系吧。A4 大小的 PDF,我的 Kindle 要翻三次,最后一次只半页……

Smallville 说:
Sep 22, 2017 06:44:42 PM

唉呀,确实不好意思,办公室的电脑改了中文字体STHeiti SC,但可能写成STHeiti,所以显示乱码,回到家里改用Microsoft YaHei,正常显示中文了。
谢谢仙子,多了一个send to kindle的方法。

Smallville 说:
Sep 22, 2017 07:07:44 PM

唉,确实有些网站是乱码,比如我想转这个:
http://gmdwith.us/?cat=3

nic 说:
Sep 22, 2017 08:05:16 PM

Instapaper 也有发送到 kindle 的功能哦。当未读的文章累积到一定数量时整理成 kindle 杂志。不过在阅读图片比较多的页面可能会丢图就是了(

Avatar_small
依云 说:
Sep 22, 2017 08:42:47 PM

我转了一下,正常呀: https://img.vim-cn.com/fe/a58aee8b6d84178458b2df141af6109a47331b.pdf

Smallville 说:
Sep 22, 2017 08:50:58 PM

与字体有关吗?你用的是什么字体,我也安装来试试。

Avatar_small
依云 说:
Sep 22, 2017 09:05:17 PM

PDF 文件里有写呀。AR PL UKai 和 UMing 什么的。

Smallville 说:
Sep 22, 2017 10:00:42 PM

谢谢,安装 ttf-arphic-ukai ttf-arphic-uming 这两个字体可以了。

endle 说:
Sep 22, 2017 10:06:28 PM

对,跟PDF页面大小有关。我觉得应该裁剪一下,要么翻两次一页,要么再拉大点翻三次一页,不然最后看小半页很难受

Smallville 说:
Sep 24, 2017 04:39:34 PM

send to kindle 众多方法,仙子这个方法简单粗暴,i like it

myd7349 说:
Apr 11, 2018 02:10:19 PM

我是先存成 HTML,然后用 Calibre 转的。

11 说:
Feb 15, 2023 06:44:55 PM

带请求的页面可以转吗

Avatar_small
依云 说:
Feb 15, 2023 10:31:46 PM

Ajax 请求的?应该不能吧。不过你可以用浏览器保存下来再转。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

| Theme: Aeros 2.0 by TheBuckmaker.com