diff --git a/packages/components/Epub/EpubBackend.js b/packages/components/Epub/EpubBackend.js
index 6b4d6d24a25cb0cf621f7b9c5767724bd5094534..9d5d74ae8146c9302c1440c27b25bd156fdedaee 100644
--- a/packages/components/Epub/EpubBackend.js
+++ b/packages/components/Epub/EpubBackend.js
@@ -148,6 +148,20 @@ const EpubBackend = app => {
       res.status(500).json({ error: error.message })
     }
   })
+  app.use('/api/pagedStyler/exportHTML/:id/', async (req, res, next) => {
+    const { id } = req.params
+    const path = `${process.cwd()}/uploads/paged/${id}/index.html`
+
+    try {
+      const file = await readFile(path)
+      res.setHeader('Content-Type', 'text/html')
+      res.setHeader('Content-Disposition', `attachment; filename=${id}.html`)
+      res.write(file, 'binary')
+      res.end()
+    } catch (error) {
+      res.status(500).json({ error: error.message })
+    }
+  })
 }
 
 const writeFile = (location, content) =>
@@ -157,5 +171,12 @@ const writeFile = (location, content) =>
       return resolve()
     })
   })
+const readFile = location =>
+  new Promise((resolve, reject) => {
+    fs.readFile(location, 'binary', (err, data) => {
+      if (err) return reject(err)
+      return resolve(data)
+    })
+  })
 
 module.exports = EpubBackend
diff --git a/packages/components/Epub/converters/wax-paged-default.js b/packages/components/Epub/converters/wax-paged-default.js
index 3cf747bcb7c72077bfc604af0337172434f73231..99fcb1874fd3ec37d08ab52d4523c11b44d320c6 100644
--- a/packages/components/Epub/converters/wax-paged-default.js
+++ b/packages/components/Epub/converters/wax-paged-default.js
@@ -144,6 +144,16 @@ module.exports = (
     }
   })
 
+  $('highlighter').each((i, elem) => {
+    const $elem = $(elem)
+    $elem.replaceWith($elem.text())
+  })
+  $('ornament').each((i, elem) => {
+    const $elem = $(elem)
+    const hr = $('<hr>')
+    $elem.replaceWith(hr)
+  })
+
   // replace inline notes with endnotes
   $('note').each((i, elem) => {
     const $elem = $(elem)
diff --git a/packages/components/Epub/converters/wax-paged-ucp.js b/packages/components/Epub/converters/wax-paged-ucp.js
index 97215b934c26b0b2317e0dfb4b9d8e94c2590f9b..5257a2278b81466ac33832dc37e7cc2287deb0dd 100644
--- a/packages/components/Epub/converters/wax-paged-ucp.js
+++ b/packages/components/Epub/converters/wax-paged-ucp.js
@@ -144,7 +144,15 @@ module.exports = (
       $elem.remove()
     }
   })
-
+  $('highlighter').each((i, elem) => {
+    const $elem = $(elem)
+    $elem.replaceWith($elem.text())
+  })
+  $('ornament').each((i, elem) => {
+    const $elem = $(elem)
+    const hr = $('<hr>')
+    $elem.replaceWith(hr)
+  })
   const hasNotes = $('note').length > 0
 
   if (hasNotes) {
diff --git a/packages/components/Epub/converters/wax-vivliostyle-default.js b/packages/components/Epub/converters/wax-vivliostyle-default.js
index 4198412e53be33119d20e162730650703c2efce2..15f19d6b73a6b5005a8fff7651dd448f287bb08d 100644
--- a/packages/components/Epub/converters/wax-vivliostyle-default.js
+++ b/packages/components/Epub/converters/wax-vivliostyle-default.js
@@ -168,6 +168,16 @@ module.exports = (
     }
   })
 
+  $('highlighter').each((i, elem) => {
+    const $elem = $(elem)
+    $elem.replaceWith($elem.text())
+  })
+  $('ornament').each((i, elem) => {
+    const $elem = $(elem)
+    const hr = $('<hr>')
+    $elem.replaceWith(hr)
+  })
+
   // replace inline notes with endnotes
   $('note').each((i, elem) => {
     const $elem = $(elem)
diff --git a/packages/components/Epub/converters/wax-vivliostyle-ucp.js b/packages/components/Epub/converters/wax-vivliostyle-ucp.js
index 77107b4f59a6dbd130cf3157c7e551ff72468ad6..79bad790a038482e6f2eb14a1ee4ad052b9a2223 100644
--- a/packages/components/Epub/converters/wax-vivliostyle-ucp.js
+++ b/packages/components/Epub/converters/wax-vivliostyle-ucp.js
@@ -164,6 +164,17 @@ module.exports = (
       $elem.remove()
     }
   })
+
+  $('highlighter').each((i, elem) => {
+    const $elem = $(elem)
+    $elem.replaceWith($elem.text())
+  })
+  $('ornament').each((i, elem) => {
+    const $elem = $(elem)
+    const hr = $('<hr>')
+    $elem.replaceWith(hr)
+  })
+
   const hasNotes = $('note').length > 0
 
   if (hasNotes) {
diff --git a/packages/components/Epub/pagednation.js b/packages/components/Epub/pagednation.js
index 7a3f9cb3a8f702ef22abe1a74c523f06867b3cca..a76df87a34dd4ec1278a7141035cae18fc68deff 100644
--- a/packages/components/Epub/pagednation.js
+++ b/packages/components/Epub/pagednation.js
@@ -3,7 +3,9 @@ const cheerio = require('cheerio')
 const create = async (book, parts, resourceRoot, stylesRoot, fontsRoot) => {
   const output = cheerio.load(
     `<!DOCTYPE html><html><head><title>${book.title}</title>
-    <meta charset="UTF-8"></head><body class="hyphenate" lang="en-us"></body></html>`,
+    <meta charset="UTF-8"></head><body class="hyphenate" lang="en-us"><section class="titlepage"><header><h1 class="booktitle">${
+      book.title
+    }</h1></header></section></body></html>`,
   )
   const TOC = createTOC(parts)
   output('body').append(TOC.html())