diff --git a/kindlecomicconverter/comic2ebook.py b/kindlecomicconverter/comic2ebook.py
index 9cdeee7..d33a68f 100755
--- a/kindlecomicconverter/comic2ebook.py
+++ b/kindlecomicconverter/comic2ebook.py
@@ -302,6 +302,11 @@ def buildOPF(dstdir, title, filelist, cover=None):
else:
f.writelines(["\n",
"\n"])
+ elif options.supportSyntheticSpread:
+ f.writelines([
+ "landscape\n",
+ "pre-paginated\n"
+ ])
else:
f.writelines(["portrait\n",
"portrait\n",
@@ -334,38 +339,64 @@ def buildOPF(dstdir, title, filelist, cover=None):
f.write(" \n")
f.write("- \n")
+
+
+ def pageSpreadProperty(pageside):
+ if options.iskindle:
+ return "linear=\"yes\" properties=\"page-spread-%s\"" % pageside
+ elif options.isKobo:
+ return "properties=\"rendition:page-spread-%s\"" % pageside
+ else:
+ return ""
+
if options.righttoleft:
f.write("\n\n")
pageside = "right"
else:
f.write("\n\n")
pageside = "left"
- if options.iskindle:
+ if options.iskindle or options.supportSyntheticSpread:
for entry in reflist:
if options.righttoleft:
if entry.endswith("-b"):
- f.write("\n")
+ f.write(
+ "\n" % (entry,
+ pageSpreadProperty("right"))
+ )
pageside = "right"
elif entry.endswith("-c"):
- f.write("\n")
+ f.write(
+ "\n" % (entry,
+ pageSpreadProperty("left"))
+ )
pageside = "right"
else:
- f.write("\n")
+ f.write(
+ "\n" % (entry,
+ pageSpreadProperty(pageside))
+ )
if pageside == "right":
pageside = "left"
else:
pageside = "right"
else:
if entry.endswith("-b"):
- f.write("\n")
+ f.write(
+ "\n" % (entry,
+ pageSpreadProperty("left"))
+ )
pageside = "left"
elif entry.endswith("-c"):
- f.write("\n")
+ f.write(
+ "\n" % (entry,
+ pageSpreadProperty("right"))
+ )
pageside = "left"
else:
- f.write("\n")
+ f.write(
+ "\n" % (entry,
+ pageSpreadProperty(pageside))
+ )
if pageside == "right":
pageside = "left"
else:
@@ -982,6 +1013,7 @@ def makeParser():
def checkOptions(options):
options.panelview = True
options.iskindle = False
+ options.isKobo = False
options.bordersColor = None
options.keep_epub = False
if options.format == 'EPUB-200MB':
@@ -993,6 +1025,7 @@ def checkOptions(options):
options.keep_epub = True
options.format = 'MOBI'
options.kfx = False
+ options.supportSyntheticSpread = False
if options.format == 'Auto':
if options.profile in ['K1', 'K2', 'K34', 'K578', 'KPW', 'KPW5', 'KV', 'KO', 'K11', 'KS']:
options.format = 'MOBI'
@@ -1003,6 +1036,12 @@ def checkOptions(options):
options.format = 'CBZ'
if options.profile in ['K1', 'K2', 'K34', 'K578', 'KPW', 'KPW5', 'KV', 'KO', 'K11', 'KS']:
options.iskindle = True
+ elif options.profile in ['OTHER', 'KoMT', 'KoG', 'KoGHD', 'KoA', 'KoAHD', 'KoAH2O', 'KoAO', 'KoF']:
+ options.isKobo = True
+ # Other Kobo devices probably support synthetic spreads as well, but
+ # they haven't been tested.
+ if options.profile in ['KoF']:
+ options.supportSyntheticSpread = True
if options.white_borders:
options.bordersColor = 'white'
if options.black_borders: