diff --git a/print/print_pdf/print_pdf.admin.inc b/print/print_pdf/print_pdf.admin.inc
index df2c105..f27c82c 100644
--- a/print/print_pdf/print_pdf.admin.inc
+++ b/print/print_pdf/print_pdf.admin.inc
@@ -262,10 +262,12 @@ function _print_pdf_settings_validate($form, &$form_state) {
 function _print_pdf_tools() {
   $tools = array_keys(file_scan_directory(drupal_get_path('module', 'print'), '^dompdf_config.inc.php$'));
   $tools = array_merge($tools, array_keys(file_scan_directory(drupal_get_path('module', 'print'), '^tcpdf.php$')));
+  $tools = array_merge($tools, array_keys(file_scan_directory(drupal_get_path('module', 'print'), '^mpdf.php$')));
   $tools = array_merge($tools, array_keys(file_scan_directory(drupal_get_path('module', 'print'), '^wkhtmltopdf')));
   $tools = array_merge($tools, array_keys(file_scan_directory(PRINT_PDF_LIB_PATH, '^dompdf_config.inc.php$')));
   $tools = array_merge($tools, array_keys(file_scan_directory(PRINT_PDF_LIB_PATH, '^tcpdf.php$')));
   $tools = array_merge($tools, array_keys(file_scan_directory(PRINT_PDF_LIB_PATH, '^wkhtmltopdf')));
+  $tools = array_merge($tools, array_keys(file_scan_directory(PRINT_PDF_LIB_PATH, '^mpdf.php$')));
 
   $num_tools = count($tools);
 
diff --git a/print/print_pdf/print_pdf.pages.inc b/print/print_pdf/print_pdf.pages.inc
index 5d61464..609b366 100644
--- a/print/print_pdf/print_pdf.pages.inc
+++ b/print/print_pdf/print_pdf.pages.inc
@@ -73,6 +73,9 @@ function print_pdf_controller() {
   elseif (basename($print_pdf_pdf_tool) == 'tcpdf.php') {
     _print_pdf_tcpdf($print, $html, $pdf_filename);
   }
+  elseif (basename($print_pdf_pdf_tool) == 'mpdf.php') {
+    _print_pdf_mpdf($print, $html, $pdf_filename);
+  }
   elseif (substr(basename($print_pdf_pdf_tool, '.exe'), 0, 11) == 'wkhtmltopdf') {
     _print_pdf_wkhtmltopdf($print, $html, $pdf_filename);
   }
@@ -128,6 +131,36 @@ function _print_pdf_file_access_images($html) {
 }
 
 /**
+ * Generate the PDF file using the mPDF library
+ *
+ * @param $print
+ *   array containing the configured data
+ * @param $html
+ *   contents of the post-processed template already with the node data
+ * @param $filename
+ *   name of the PDF file to be generated
+ * @see print_pdf_controller()
+ */
+function _print_pdf_mpdf($print, $html, $filename) {
+  $print_pdf_pdf_tool = variable_get('print_pdf_pdf_tool', PRINT_PDF_PDF_TOOL_DEFAULT);
+  $print_pdf_paper_size = variable_get('print_pdf_paper_size', PRINT_PDF_PAPER_SIZE_DEFAULT);
+  $print_pdf_page_orientation = variable_get('print_pdf_page_orientation', PRINT_PDF_PAGE_ORIENTATION_DEFAULT);
+  $print_pdf_content_disposition = variable_get('print_pdf_content_disposition', PRINT_PDF_CONTENT_DISPOSITION_DEFAULT);
+  require_once($print_pdf_pdf_tool);
+
+  $format = ($print_pdf_page_orientation == "landscape") ? $print_pdf_paper_size . "-L" : $print_pdf_paper_size;
+
+  $mpdf = new mPDF('UTF-8', $format);
+  $mpdf->WriteHTML($html);
+  if ($print_pdf_content_disposition == 2) { // force download
+    $mpdf->Output($filename, 'D');
+  }
+  else {
+    $mpdf->Output($filename, 'I');
+  }
+}
+
+/**
  * Generate the PDF file using the dompdf library
  *
  * @param $print
