javascript - 鉴于目标整个 div 不使用 jspdf 导出为 pdf?
问题描述
我正在将引导模式导出为 pdf。这是我的html代码
<div class="modal fade" id="myModalLarge" tabindex="-1" role="dialog" aria-labelledby="myModalLabelLarge" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabelLarge">Load Sensor Report</h4>
<button class="close" type="button" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="row">
<div class="col-lg-12">
<div class="modal-body" id="content">
<div class="row" id="widgets">
<div class="col-xl-4 col-lg-6 col-md-12">
<!-- START date widget-->
<div class="card bg-info-light pt-2 b0">
<div class="px-2">
<em class="icon-bubbles fa-lg float-right"></em>
<div class="h2 mt-0">500</div>
<div class="text-uppercase" style="padding-bottom: 10px">Live Force</div>
</div>
<div data-sparkline="" data-type="line" data-width="100%" data-height="75px" data-line-color="#23b7e5" data-chart-range-min="0"
data-fill-color="#23b7e5" data-spot-color="#23b7e5" data-min-spot-color="#23b7e5"
data-max-spot-color="#23b7e5" data-highlight-spot-color="#23b7e5" data-highlight-line-color="#23b7e5"
data-values="2,3,5,1,5,9" style="margin-bottom: -2px" data-resize="true"></div>
</div>
<!-- END date widget-->
</div>
<div class="col-xl-4 col-lg-6 col-md-12">
<!-- START date widget-->
<div class="card bg-info-light pt-2 b0">
<div class="px-2">
<em class="icon-bubbles fa-lg float-right"></em>
<div class="h2 mt-0">500</div>
<div class="text-uppercase" style="padding-bottom: 10px">Live Repititions</div>
</div>
<div data-sparkline="" data-type="line" data-width="100%" data-height="75px" data-line-color="#23b7e5" data-chart-range-min="0"
data-fill-color="#23b7e5" data-spot-color="#23b7e5" data-min-spot-color="#23b7e5"
data-max-spot-color="#23b7e5" data-highlight-spot-color="#23b7e5" data-highlight-line-color="#23b7e5"
data-values="4,5,3,10,7,15" style="margin-bottom: -2px" data-resize="true"></div>
</div>
<!-- END date widget-->
</div>
<div class="col-xl-4 col-lg-6 col-md-12">
<!-- START card-->
<div class="card bg-info-light pt-2 b0">
<div class="px-2">
<em class="icon-bubbles fa-lg float-right"></em>
<div class="h2 mt-0">500</div>
<div class="text-uppercase" style="padding-bottom: 10px">Live Sets</div>
</div>
<div data-sparkline="" data-type="line" data-width="100%" data-height="75px" data-line-color="#23b7e5" data-chart-range-min="0"
data-fill-color="#23b7e5" data-spot-color="#23b7e5" data-min-spot-color="#23b7e5"
data-max-spot-color="#23b7e5" data-highlight-spot-color="#23b7e5" data-highlight-line-color="#23b7e5"
data-values="4,5,3,10,7,15" style="margin-bottom: -2px" data-resize="true"></div>
</div>
</div>
</div>
<!-- chart card start-->
<div class="row">
<div class="col-xl-12">
<!-- START card-->
<div class="card card-default card-demo" id="cardChart9">
<div class="card-header">
<a class="float-right" href="#" data-tool="card-refresh" data-toggle="tooltip" title="Refresh card">
<em class="fas fa-sync"></em>
</a>
<a class="float-right" href="#" data-tool="card-collapse" data-toggle="tooltip" title="Collapse card">
<em class="fa fa-minus"></em>
</a>
<div class="card-title">Live Activity Data</div>
</div>
<div class="card-wrapper collapse show">
<div class="card-body">
<canvas id="myChart1"></canvas>
</div>
</div>
</div>
<!-- END card-->
</div>
</div>
<div class="row">
<div class="col-xl-3 col-lg-6 col-md-12">
<!-- START date widget-->
<div class="card bg-purple-light pt-2 b0">
<div class="px-2">
<em class="icon-bubbles fa-lg float-right"></em>
<div class="h4 mt-0" id="m_tf">--</div>
<div class="text-uppercase" style="padding-bottom: 10px;font-weight:bold;font-size: 12px">Target Force</div>
</div>
<div data-sparkline="" data-type="line" data-width="100%" data-height="75px" data-line-color="#23b7e5" data-chart-range-min="0"
data-fill-color="#23b7e5" data-spot-color="#23b7e5" data-min-spot-color="#23b7e5"
data-max-spot-color="#23b7e5" data-highlight-spot-color="#23b7e5" data-highlight-line-color="#23b7e5"
data-values="2,3,5,1,5,9" style="margin-bottom: -2px" data-resize="true"></div>
</div>
<!-- END date widget-->
</div>
<div class="col-xl-3 col-lg-6 col-md-12">
<!-- START date widget-->
<div class="card bg-purple-light pt-2 b0">
<div class="px-2">
<em class="icon-bubbles fa-lg float-right"></em>
<div class="h4 mt-0">500</div>
<div class="text-uppercase" style="padding-bottom: 10px;font-weight:bold;font-size: 12px">Average Force</div>
</div>
<div data-sparkline="" data-type="line" data-width="100%" data-height="75px" data-line-color="#23b7e5" data-chart-range-min="0"
data-fill-color="#23b7e5" data-spot-color="#23b7e5" data-min-spot-color="#23b7e5"
data-max-spot-color="#23b7e5" data-highlight-spot-color="#23b7e5" data-highlight-line-color="#23b7e5"
data-values="4,5,3,10,7,15" style="margin-bottom: -2px" data-resize="true"></div>
</div>
<!-- END date widget-->
</div>
<div class="col-xl-3 col-lg-6 col-md-12">
<!-- START card-->
<div class="card bg-purple-light pt-2 b0">
<div class="px-2">
<em class="icon-bubbles fa-lg float-right"></em>
<div class="h4 mt-0" id="m_tr">--</div>
<div class="text-uppercase" style="padding-bottom: 10px;font-weight:bold;font-size: 12px">Target Repetions</div>
</div>
<div data-sparkline="" data-type="line" data-width="100%" data-height="75px" data-line-color="#23b7e5" data-chart-range-min="0"
data-fill-color="#23b7e5" data-spot-color="#23b7e5" data-min-spot-color="#23b7e5"
data-max-spot-color="#23b7e5" data-highlight-spot-color="#23b7e5" data-highlight-line-color="#23b7e5"
data-values="4,5,3,10,7,15" style="margin-bottom: -2px" data-resize="true"></div>
</div>
</div>
<div class="col-xl-3 col-lg-6 col-md-12">
<!-- START card-->
<div class="card bg-purple-light pt-2 b0">
<div class="px-2">
<em class="icon-bubbles fa-lg float-right"></em>
<div class="h4 mt-0">12</div>
<div class="text-uppercase" style="padding-bottom: 10px;font-weight:bold;font-size: 12px">Average Repetions</div>
</div>
<div data-sparkline="" data-type="line" data-width="100%" data-height="75px" data-line-color="#23b7e5" data-chart-range-min="0"
data-fill-color="#23b7e5" data-spot-color="#23b7e5" data-min-spot-color="#23b7e5"
data-max-spot-color="#23b7e5" data-highlight-spot-color="#23b7e5" data-highlight-line-color="#23b7e5"
data-values="4,5,3,10,7,15" style="margin-bottom: -2px" data-resize="true"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-3 col-lg-6 col-md-12">
<!-- START card-->
<div class="card bg-purple-light pt-2 b0">
<div class="px-2">
<em class="icon-bubbles fa-lg float-right"></em>
<div class="h4 mt-0" id="m_ts">--</div>
<div class="text-uppercase" style="padding-bottom: 10px;font-weight:bold;font-size: 12px">Target Sets</div>
</div>
<div data-sparkline="" data-type="line" data-width="100%" data-height="75px" data-line-color="#23b7e5" data-chart-range-min="0"
data-fill-color="#23b7e5" data-spot-color="#23b7e5" data-min-spot-color="#23b7e5"
data-max-spot-color="#23b7e5" data-highlight-spot-color="#23b7e5" data-highlight-line-color="#23b7e5"
data-values="4,5,3,10,7,15" style="margin-bottom: -2px" data-resize="true"></div>
</div>
</div>
<div class="col-xl-3 col-lg-6 col-md-12">
<!-- START card-->
<div class="card bg-purple-light pt-2 b0">
<div class="px-2">
<em class="icon-bubbles fa-lg float-right"></em>
<div class="h4 mt-0">02</div>
<div class="text-uppercase" style="padding-bottom: 10px;font-weight:bold;font-size: 12px">Actual Sets</div>
</div>
<div data-sparkline="" data-type="line" data-width="100%" data-height="75px" data-line-color="#23b7e5" data-chart-range-min="0"
data-fill-color="#23b7e5" data-spot-color="#23b7e5" data-min-spot-color="#23b7e5"
data-max-spot-color="#23b7e5" data-highlight-spot-color="#23b7e5" data-highlight-line-color="#23b7e5"
data-values="4,5,3,10,7,15" style="margin-bottom: -2px" data-resize="true"></div>
</div>
</div>
</div>
</div>
<!-- </div> -->
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="modal-footer" id="ignore1">
<button class="btn btn-secondary" type="button" data-dismiss="modal" style="margin-left:40px">Close</button>
<button class="btn btn-primary" type="button" id="toPdf">Export To Pdf</button>
</div>
</div>
</div>
</div>
</div>
这是js代码
var doc = new jsPDF('p', 'pt', 'a4');
var elementHandler = {
'#ignore1': function (element, renderer) {
return true;
}
};
$('#toPdf').click(function () {
doc.addHTML($('#content'), {
'elementHandlers': elementHandler
}, function () {
doc.save('sample-file.pdf');
});
});
我正在使用jspdf。我给整个模态内容一个 id,它在 jspdf 对象中传递以创建 pdf,但是当我导出时,它正在切割上面的 3 个蓝色小部件。
解决方案
尝试使用.html()
而不是.addHtml()
. 要忽略 div,请使用data-html2canvas-ignore="true"
.
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js"
integrity="sha384-NaWTHo/8YCBYJ59830LTz/P4aQZK1sS0SneOgAvhsIl3zBu8r9RevNg5lHCHAuQ/"
crossorigin="anonymous"></script>
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<script>
function download() {
let doc = new jsPDF('p', 'pt', 'a4');
doc.html(document.getElementById('content'), {
callback: function () {
// doc.save('test.pdf');
window.open(doc.output('bloburl')); // use this to debug
}
});
}
</script>
推荐阅读
- java - 如何使用 Java8 流在下面的数组列表中找到第二高的薪水
- javascript - TypeError:this.querySelectorAll 在 react js 中使用 D3Funnel 时不是函数
- mongodb - 在 MongoDB 中建模 RBAC 的最佳方法是什么:嵌入还是链接?
- python - 我不明白默认值如何在继承中起作用
- spring-boot - 无法调用“org.apache.commons.logging.Log.isDebugEnabled()”,因为“this.logger”为空
- python - 在某个计时器没有动作后,安全凸轮停止记录
- python - SessionNotCreatedException:消息:会话未创建:此版本的 ChromeDriver 仅支持使用 ChromeDriver 和 Chrome 的 Chrome 版本 87
- json - React 显示 json 键和值
- json - 如何查询数组字段(AWS Glue)?
- excel - Excel将浮点时间延迟格式化为字符串