Quote:
Originally Posted by kovidgoyal
But impmake exists only on windows and under wine?
|
impmake uses SB PubX (bundled with eBook Publisher) via COM, which exists only on Windows. eBook Publisher is also available on OS X, but I don't know if it can be automated (AppleScript?) as I don't have access to a Mac. For Linux, WINE is the only solution.
Quote:
Originally Posted by scruffy
I think there are a few options...
1) impmake
1a) or maybe using lit2sb (ie the perl script that Nick extracted/tweaked see https://www.mobileread.com/forums/showthread.php?t=28138 )
1b) or any other tool that needs the SBPublisher.Builder to make an imp.
Since Calibre can generate a opf and a cover image, a reduced version of lit2sb (ie ignoring the lit extract code parts) should suffice. Requires windows for SBPublisher, so it's not cross platform. [That hasn't stopped other tools like PDFRead from this answer, just don't continue on to creating an IMP on non-windows platforms... stop with the html/OPF/Cover, which is near exactly where Calibre stands today.]
2) Convert code (written in VB?) into python from
http://krausyaoj.tripod.com/reb1200.htm
License is open enough to allow using hunks of code wholesale likely, and at the end, hopefully we have a python native imp builder. (subst Perl or other language for Python if you wish.)
3?) rbmake: http://rbmake.sourceforge.net/rbmake.html
Completely opensource, and has the advantage of supporting older Rocket readers. But converting from rb to imp isn't trivial, though... so this isn't really a good answer, since it would require using something else to convert to imp still... but might be worth considering, if someone wanted the older readers to work with Calibre in the future.
|
All of the tools mentioned in 1 and 2 internally use the SBPubX via COM as no one has managed a complete reverse engineering yet [you'd need to extract the fonts and parse the bitmap NFNT fonts from the DLL + reproduce their HTML renderer -- I've tried it and given it up in front of taking the impmake approach]. For rbmake, it's best if we call the executable like I discussed above.