diff --git a/src/calibre/ebooks/mobi/output.py b/src/calibre/ebooks/mobi/output.py
index 301e0a5a67..84860d3d0f 100644
--- a/src/calibre/ebooks/mobi/output.py
+++ b/src/calibre/ebooks/mobi/output.py
@@ -47,6 +47,7 @@ class MOBIOutput(OutputFormatPlugin):
from calibre.ebooks.oeb.transforms.manglecase import CaseMangler
from calibre.ebooks.oeb.transforms.rasterize import SVGRasterizer
from calibre.ebooks.oeb.transforms.htmltoc import HTMLTOCAdder
+ from calibre.customize.ui import plugin_for_input_format
imagemax = PALM_MAX_IMAGE_SIZE if opts.rescale_images else None
tocadder = HTMLTOCAdder(title=opts.toc_title)
tocadder(oeb, opts)
@@ -56,8 +57,11 @@ class MOBIOutput(OutputFormatPlugin):
rasterizer(oeb, opts)
mobimlizer = MobiMLizer(ignore_tables=opts.linearize_tables)
mobimlizer(oeb, opts)
+ write_page_breaks_after_item = not input_plugin is plugin_for_input_format('cbz')
+ print 111111, write_page_breaks_after_item
writer = MobiWriter(opts, imagemax=imagemax,
compression=UNCOMPRESSED if opts.dont_compress else PALMDOC,
- prefer_author_sort=opts.prefer_author_sort)
+ prefer_author_sort=opts.prefer_author_sort,
+ write_page_breaks_after_item=write_page_breaks_after_item)
writer(oeb, output_path)
diff --git a/src/calibre/ebooks/mobi/writer.py b/src/calibre/ebooks/mobi/writer.py
index 07bc713b94..28aacd6e07 100644
--- a/src/calibre/ebooks/mobi/writer.py
+++ b/src/calibre/ebooks/mobi/writer.py
@@ -156,10 +156,11 @@ def rescale_image(data, maxsizeb, dimen=None):
class Serializer(object):
NSRMAP = {'': None, XML_NS: 'xml', XHTML_NS: '', MBP_NS: 'mbp'}
- def __init__(self, oeb, images):
+ def __init__(self, oeb, images, write_page_breaks_after_item=True):
self.oeb = oeb
self.images = images
self.logger = oeb.logger
+ self.write_page_breaks_after_item = write_page_breaks_after_item
self.id_offsets = {}
self.href_offsets = defaultdict(list)
self.breaks = []
@@ -239,7 +240,8 @@ class Serializer(object):
self.id_offsets[item.href] = buffer.tell()
for elem in item.data.find(XHTML('body')):
self.serialize_elem(elem, item)
- buffer.write('')
+ if self.write_page_breaks_after_item:
+ buffer.write('')
def serialize_elem(self, elem, item, nsrmap=NSRMAP):
buffer = self.buffer
@@ -319,8 +321,9 @@ class MobiWriter(object):
COLLAPSE_RE = re.compile(r'[ \t\r\n\v]+')
def __init__(self, opts, compression=PALMDOC, imagemax=None,
- prefer_author_sort=False):
+ prefer_author_sort=False, write_page_breaks_after_item=True):
self.opts = opts
+ self.write_page_breaks_after_item = write_page_breaks_after_item
self._compression = compression or UNCOMPRESSED
self._imagemax = imagemax or OTHER_MAX_IMAGE_SIZE
self._prefer_author_sort = prefer_author_sort
@@ -583,7 +586,8 @@ class MobiWriter(object):
def _generate_text(self):
self._oeb.logger.info('Serializing markup content...')
- serializer = Serializer(self._oeb, self._images)
+ serializer = Serializer(self._oeb, self._images,
+ write_page_breaks_after_item=self.write_page_breaks_after_item)
breaks = serializer.breaks
text = serializer.text
self._id_offsets = serializer.id_offsets