JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>

<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
  <div class="modal-dialog">

    <!-- Modal content-->
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Modal Header</h4>
      </div>
      <div class="modal-body" id="print_data">
        <p>Some text in the modal.</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-warning" onclick="printData()">Print</button>
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div>

  </div>
</div>

<div id="printContents">

</div>

JavaScript

function printData() {
  var printContents = document.getElementById('print_data').innerHTML;
  document.getElementById('printContents').style.display = "block";
  document.getElementById('printContents').innerHTML = printContents;
  var allElements = document.body.children;
  for (var i = 0; i < allElements.length; i++) {
    if (allElements[i].getAttribute('id') !== "printContents") {
      allElements[i].style.display = "none";
    }
  }

  window.print();

  for (var i = 0; i < allElements.length; i++) {
    if (allElements[i].getAttribute('id') !== "printContents") {
      allElements[i].style.display = "block";
    } else {
      allElements[i].style.display = "none";
    }
  }
}