diff --git a/R/print.R b/R/print.R
index 344d43d..cc0e97b 100644
--- a/R/print.R
+++ b/R/print.R
@@ -38,10 +38,16 @@
 #' @export
 knit_print.kableExtra <- function(x, ...) {
   x <- paste0(x, "\n\n")
-  meta_list <- list(html_dependency_kePrint())
-  bs <- getOption("kableExtra.html.bsTable", default = FALSE)
-  if (bs) {
-    meta_list[[2]] <- html_dependency_bsTable()
+  kp_dependency <- getOption("kableExtra.knit_print.dependency",
+                             default = TRUE)
+  if (kp_dependency) {
+    meta_list <- list(html_dependency_kePrint())
+    bs <- getOption("kableExtra.html.bsTable", default = FALSE)
+    if (bs) {
+      meta_list[[2]] <- html_dependency_bsTable()
+    }
+  } else {
+    meta_list <- NULL
   }
   asis_output(x, meta = meta_list)
 }
diff --git a/R/util.R b/R/util.R
index bfc2d36..6e174d7 100644
--- a/R/util.R
+++ b/R/util.R
@@ -68,10 +68,6 @@
 }
 
 as_kable_xml <- function(x) {
-  # tmp <- tempfile(fileext = ".xml")
-  # write_xml(x, tmp, options = c("no_declaration", "format_whitespace", "as_html"))
-  # out <- read_file(tmp)
-  # out <- structure(out, format = "html", class = "knitr_kable")
   out <- structure(as.character(x), format = "html", class = "knitr_kable")
   return(out)
 }
diff --git a/R/zzz.R b/R/zzz.R
index fcdac4b..e7b3c60 100644
--- a/R/zzz.R
+++ b/R/zzz.R
@@ -24,4 +24,8 @@
       )) {
     options(kableExtra.html.bsTable = TRUE)
   }
+  if (!is.null(knitr::opts_knit$get("rmarkdown.pandoc.to")) &&
+      knitr::opts_knit$get("rmarkdown.pandoc.to") %in% c("epub3", "epub")) {
+    options(kableExtra.knit_print.dependency = FALSE)
+  }
 }
