html - 将源 ASCII 文件转换为 JPEG

标签 html imagemagick jpeg pretty-print

我出版打印版、PDF 版和 Kindle/MOBI 版的技术书籍,EPUB 正在制作中。

Kindle 不支持等宽字体,这对源代码列表很有用。制作等宽字体的唯一方法是将文本(Java 源代码、HTML、XML 等)转换为 JPEG 图像。更具体地说,由于分页问题,​​给定的输入 ASCII 文件需要分成每片约 6 行,每片变成 JPEG,因此列表可以跨越一个屏幕。这是皇家的痛苦。

我目前的机制包括:

  1. 运行 expand 以设置一致的 2 空格制表符大小,通过管道传输到...
  2. a2ps,通过管道传输到...
  3. 添加 "%%LanguageLevel: 3\n" 行的小 Perl 片段,该行通过管道传输到...
  4. ImageMagick 的 convert,获取 (E)PS 并制作 JPEG,具有适当的背景,裁剪为 575x148+5+28 等。

过去 100% 的时间都有效。它现在 95% 的时间都有效。其余时间,我会收到 convert: geometry does not contain image 错误,我似乎无法摆脱这种错误,部分原因是我不明白问题出在哪里。

在此过程之前,我曾经使用 pretty-print 引擎 (source-highlight) 从源代码中获取 HTML...将 HTML 转换为 JPEG 是为了自动从嵌入式 Gecko 引擎抓取屏幕。可靠性很差,这就是我改用当前机制的原因。

那么,如果您是您,并且需要以自动化方式将源列表转换为 JPEG 图像,您会怎么做?如果它提供某种 pretty-print 过程(例如,粗体关键字),则可加分!

或者,如果您知道通常导致 convert: geometry does not contain image 的原因,这可能会有所帮助。我目前的流程很丑陋,但如果我能让它恢复到 100% 的可靠性,那现在就没问题了。

提前致谢!

最佳答案

你可能会考虑 html2ps 然后 imagemagick 的转换。

一个想法:如果您的目标(Kindle?)支持 PNG,那么在此文本渲染中优先使用它而不是 JPEG。

关于html - 将源 ASCII 文件转换为 JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1182850/

相关文章:

php - 将 JPEG 上传到 MySQL 时出错

java - 如何从java中的图像创建mpeg视频

r - 如何使用 r 将 tiff 图像转换为 jpeg

html - 模态在移动浏览器上的显示方式不同

image - 如何通过 python 程序通过 imageMagic(textcleaner) 进行图像文本清理

html - 用什么代替::ng-deep

Imagemagick 替换颜色但保持透明度

php - ImageMagick透明PNG背景

JavaScript/jQuery : Get the changed content of textarea

html - 100% 高度 Flash/HTML 页脚