使用jspdf将HTML和图像转换为pdf
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用jspdf将HTML和图像转换为pdf相关的知识,希望对你有一定的参考价值。
目前我正在使用asp经典,jquery和html的项目
最近,我使用“from-html.js”成功将html文件转换为pdf,但我有一个问题是:
如何在我创建的pdf中插入一些图像?我现在搜索了很长时间,但我找不到办法。
我试图使用addhtml.js或addimage.js混合我的实际代码,但它不起作用。这就是我目前所做的
<title>Recapitulatif Commande</title>
<script type="text/javascript" src="./examples/js/jquery/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="jspdf.js"></script>
<script type="text/javascript" src="./dist/jspdf.min.js"></script>
<script type="text/javascript" src="jspdf.plugin.from_html.js"></script>
<script type="text/javascript" src="jspdf.plugin.standard_fonts_metrics.js"></script>
<script type="text/javascript" src="jspdf.plugin.split_text_to_size.js"></script>
<script type="text/javascript" src="jspdf.plugin.addimage.js"></script>
<script src='./libs/Blob.js/Blob.js' type='text/javascript'></script>
<script src='./libs/FileSaver.js/FileSaver.js' type='text/javascript'></script>
<script src='./libs/png_support/zlib.js' type='text/javascript'></script>
<script src='./libs/png_support/png.js' type='text/javascript'></script>
<script src='./libs/deflate.js' type='text/javascript'></script>
<script src='jspdf.plugin.png_support.js' type='text/javascript'></script>
<script language="JavaScript">
$(document).ready( function(){
var doc = new jsPDF();
var specialElementHandlers =
{
'#editor': function (element, renderer)
{
return true;
}
};
$('#cmd').click(function ()
{
doc.fromHTML($('#mydiv').html(), 15, 15, {
'width': 170,
'elementHandlers': specialElementHandlers,
});
doc.save('RecapCommande.pdf');
});
});
</script>
<div id="mydiv">
<h2><center>Bonjour voici un recap des notes</center></h2>
<table id="table" width="100%" border="2px solid">
<thead>
<tr>
<th width="33%" align="center">date : </th>
<th width="33%" align="center">montant : </th>
<th width="33%" align="center">statut : </th>
</tr>
</thead>
</table>
</div> <!-- /container -->
<table id="table14" width="100%" >
<thead>
<tr>
<th width="33%" align="center"><button id="cmd" align="center" >Imprimer votre commande</button></th>
</tr>
</thead>
</table>
如果你能帮助我,我会如此放心,谢谢
答案
你必须将你的表转换成一个画布然后显示它。首先将一个隐藏的画布附加到你的div.Second将你的div复制到隐藏的画布。第三个隐藏你的表并取消隐藏画布。第四个生成pdf。
<Script>
//first
$("#table").append('<div id="can" style="background-color:white" >
<canvas id="canvas" width="300" height="320" style="background-color:white"></canvas> </div>');
//second
canvg('canvas', $("#table").html());
//third
var im = document.getElementById('canvas');
im.style.display = 'block';
var create = document.getElementById('table');
create.style.display = 'none';
//fourth..call function for pdf generation
</Script>
另一答案
将您的图像编码为base64,并将数据blob插入img src区域... ...:
<img src="data:image/jpeg;base64,/9j/4AA......9k=" />
我知道这是一篇旧文章,但是我今天一直在处理这个问题,并且发现base64图像是HTML到PDF转换输出它们的唯一方法。
以上是关于使用jspdf将HTML和图像转换为pdf的主要内容,如果未能解决你的问题,请参考以下文章
使用 jsPDF / HTML5 在 PDF 中插入图像不起作用
jsPDF 将html代码中的table导出为pdf文件怎么弄