我用EPUB發佈技術書籍,印刷版,PDF和Kindle/MOBI。將源ASCII文件轉換爲JPEG
Kindle不支持等寬字體,這對於源代碼清單很有用。執行等寬字體的唯一方法是將文本(Java源代碼,HTML,XML等)轉換爲JPEG圖像。更具體地說,由於分頁問題,給定的輸入ASCII文件需要分成每行〜6行的切片,每個切片變成JPEG,因此列表可以跨越屏幕。這是一場皇家的痛苦。
我目前的機制來做到這一點涉及到:
- 運行
expand
設置一致的二維空間標籤尺寸,其中管道... a2ps
,該管道...- 一個小的Perl片段添加一個
"%%LanguageLevel: 3\n"
行,其中管道... - ImageMagick的
convert
,採取(E)PS並製作一個JPEG,並具有適當的背景,裁剪到575x148+5+28
等。
這曾經工作100%的時間。它現在可以工作95%的時間。剩下的時間,我得到了convert: geometry does not contain image
錯誤,我似乎無法擺脫,部分原因是我不明白問題所在。
在這個過程之前,我曾經使用一個漂亮的打印引擎(source-highlight
)從源代碼中獲取HTML ......但是我發現將HTML轉換爲JPEG的唯一辦法是自動化屏幕截圖,從嵌入式壁虎引擎中抓取。可靠性惡化,這就是爲什麼我切換到我目前的機制。
因此,如果你是你,並且你需要以源代碼自動生成JPEG圖片,你會怎麼做?如果它提供某種漂亮的打印過程(例如,粗體顯示的關鍵字),則可獲得獎勵積分!或者,如果您知道通常導致convert: geometry does not contain image
的原因,那可能會有所幫助。我目前的過程很醜陋,但如果我能夠將其恢復到100%的可靠性,那現在就好了。
在此先感謝!
這有一定的承諾。我很確定我之前走了這條路,並放棄了它,但我忘記了爲什麼,而且我的初步測試表明它可能行得通。我會在明天或週一試着讓這個解決方案起作用。謝謝! – CommonsWare 2009-07-25 20:49:20
沒有骰子。以相同的頻率獲取相同的ImageMagick錯誤。必須是一個Postscript輸入的東西。 – CommonsWare 2009-07-25 21:42:16
實際上,進一步的實驗表明,只有當html2ps解決方案出現錯誤時,源文件纔會有空白,導致創建一個有效的空圖像。所以,這個工程!非常感謝! – CommonsWare 2009-07-25 23:04:31