我出版了印刷版、PDF 和 Kindle/MOBI 的技术书籍,EPUB 即将推出。
Kindle 不支持等宽字体,这对源代码列表很有用。制作等宽字体的唯一方法是将文本(Java 源代码、HTML、XML 等)转换为 JPEG 图像。更具体地说,由于分页问题,给定的输入 ASCII 文件需要被分成大约 6 行的切片,每个切片都转换为 JPEG,因此列表可以跨越一个屏幕。这是皇家的痛苦。
我目前的机制包括:
- 运行
expand
以设置一致的 2 空格制表符大小,该大小通过管道传输到... a2ps
, 哪个管道...- 一个小的 Perl 片段,用于添加
"%%LanguageLevel: 3\n"
一行,该行通过管道传输到... - ImageMagick 的
convert
, 获取 (E)PS 并制作 JPEG,具有适当的背景,裁剪为575x148+5+28
等。
这曾经是 100% 的工作时间。它现在 95% 的时间都在工作。其余时间,我会遇到convert: geometry does not contain image
错误,我似乎无法摆脱,部分原因是我不明白问题出在哪里。
在此过程之前,我曾经使用漂亮的打印引擎source-highlight
(引擎。可靠性很差,这就是为什么我切换到我目前的机制。
所以,如果你是你,并且你需要以自动化的方式将源列表转换为 JPEG 图像,你会怎么做?如果它提供某种漂亮的打印过程(例如,粗体关键字),则可以加分!
或者,如果您知道通常是什么原因导致convert: geometry does not contain image
的,那可能会有所帮助。我目前的流程很丑陋,但如果我能让它恢复到 100% 的可靠性,那现在就好了。
提前致谢!