layui打印html页面转成pdf

<!DOCTYPE html>
<html lang="zh">
<head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Document</title>
        <link rel="stylesheet" type="text/css" href="lib/layui/css/layui.css"/>
        <script src="lib/layui/layui.js" type="text/javascript" charset="utf-8"></script>
                <script language="javascript">
    function preview(oper)
    {
        if (oper < 10){
            bdhtml=window.document.body.innerHTML;//获取当前页的html代码
            sprnstr="<!--startprint"+oper+"-->";//设置打印开始区域
            eprnstr="<!--endprint"+oper+"-->";//设置打印结束区域
            prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //从开始代码向后取html
            prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//从结束代码向前取html
            window.document.body.innerHTML=prnhtml;
            window.print();
            window.document.body.innerHTML=bdhtml;
        } else {
            window.print();
        }
    }
</script>
            <!--打印-->
</head>
<body>
    <style type="text/css">
            .layui-tab-item{
                margin-top: 100px;
            }
            .layui-this{
                    background-color: orange;
            }
        </style>
    <div class="layui-tab">
      <ul class="layui-tab-title">
        <li class="layui-this">
            <table border="1" align="center" id="informationtable">
            <tr>
                <th>年龄1</th>
                <th>身高</th>
                <th>体重</th>
                <th>疾病史</th>
            </tr>
            <tr>
                <td>61岁    </td>
                <td>161cm</td>
                <td>61kg</td>
                <td>高血压、糖尿病</td>
            </tr>
        </table>
        </li>
        <!--标签1-->
        <li>
        <table border="1" align="center" id="informationtable">
            <tr>
                <th>年龄2</th>
                <th>身高</th>
                <th>体重</th>
                <th>疾病史</th>
            </tr>
            <tr>
                <td>61岁    </td>
                <td>161cm</td>
                <td>61kg</td>
                <td>高血压、糖尿病</td>
            </tr>
        </table>
        </li>
         <!--标签2-->
        <li>
        <table border="1" align="center" id="informationtable">
            <tr>
                <th>年龄2</th>
                <th>身高</th>
                <th>体重</th>
                <th>疾病史</th>
            </tr>
            <tr>
                <td>61岁    </td>
                <td>161cm</td>
                <td>61kg</td>
                <td>高血压、糖尿病</td>
            </tr>
        </table>
        </li>
        <!--标签3-->
        <li>
        <table border="1" align="center" id="informationtable">
            <tr>
                <th>年龄2</th>
                <th>身高</th>
                <th>体重</th>
                <th>疾病史</th>
            </tr>
            <tr>
                <td>61岁    </td>
                <td>161cm</td>
                <td>61kg</td>
                <td>高血压、糖尿病</td>
            </tr>
        </table>
        </li>
       <li>
           <!--标签4-->
        <table border="1" align="center" id="informationtable">
            <tr>
                <th>年龄2</th>
                <th>身高</th>
                <th>体重</th>
                <th>疾病史</th>
            </tr>
            <tr>
                <td>61岁    </td>
                <td>161cm</td>
                <td>61kg</td>
                <td>高血压、糖尿病</td>
            </tr>
        </table>
        </li>
        <!--标签5-->
      </ul>
      <!--startprint1-->
    <!--打印内容开始-->
      <div class="layui-tab-content">
        <div class="layui-tab-item layui-show">
            <table border="1" align="center" id="informationtable">
            <tr>
                <th>年龄1</th>
                <th>身高</th>
                <th>体重</th>
                <th>疾病史</th>
            </tr>
            <tr>
                <td>61岁    </td>
                <td>161cm</td>
                <td>61kg</td>
                <td>高血压、糖尿病</td>
            </tr>
        </table>
        </div>
        <!--对应1-->
        <div class="layui-tab-item"><table border="1" align="center" id="informationtable">
            <tr>
                <th>年龄2</th>
                <th>身高</th>
                <th>体重</th>
                <th>疾病史</th>
            </tr>
            <tr>
                <td>61岁    </td>
                <td>161cm</td>
                <td>61kg</td>
                <td>高血压、糖尿病</td>
            </tr>
        </table></div>
        <!--对应2-->
           <div class="layui-tab-item"><table border="1" align="center" id="informationtable">
            <tr>
                <th>年龄3</th>
                <th>身高</th>
                <th>体重</th>
                <th>疾病史</th>
            </tr>
            <tr>
                <td>61岁    </td>
                <td>161cm</td>
                <td>61kg</td>
                <td>高血压、糖尿病</td>
            </tr>
        </table></div>
        <!--对应3-->
            <div class="layui-tab-item"><table border="1" align="center" id="informationtable">
            <tr>
                <th>年龄4</th>
                <th>身高</th>
                <th>体重</th>
                <th>疾病史</th>
            </tr>
            <tr>
                <td>61岁    </td>
                <td>161cm</td>
                <td>61kg</td>
                <td>高血压、糖尿病</td>
            </tr>
        </table></div>
        <!--对应4-->
            <div class="layui-tab-item"><table border="1" align="center" id="informationtable">
            <tr>
                <th>年龄5</th>
                <th>身高</th>
                <th>体重</th>
                <th>疾病史</th>
            </tr>
            <tr>
                <td>61岁    </td>
                <td>161cm</td>
                <td>61kg</td>
                <td>高血压、糖尿病</td>
            </tr>
        </table></div>
        <!--对应5-->
      </div>
      <!--打印内容结束-->
    <!--endprint1-->

