diff --git a/src/calibre/ebooks/html.py b/src/calibre/ebooks/html.py
index 32601320d4..2e2a27e172 100644
--- a/src/calibre/ebooks/html.py
+++ b/src/calibre/ebooks/html.py
@@ -561,28 +561,16 @@ class Processor(Parser):
for elem in self.detected_chapters:
text = u' '.join([t.strip() for t in elem.xpath('descendant::text()')])
self.log_info('\tDetected chapter: %s', text[:50])
- if self.opts.chapter_mark != 'none':
- hr = etree.Element('hr')
- if elem.getprevious() is None:
- elem.getparent()[:0] = [hr]
- elif elem.getparent() is not None:
- insert = None
- for i, c in enumerate(elem.getparent()):
- if c is elem:
- insert = i
- break
- elem.getparent()[insert:insert] = [hr]
- if self.opts.chapter_mark != 'rule':
- hr.set('style', 'width:0pt;page-break-before:always')
- if self.opts.chapter_mark == 'both':
- hr2 = etree.Element('hr')
- hr2.tail = u'\u00a0'
- p = hr.getparent()
- i = p.index(hr)
- p[i:i] = [hr2]
-
-
-
+ chapter_mark = self.opts.chapter_mark
+ if chapter_mark != 'none':
+ tag = 'hr' if chapter_mark != 'pagebreak' else 'br'
+ mark = etree.Element(tag)
+ elem.addprevious(mark)
+ if chapter_mark == 'both':
+ mark.set('style', 'page-break-before: always')
+ elif chapter_mark == 'pagebreak':
+ mark.set('style', 'page-break-after: always')
+
def save(self):
style_path = os.path.splitext(os.path.basename(self.save_path()))[0]
for i, sheet in enumerate([self.stylesheet, self.font_css, self.override_css]):