jspdf把html转化成pdf,支持分页,图片文字混排

 

需要批量把工厂订单打印,还要有产品图片,描述

HTML一定要切记要打印的父元素,加上宽度,间距否则pdf会显示的不正确,宽度写在style上(在css上不起作用)

img也是如此!!!!!

<img src="/images/test.jpeg" style="display:inline-block;max-width: 300px;max-height:400px;">
 <div class="printBox" style="width:650px;padding:10px;">
 <div class="printBox" style="width:650px;padding:10px;">
   <!--第一页-->
    <div>
        <p>标题xxxxx</p>
         <div class="imgWrap">
            <img src="/images/coco.jpg" style="display:inline-block;max-width: 300px;max-height:400px;">
             <img src="/images/test.jpeg" style="display:inline-block;max-width: 300px;max-height:400px;">
          </div> 
           <p>
              <span>日期: 2018-07-11</span>
              <span>备注:xxxxx</span>
           </p>  
    </div>
<!--第2页-->
      <div>
        <p>标题xxxxx</p>
         <div class="imgWrap">
            <img src="/images/coco.jpg" style="display:inline-block;max-width: 300px;max-height:400px;">
             <img src="/images/test.jpeg" style="display:inline-block;max-width: 300px;max-height:400px;">
          </div> 
           <p>
              <span>日期: 2018-07-11</span>
              <span>备注:xxxxx</span>
           </p>  
    </div>
</div>

<script type="text/javascript" src ="/assets/js/jspdf.debug.js"></script> 
<script type="text/javascript" src ="/assets/js/html2canvas.js"></script> 

    $('.printBox').css("background","#fff");
        $(".active").on("click",function(){
              var filename = '物流单.pdf'; 
              var pdf = new jsPDF('p', 'mm','a4'); 
             var options = {
                pagesplit: true
             };
             

            pdf.addHTML($(".printBox"),options, function(){
                pdf.output("save", filename);
            }) 
           

两个div分别一张A4纸显示,达到想要的

要实现在多张图片下方添加文字的效果,同样可以使用HTML中的`<div>`和CSS中的`position`属性。 首先,将每张图片和对应的文字都放在一个`<div>`标签中,如下所示: ```html <div class="container"> <div class="item"> <img src="your-image-url1.jpg" alt="your-image1"> <p>your text here1</p> </div> <div class="item"> <img src="your-image-url2.jpg" alt="your-image2"> <p>your text here2</p> </div> <div class="item"> <img src="your-image-url3.jpg" alt="your-image3"> <p>your text here3</p> </div> </div> ``` 然后,使用CSS对每个容器设置`position: relative`,并对每个文字设置`position: absolute`,并设置`bottom: 0`,这样就可以将每个文字放在对应的图片下方了。 ```css .container { display: flex; justify-content: space-between; } .item { position: relative; flex-basis: 30%; } .item p { position: absolute; bottom: 0; width: 100%; } ``` 这里使用了`flex`布局来让每个容器之间有间隔,同时使用`flex-basis`来设置每个容器的宽度,可以根据需要进行调整。 完整的代码如下所示: ```html <div class="container"> <div class="item"> <img src="your-image-url1.jpg" alt="your-image1"> <p>your text here1</p> </div> <div class="item"> <img src="your-image-url2.jpg" alt="your-image2"> <p>your text here2</p> </div> <div class="item"> <img src="your-image-url3.jpg" alt="your-image3"> <p>your text here3</p> </div> </div> <style> .container { display: flex; justify-content: space-between; } .item { position: relative; flex-basis: 30%; } .item p { position: absolute; bottom: 0; width: 100%; } </style> ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值