javascript - javascript jsPDF库订单元素中的错误
问题描述
我正在使用jsPDF创建PDF文档,问题是我想要启动页面时的视图顺序,但是在下载生成的文档时,所有元素都被挂载并且乱序。
在创建文档时我把它们整理好了,但是也很乱,有没有办法在不挂载的情况下对html元素进行排序?我对这个图书馆完全陌生,我做错了什么?
此代码生成我想要的预览并自动下载生成的文档(我已禁用它,因为我显示了问题的图片),这很乱,我不知道如何修复它。
!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Test</title>
<style>
#output {
width: 100%;
height: 100vh;
margin-top: 20px;
}
#my-table {
border: solid 1px #565656;
border-collapse: collapse;
font-family: helvetica,serif;
font-size: 10pt;
width: 180mm;
}
#my-table th {
border: solid 1px #565656;
background-color: #9a7f5b;
color: #eee;
text-align: left;
padding: 5px;
}
#my-table td {
border: solid 1px #565656;
padding: 2px 5px;
}
</style>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.5/jspdf.min.js"></script>
<script src="https://unpkg.com/jspdf-autotable"></script>
</head>
<body>
<!--ELEMENTS PDF-->
<h1 id="title">This is a test</h1>
<p id="text">Lorem ipsum dolor sit amet consectetur adipisicing elit. Blanditiis natus ipsa sit ab ipsum illum vero dolore velit impedit debitis itaque aut, magni ut laborum ratione esse? Beatae, omnis excepturi.</p>
<table id="my-table">
<thead>
<tr>
<th>ID</th>
<th colspan="2">Name</th>
<th>Email</th>
<th>Country</th>
<th>Activity</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Donna</td>
<td>Moore</td>
<td>Example.com</td>
<td>China</td>
<td>Work</td>
</tr>
<tr>
<td>2</td>
<td>Janice</td>
<td>Henry</td>
<td>Example.com</td>
<td>Ukraine</td>
<td>Eat</td>
</tr>
<tr>
<td>3</td>
<td>Ruth</td>
<td>Wells</td>
<td>Example.com</td>
<td>Mexico</td>
<td>Run</td>
</tr>
<tr>
<td>4</td>
<td>Jason</td>
<td>Ray</td>
<td>Example.com</td>
<td>Brazil</td>
<td>Commute</td>
</tr>
<tr>
<td>5</td>
<td>Jane</td>
<td>Stephens</td>
<td>Example.com</td>
<td>United States</td>
<td>Watch TV</td>
</tr>
<tr>
<td>6</td>
<td>Adam</td>
<td>Nichols</td>
<td>Example.com</td>
<td>Canada</td>
<td>Sleep</td>
</tr>
</tbody>
</table>
<div id="piechart" style="width: 600px; height: 300px; margin: 35px 0px 0px 40px;"></div>
<!--^ ELEMENTS PDF ^-->
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']}
).then(function () {
//Google Charts
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 11],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 7]
]);
var chartpie = new google.visualization.PieChart(document.getElementById('piechart'));
chartpie.draw(data);
//------------------jsPDF ------------------
const doc = new jsPDF('p', 'mm')
//ELEMENTS HTML
var title = document.getElementById('title');
var text = document.getElementById('text');
//CREATE DOCUMENT
doc.fromHTML(title);
doc.fromHTML(text);
doc.autoTable({
html: '#my-table',
theme: 'grid',
})
doc.addImage(chartpie.getImageURI(), 0, 0);
//doc.save('example.pdf');
});
</script>
</body>
</html>
解决方案
推荐阅读
- excel - Excel VBA:对具有可变行数的数据集中的列求和的最佳方法是什么?
- typescript - VSCode 的“重启 TS 服务器”在哪里?
- javascript - 收集数组中的对象,谁的键与映射键、值匹配
- cypress - 类型“cy & EventEmitter”上不存在属性“app”
- flutter - 如何清空飞镖中的图标列表
- r - testthat.R 目录路径
- node.js - 在我的 ExpressJS 应用程序中使用 axios POST 给我“发送到客户端后无法设置标题”错误
- java - 单击按钮时播放音频
- haskell - Haskell中类型的顺序层次结构
- mysql - MariaDB (MySQL) UNION 是原子的吗?