将源ASCII文件转换为JPEG

Com*_*are 9 html jpeg imagemagick pretty-print

我发布了EPUB技术书籍,印刷版,PDF版和Kindle/MOBI版.

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

我目前的机制是:

  1. 运行expand以设置一致的2空格选项卡大小,其中包含...
  2. a2ps,管道......
  3. 一个小的Perl片段添加"%%LanguageLevel: 3\n"一行,管道到......
  4. ImageMagick convert用于获取(E)PS并使用适当的背景制作JPEG,裁剪为575x148+5+28等.

过去曾经100%的工作时间.它现在95%的时间都有效.其余的时间,我得到convert: geometry does not contain image错误,我似乎无法摆脱,部分是因为我不明白问题是什么.

在此过程之前,我曾经使用漂亮的打印引擎(source-highlight)从源代码中获取HTML ...但是我唯一能找到将HTML转换为JPEG的东西就是从嵌入式Gecko自动化屏幕抓取发动机.可靠性发臭,这就是我切换到现有机制的原因.

那么,如果你是你,并且你需要以自动方式将源列表转换成JPEG图像,你会怎么做?奖励积分,如果它提供某种漂亮的打印过程(例如,粗体关键字)!

或者,如果您知道通常会导致什么convert: geometry does not contain image,那可能会有所帮助.我目前的过程很难看,但如果我能恢复到100%的可靠性,那现在就好了.

提前致谢!

Wil*_*ill 8

你可以考虑html2ps然后imagemagick的转换.

一个想法:如果您的目标(Kindle?)支持PNG,请使用优先于JPEG的文本渲染.

  • 实际上,进一步的实验表明,只有当源文件具有导致创建有效空图像的尾随空格时,才会出现错误,使用html2ps解决方案.所以,这有效!非常感谢! (5认同)