1
0
mirror of https://github.com/ciromattia/kcc synced 2025-12-13 01:36:27 +00:00

enable synthetic spreads for all devices (#789)

This commit is contained in:
Alex Xu
2024-12-30 22:15:41 -08:00
committed by GitHub
parent 5875508597
commit 315b6e150d

View File

@@ -298,22 +298,15 @@ def buildOPF(dstdir, title, filelist, cover=None):
"<meta name=\"zero-margin\" content=\"true\"/>\n", "<meta name=\"zero-margin\" content=\"true\"/>\n",
"<meta name=\"ke-border-color\" content=\"#FFFFFF\"/>\n", "<meta name=\"ke-border-color\" content=\"#FFFFFF\"/>\n",
"<meta name=\"ke-border-width\" content=\"0\"/>\n", "<meta name=\"ke-border-width\" content=\"0\"/>\n",
"<meta property=\"rendition:spread\">landscape</meta>\n",
"<meta property=\"rendition:layout\">pre-paginated</meta>\n",
"<meta name=\"orientation-lock\" content=\"none\"/>\n"]) "<meta name=\"orientation-lock\" content=\"none\"/>\n"])
if options.kfx: if options.kfx:
f.writelines(["<meta name=\"region-mag\" content=\"false\"/>\n"]) f.writelines(["<meta name=\"region-mag\" content=\"false\"/>\n"])
else: else:
f.writelines(["<meta name=\"region-mag\" content=\"true\"/>\n"]) f.writelines(["<meta name=\"region-mag\" content=\"true\"/>\n"])
elif options.supportSyntheticSpread: f.writelines([
f.writelines([ "<meta property=\"rendition:spread\">landscape</meta>\n",
"<meta property=\"rendition:spread\">landscape</meta>\n", "<meta property=\"rendition:layout\">pre-paginated</meta>\n"
"<meta property=\"rendition:layout\">pre-paginated</meta>\n" ])
])
else:
f.writelines(["<meta property=\"rendition:orientation\">portrait</meta>\n",
"<meta property=\"rendition:spread\">portrait</meta>\n",
"<meta property=\"rendition:layout\">pre-paginated</meta>\n"])
f.writelines(["</metadata>\n<manifest>\n<item id=\"ncx\" href=\"toc.ncx\" ", f.writelines(["</metadata>\n<manifest>\n<item id=\"ncx\" href=\"toc.ncx\" ",
"media-type=\"application/x-dtbncx+xml\"/>\n", "media-type=\"application/x-dtbncx+xml\"/>\n",
"<item id=\"nav\" href=\"nav.xhtml\" ", "<item id=\"nav\" href=\"nav.xhtml\" ",
@@ -363,67 +356,63 @@ def buildOPF(dstdir, title, filelist, cover=None):
pageside = "left" pageside = "left"
else: else:
pageside = "right" pageside = "right"
if options.iskindle or options.supportSyntheticSpread: for entry in reflist:
for entry in reflist: if options.righttoleft:
if options.righttoleft: if entry.endswith("-a"):
if entry.endswith("-a"): f.write(
f.write( "<itemref idref=\"page_%s\" %s/>\n" % (entry,
"<itemref idref=\"page_%s\" %s/>\n" % (entry, pageSpreadProperty("center"))
pageSpreadProperty("center")) )
) pageside = "right"
pageside = "right" elif entry.endswith("-b"):
elif entry.endswith("-b"): f.write(
f.write( "<itemref idref=\"page_%s\" %s/>\n" % (entry,
"<itemref idref=\"page_%s\" %s/>\n" % (entry, pageSpreadProperty("right"))
pageSpreadProperty("right")) )
) pageside = "right"
pageside = "right" elif entry.endswith("-c"):
elif entry.endswith("-c"): f.write(
f.write( "<itemref idref=\"page_%s\" %s/>\n" % (entry,
"<itemref idref=\"page_%s\" %s/>\n" % (entry, pageSpreadProperty("left"))
pageSpreadProperty("left")) )
) pageside = "right"
pageside = "right"
else:
f.write(
"<itemref idref=\"page_%s\" %s/>\n" % (entry,
pageSpreadProperty(pageside))
)
if pageside == "right":
pageside = "left"
else:
pageside = "right"
else: else:
if entry.endswith("-a"): f.write(
f.write( "<itemref idref=\"page_%s\" %s/>\n" % (entry,
"<itemref idref=\"page_%s\" %s/>\n" % (entry, pageSpreadProperty(pageside))
pageSpreadProperty("center")) )
) if pageside == "right":
pageside = "left"
elif entry.endswith("-b"):
f.write(
"<itemref idref=\"page_%s\" %s/>\n" % (entry,
pageSpreadProperty("left"))
)
pageside = "left"
elif entry.endswith("-c"):
f.write(
"<itemref idref=\"page_%s\" %s/>\n" % (entry,
pageSpreadProperty("right"))
)
pageside = "left" pageside = "left"
else: else:
f.write( pageside = "right"
"<itemref idref=\"page_%s\" %s/>\n" % (entry, else:
pageSpreadProperty(pageside)) if entry.endswith("-a"):
) f.write(
if pageside == "right": "<itemref idref=\"page_%s\" %s/>\n" % (entry,
pageside = "left" pageSpreadProperty("center"))
else: )
pageside = "right" pageside = "left"
else: elif entry.endswith("-b"):
for entry in reflist: f.write(
f.write("<itemref idref=\"page_" + entry + "\"/>\n") "<itemref idref=\"page_%s\" %s/>\n" % (entry,
pageSpreadProperty("left"))
)
pageside = "left"
elif entry.endswith("-c"):
f.write(
"<itemref idref=\"page_%s\" %s/>\n" % (entry,
pageSpreadProperty("right"))
)
pageside = "left"
else:
f.write(
"<itemref idref=\"page_%s\" %s/>\n" % (entry,
pageSpreadProperty(pageside))
)
if pageside == "right":
pageside = "left"
else:
pageside = "right"
f.write("</spine>\n</package>\n") f.write("</spine>\n</package>\n")
f.close() f.close()
os.mkdir(os.path.join(dstdir, 'META-INF')) os.mkdir(os.path.join(dstdir, 'META-INF'))
@@ -1063,7 +1052,6 @@ def checkOptions(options):
options.keep_epub = True options.keep_epub = True
options.format = 'MOBI' options.format = 'MOBI'
options.kfx = False options.kfx = False
options.supportSyntheticSpread = False
if options.format == 'Auto': if options.format == 'Auto':
if options.profile in ['KDX']: if options.profile in ['KDX']:
options.format = 'CBZ' options.format = 'CBZ'
@@ -1075,10 +1063,6 @@ def checkOptions(options):
options.iskindle = True options.iskindle = True
else: else:
options.isKobo = True 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: if options.white_borders:
options.bordersColor = 'white' options.bordersColor = 'white'
if options.black_borders: if options.black_borders: