日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSPDF运用实例(解决图片跨域问题)

發布時間:2025/7/14 javascript 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSPDF运用实例(解决图片跨域问题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

  • 引入js(這里可以自己去官網下載jspdf? https://parall.ax/products/jspdf)
  • <script type="text/javascript" src="${ctx }/staticfile/jsPDF/html2canvas_back.js"></script> <script type="text/javascript" src="${ctx }/staticfile/jsPDF/dist/jspdf.debug.js"></script>

    ? ? ?2.調用方法(這里給大家封裝好了):? ?

    /*轉pdf*/ function toPDF(){html2canvas(document.body, {useCORS:true,onrendered:function(canvas) {//這是文件名var fileName = "${submitExperimentFile.studentSubmitter.majorName}${submitExperimentFile.studentSubmitter.className}-${submitExperimentFile.studentSubmitter.username}${submitExperimentFile.studentSubmitter.name}"+"《${submitExperimentFile.experiment.experimentName}》";var contentWidth = canvas.width;var contentHeight = canvas.height;//一頁pdf顯示html頁面生成的canvas高度;var pageHeight = contentWidth / 592.28 * 841.89;//未生成pdf的html頁面高度var leftHeight = contentHeight;//頁面偏移var position = 0;//a4紙的尺寸[595.28,841.89],html頁面生成的canvas在pdf中圖片的寬高var imgWidth = 595.28;var imgHeight = 592.28/contentWidth * contentHeight;var pageData = canvas.toDataURL('image/jpeg', 1.0);var pdf = new jsPDF('', 'pt', 'a4');//有兩個高度需要區分,一個是html頁面的實際高度,和生成pdf的頁面高度(841.89)//當內容未超過pdf一頁顯示的范圍,無需分頁if (leftHeight < pageHeight) {pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight );} else {while(leftHeight > 0) {pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)leftHeight -= pageHeight;position -= 841.89;//避免添加空白頁if(leftHeight > 0) {pdf.addPage();}}}pdf.save(fileName+'.pdf');}}) }

    ? ?3.全頁面截圖:這里給大家一個修改好的js(或者下載我的直接用,親測可用):

    ? ? 4.關于圖片跨域的問題,可以用一下步驟解決:

    • ? ? ? (1) 將頁面中的圖片全部加上crossorigin = anonymous

    $("img").each(function(index){$(this).attr("crossorigin","anonymous");});
    • ??????(2)訪問的服務器打開允許跨域訪問,如果你是Tomcat可以這樣配置:在Tomcat 的conf目錄下的web.xml 加入以下代碼:
      • <filter><filter-name>CorsFilter</filter-name><filter-class>com.vcooc.experiment.filter.CORSFilter</filter-class> </filter><filter-mapping><filter-name>CorsFilter</filter-name><url-pattern>/*</url-pattern> </filter-mapping>

        ?這樣轉成的pdf就能解決圖片跨域問題

    ?

    轉載于:https://my.oschina.net/linwl/blog/1600847

    總結

    以上是生活随笔為你收集整理的JSPDF运用实例(解决图片跨域问题)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。