EPUB Studio is a Python GUI application (using wxPython) designed to create or edit non-DRM EPUB volumes. Think of it as a simplified Calibre or Sigil that focuses on simplicity. This originally started as a C# .NET application to create EPUBs that I wrote to learn more about the EPUB format, and because (at the time) there was not a good way of creating EPUBs from HTML files.
Cross-development using Aptana Studio 3 started on 32-bit Python 2.6.1 on both Mac OS X 10.6.6 and Windows 7 64-bit using wxPython 2.8.9 32-bit.
Current requirements:
- Python v2.7.3
- wxPython v2.8.12.1 32-bit
- wxFormBuilder v3.1.70
- Mako v0.4.1
- xmlpp (v?) (included with changes to modify printing options)
- unzip from Doug Tolton v1.1 (included)
- DirTreeCtrl v0.9.0 (included)
This has not been test on a Linux distribution.
The application can be used to create an EPUB file from a single HTML file or it can be used to edit non-DRM EPUB files. The application will enter the correct mode based on the file extension opened.
The application will parse the document meta data based on the following filename format (each section delimited by ' - ' ([space][dash][space]):
{Book Name} - {Author Last, Author First} - {Publisher(s)} - {Year} - {Comma separated list of subjects}.html
The application expects an HTML file with up to 3 levels of chapters (based on <H1>, <H2>, and <H3>). You can have other standard HTML tags as long as they are supported by your EPUB reader. The application will automatically add a cover image if it is named:
{Author Lastname (no spaces)}_{Title (no spaces)}.jpg
To change how the Chapter titles are rendered, you can edit the "chapter.xml" template found in the support folder.
Once happy with the EPUB, simply save it to disk!
Select the EPUB file from the "Open file..." dialog and the application will extract the contents of the EPUB to a temp folder. You can make any necessary changes to the individual files and resave the non-DRM EPUB.
The Preferences Dialog allows you to store a TODO.
None at this time — other than hoping to learn from better Python programmers than myself.