</div>
<div class="layui-inline" title="打印"  onclick=preview(1) ><i class="layui-icon layui-icon-face-smile" style="font-size: 30px; color: #1E9FFF;">&#xe621;</i></div>
<!--     <input type=button name='button_export' title='打印' οnclick=preview(1) value=打印1>-->

<script>
    layui.use('element', function(){
        var element = layui.element;
    });
</script>
</body>
</html>

 

转载于:https://www.cnblogs.com/zeussbook/p/9996905.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现 layui 和 Java 导出 PDF 格式,可以借助 iText 这个 Java PDF 库。以下是一个简单的示例代码: 1. 在前端页面中添加一个导出按钮: ```html <button class="layui-btn layui-btn-sm" id="exportBtn">导出 PDF</button> ``` 2. 在前端页面中引入 layui 和 jQuery 库,并编写导出功能的 JavaScript 代码: ```javascript // 导出 PDF $("#exportBtn").on("click", function() { // 获取表格数据 var tableData = []; $("#tableId tbody tr").each(function() { var row = []; $(this).find("td").each(function() { row.push($(this).text()); }); tableData.push(row); }); // 发送请求导出 PDF $.ajax({ url: "/exportPdf", type: "POST", data: JSON.stringify(tableData), contentType: "application/json; charset=utf-8", responseType: "blob", success: function(response) { // 下载 PDF 文件 var blob = new Blob([response], {type: "application/pdf"}); var filename = "table.pdf"; var downloadUrl = window.URL.createObjectURL(blob); var a = document.createElement("a"); a.href = downloadUrl; a.download = filename; a.click(); window.URL.revokeObjectURL(downloadUrl); } }); }); ``` 3. 在后端 Java 代码中,使用 iText 生成 PDF 文件: ```java @PostMapping("/exportPdf") public ResponseEntity<byte[]> exportPdf(@RequestBody List<List<String>> tableData) throws Exception { // 创建 PDF 文档 ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfWriter.getInstance(new Document(), baos); Document document = new Document(); PdfWriter.getInstance(document, baos); document.open(); // 创建 PDF 表格 PdfPTable table = new PdfPTable(tableData.get(0).size()); for (List<String> row : tableData) { for (String cell : row) { table.addCell(cell); } } document.add(table); // 关闭 PDF 文档 document.close(); // 返回 PDF 文件内容 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_PDF); headers.setContentDispositionFormData("attachment", "table.pdf"); return new ResponseEntity<byte[]>(baos.toByteArray(), headers, HttpStatus.OK); } ``` 这段代码会将前端传来的表格数据生成为一个 PDF 文件,并将该文件以字节数组的形式返回给前端前端代码会在收到该字节数组后将其下载为一个名为 "table.pdf" 的文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值