В этой статье мы узнаем, как конвертировать HTML в PDF с помощью JavaScript. Формат PDF-файла очень полезен для массового восстановления данных в веб-приложениях. Это помогает пользователю загружать динамический контент в формате файла для автономного использования с экспортом PDF. JavaScript — это самый простой способ конвертировать HTML в PDF, и существуют различные библиотеки JavaScript для создания PDF-файлов из HTML. printThis — одна из лучших библиотек для преобразования HTML в PDF с помощью JavaScript. В этом уроке мы покажем вам, как создать документ PDF и преобразовать HTML в PDF с помощью JavaScript и библиотеки jsPDF.
См. также
- Конвертируйте HTML в PDF в PHP с помощью Dompdf
- Как импортировать и экспортировать файлы CSV с помощью PHP и MySQL
- Создать PDF-файл из базы данных MySQL с помощью PHP
- Как экспортировать данные Excel из базы данных в PHP с помощью электронной таблицы
- Импорт файла Excel в базу данных MySQL на PHP с помощью электронной таблицы
Включить библиотеку printThis
<script src="https://cdnjs.cloudflare.com/ajax/libs/printThis/1.15.0/printThis.min.js"></script>
Конвертируйте HTML-контент в PDF с помощью JavaScript
Сначала мы создадим HTML-страницу для преобразования HTML в PDF. Добавьте следующий код на свою HTML-страницу. нам нужно добавить библиотеки jquery и printThis, которые помогут нам конвертировать HTML в PDD с помощью JavaScript. Это очень простой и простой способ конвертировать HTML в PDF.
index.php
<!DOCTYPE html>
<html>
<head>
<title>How to Convert HTML to PDF using JavaScript</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="container">
<h2>How to Convert HTML to PDF using JavaScript </h2>
</div>
<div class="container invoice-box">
<div class="row">
<div class="col-xs-12">
<div class="invoice-title">
<h2>Invoice</h2><h3 class="pull-right">Order # WC451544</h3>
</div>
<hr>
<div class="row">
<div class="col-xs-6">
<address>
<strong>Billed To:</strong><br>
Webs Codex<br>
1993 Hickory Lane<br>
Washington DC<br>
Washington, DC 20009
</address>
</div>
<div class="col-xs-6 text-right">
<address>
<strong>Billed To:</strong><br>
Webs Codex<br>
1993 Hickory Lane<br>
Washington DC<br>
Washington, DC 20009
</address>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<address>
<strong>Payment Method:</strong><br>
Visa ending **** 4242<br>
[email protected]
</address>
</div>
<div class="col-xs-6 text-right">
<address>
<strong>Order Date:</strong><br>
August 01, 2023<br><br>
</address>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><strong>Order summary</strong></h3>
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-condensed">
<thead>
<tr>
<td><strong>Item</strong></td>
<td class="text-center"><strong>Price</strong></td>
<td class="text-center"><strong>Quantity</strong></td>
<td class="text-right"><strong>Totals</strong></td>
</tr>
</thead>
<tbody>
<!-- foreach ($order->lineItems as $line) or some such thing here -->
<tr>
<td>BS-200</td>
<td class="text-center">$10.99</td>
<td class="text-center">1</td>
<td class="text-right">$10.99</td>
</tr>
<tr>
<td>BS-400</td>
<td class="text-center">$20.00</td>
<td class="text-center">3</td>
<td class="text-right">$60.00</td>
</tr>
<tr>
<td>BS-1000</td>
<td class="text-center">$600.00</td>
<td class="text-center">1</td>
<td class="text-right">$600.00</td>
</tr>
<tr>
<td class="thick-line"></td>
<td class="thick-line"></td>
<td class="thick-line text-center"><strong>Subtotal</strong></td>
<td class="thick-line text-right">$670.99</td>
</tr>
<tr>
<td class="no-line"></td>
<td class="no-line"></td>
<td class="no-line text-center"><strong>Shipping</strong></td>
<td class="no-line text-right">$15</td>
</tr>
<tr>
<td class="no-line"></td>
<td class="no-line"></td>
<td class="no-line text-center"><strong>Total</strong></td>
<td class="no-line text-right">$685.99</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div style="text-align: center; padding-top: 20px;">
<button type="button" class="btn btn-success" id="print-btn">Print</button>
</div>
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/printThis/1.15.0/printThis.min.js"></script>
</body>
</html>
Добавьте немного стиля к дизайну, чтобы сделать HTML-страницу привлекательной.
style.css
.invoice-title h2, .invoice-title h3 {
display: inline-block;
}
.table > tbody > tr > .no-line {
border-top: none;
}
.table > thead > tr > .no-line {
border-bottom: none;
}
.table > tbody > tr > .thick-line {
border-top: 2px solid;
}
.invoice-box{
background: #f2f2f2;
box-shadow: rgba(0, 0, 0, 0.02) 0px 1px 3px 0px, rgba(27, 31, 35, 0.15) 0px 0px 0px 1px;
}
h2{
text-align: center;
font-size: 30px;
font-weight: 600;
font-family: revert;
color: green;
}
Добавьте код JavaScript для преобразования HTML-файла в PDF
<script type="text/javascript">
$(document).ready(function(){
$("#print-btn").click(function(){
$(".invoice-box").printThis();
});
});
</script>
https://webscodex.com/how-to-convert-html-to-pdf-using-javascript/
Заключение
В этой статье я объяснил процесс Как конвертировать HTML в PDF с помощью библиотеки javascript printThis. Я попробовал очень простой способ конвертировать HTML в PDF с помощью javascript. Вы можете легко расширить функционал в соответствии с вашими потребностями. Чтобы получить все необходимые файлы, скачайте исходный код.