有没有办法将epub格式转换为图像?

问题描述:

我需要一个工具来以编程方式将epub文件转换为一系列图像。输出应该看起来像一个规范设备上的截图(对于这个应用程序,一个iPad)。我一直无法找到任何可以做这种事情的工具。有没有办法将epub格式转换为图像?

所以我真的很喜欢(1)是一个工具,可以做到这一点。但假设我没有这样的工具存在是正确的,是否存在(2)将读取和呈现ePub的库(最好是Perl模块,但我不那么挑剔)?

显然,自己滚动我可以结合工具解压缩,阅读html,阅读xml,把所有东西放在正确的顺序,并在一定的限制内呈现html。虽然我宁愿不这样做,如果这是唯一的选择,我将不得不继续寻找一种可以完成最后一部分的工具,否则我也必须创建它。

(1)上的任何线索,或失败的(2)?

+3

[EPUB](http://enwp.org/EPUB)是HTML。捕获这是一个解决的问题:http://*.com/q/7816618#7820994 – daxim

+0

我认为这个问题更适合www.perlmonks.com – Dynamic

+0

@daxim谢谢 - 无论如何,这应该解决fallthrough条件。仍然希望不太普遍的解决方案。 –

Pandoc可以从EPub转换成LaTeX(因此转换为PDF)或任何其他格式。从概念上讲,这应该是一种类型(1)解决方案。

+0

它看起来像Pandoc写EPub,但没有读取它。不过,如果我想用Haskell弄脏我的手,也许是朝着正确方向迈出的一步。 –

+0

嗯,这太糟糕了,我想我误解了那里的网页。好吧。 –

道歉,如果我要打字我只是疯了 - 事实上,我很确定它是 - 但也许这样的事情可能会起作用,我对知道它可能对你有多好:

使用Frank(https://github.com/moredip/Frank)来控制Mac上的iOS模拟器。对其进行编程以打开您需要的EPUB文档。

所有你需要的是自动化屏幕截图的拍摄。显然,这些看起来像EPUB在iPad中渲染(或者如果你愿意的话 - iPhone当然也可以)。

使用AppleScript可以自动完成屏幕截图,尽管困难的部分可能会让它与Frank交谈。最糟糕的情况是,您可以告诉Frank在加载每个页面后暂停5秒,并告诉AppleScript每隔5秒拍摄一次屏幕截图。这很糟糕,但如果你绝望,它会完成。弗兰克也可能以某种方式使屏幕截图发生 - 我还没有足够的了解它。

+0

还没有尝试过,但这是迄今为止最接近的答案,所以给你赏金 –

取决于您的“看起来像”的定义 - 你想要用户铬或只是epub呈现给定的屏幕大小。

我会检查出所选平台的各种epub阅读器,根据您的首选尺寸调整窗口大小,然后将epub打印到输出为图像文件的虚拟打印机上 - 在使用imageprint的windoze上。

您可以轻松地从iPad产品镜头制作“框架”,并将您的屏幕截图放入其中 - 只有缺少的东西才会像我说的用户界面一样。