1. 程式人生 > >將HTML頁面部分內容匯出為PDF

將HTML頁面部分內容匯出為PDF

  • 若前者小於後者說明不用分頁,直接新增圖片資料匯出,原始碼如下:

        if(contentHeight < pageHeight){
    
            pdf.addImage(imgData, 'JPEG', 0, 0,pdfFormat[format][0],pdfFormat[format][1]/pageHeight*contentHeight);
    
            pdf.save(pdfName);
    
        }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 若前者大於後者,則需要分頁:

    1. 先求出頁數 count ,迴圈次數為 count-1
    2. 設定 pagebackground 偏移
    3. 接著渲染page為canvas獲取圖片url資料 pageData
      插入 pdf 物件中,pdf 物件執行 addPage() 函式
    4. 新增最後一頁,因為最後一頁高度可能和pageHeight大小不一致,因此設定 page 的高度為計算的得出的 lastPageHeight ,渲染成canvas獲取圖片資料插入 `pdf
    5. 匯出儲存,原始碼如下:

          var index = 0;
          var count = parseInt(contentHeight / pageHeight);
      
          var page = document.createElement("div");
      
          page.style.position = "absolute";
          page.style.width = contentWidth + "px"
      ;
      page.style.height = pageHeight + "px"; page.style.backgroundImage = "url(" + imgData + ")"; page.style.backgroundRepeat = "norepeat"; document.body.appendChild(page); function addPage(i, onFinished){ page.style.backgroundPositionY = -pageHeight * i + "px"; html2canvas(page, {
      onrendered: function(canvas) { var pageData = canvas.toDataURL('image/jpeg'); pdf.addImage(pageData, 'JPEG', 0, 0,pdfFormat[format][0],pdfFormat[format][1]); if(i + 1 < count){ pdf = pdf.addPage(); addPage(i + 1, onFinished); } else{ onFinished() } } }); } addPage(index, function(){ page.style.backgroundPositionY = -pageHeight * count + "px"; var lastPageHeight = contentHeight % pageHeight; page.style.height = lastPageHeight + "px"; html2canvas(page, { onrendered: function(canvas) { var pageData = canvas.toDataURL('image/jpeg'); pdf = pdf.addPage(); pdf.addImage(pageData, 'JPEG', 0, 0,pdfFormat[format][0], pdfFormat[format][1]/pageHeight*lastPageHeight); document.body.removeChild(page); onSuccess && onSuccess(); pdf.save(pdfName); } }); });
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49
      • 50
      • 51
      • 52
      • 53
      • 54
      • 55
      • 56
      • 57
      • 58
      • 59
      • 60
      • 61
      • 62
      • 63
      • 64
      • 65

相關推薦

HTML頁面部分內容匯出PDF

若前者小於後者說明不用分頁,直接新增圖片資料匯出,原始碼如下: if(contentHeight < pageHeight){ pdf.addImage(imgData, 'JPEG', 0, 0,pdfFormat[format][0],pdfFormat[format][

JS 如何 HTML 頁面匯出 PDF

2017年7月21日更新 沒想到我為實現自己需求寫的Demo受到這麼多人關注,私信問的比較多。 在這裡向大家道歉了,因為這個Demo是有瑕疵的,比如它不支援多頁(我的需求只是一頁ε=ε=ε=┏(゜ロ゜;)┛),頁面拉伸,模糊等問題 為了避免更多人被我誤導,

HTML頁面自動儲存PDF檔案並上傳的兩種方式(一)-前端(react)方式

一、業務場景   公司的樣本檢測報告以React頁面的形式生成,已調整為A4大小的樣式並已實現分頁,業務上需要將這個網頁生成PDF檔案,並上傳到伺服器,後續會將這個檔案傳送給客戶(這裡不考慮)。 二、原來的實現形式   瀏覽器原生方法:window.print()可以將網頁儲存為PDF檔案,由於檢測報告

通過前端js頁面表格導出PDF

技術 font 服務 讓我 tps 沒有 周末 定期 ont   最近工作太忙了,要同時用django重構兩個系統,前後端都是我一個人寫,前端要設計大量的表單,後端要處理大量的數據,身心俱疲啊!周末都沒空,有半個月沒有寫博客了,今天沒心情加班,騰出時間寫寫這半個月積累的技術

利用itexthtml頁面轉成pdf(不模糊)

relative long ble wid ems map entity repl oat 1.maven項目進入依賴 <dependency> <groupId>org.xhtmlrenderer</groupId>

頁面直接匯出PDF檔案,支援分頁與頁邊距

將WEB頁面直接匯出為pdf檔案是經常會用到的一個功能,尤其是各種報表系統。總結了一下目前幾種主流的做法: 在後端用程式碼生成pdf檔案,比如iText一類; 在後端抓取頁面並生成pdf檔案,比如phantomjs一類; 在前端用js直接生成pdf檔案; 方案3的優勢在於前端直接

使用poiueditor生成的內容匯出生成word文件,並以頁面檢視開啟

 將ueditor生成的內容儲存成字串,通過下面的內容拼成html,並使生成的word以頁面檢視的方式開啟。 String str = " <!--[if gte mso 9]><xml><w:WordDocument><w:

使用iText html頁面PDF檔案(itext+freemarker)

1.匯入jar包(使用maven管理) <!--itext start--> <dependency> <groupId>com.lowagie&l

Java中使用phantomjsHTML頁面轉為pdf

之前有個需求,將頁面轉為pdf,當時使用itext轉換,但是呢樣式與實際在瀏覽器中開啟的樣式存在差異。比如選擇項長得不一樣,CheckBox長得不一樣,這就不行,需求要跟瀏覽器開啟一模一樣,後經過多方面查詢,終於找到一個靠譜點的解決方案:使用phantomjs外掛。 首先下

HTML內容轉換PDF格式------java

為網頁提供PDF檔案支援摘要:在這篇文章裡,Nick Afshartous描述了一種把HTML的內容轉換為PDF格式的方法。這種方法相當有用,比如說,一個web程式可以在它的頁面上提供如“下載為PDF”的功能。這種功能方便了列印和儲存,以供日後使用。Afshartous的轉換

JavaScript頁面表格資料匯出Excel、CSV格式檔案(結合JQuery EasyUI的grid )

              function Prints() {             //獲取grid 資料             var data = JSON.stringify($('#datagrid').datagrid('getData').rows);             //ale

動態獲取html頁面內容,而且取當中的某塊元素的方法

var mod .ajax pos spa app sync lte index ??$.ajax({ url: "http://192.168.1.59:8888/app-tpl-webapp/tpl/design.html", async:f

如何在線電子書保存pdf格式

url 分享圖片 targe 找到 nbsp width data lena 文件   網上有很多免費的在線電子書籍,沒有pdf格式,不方便離線閱讀,也不方便做記錄,所以找了幾個將在線內容制作成pdf文件的方法。 一、如果網站上的書籍內容沒有分頁,所有內容都直接顯示出來了,

java 調用OpenOfficeword格式文件轉換pdf格式

一次 復制代碼 端口 rto system files runtime 存在 tco 一:環境搭建 OpenOffice 下載地址http://www.openoffice.org/ JodConverter 下載地址http://sourceforge.net/proje

如何table裡的內容匯出到excel

開發時有遇到要將table裡的內容匯出excel的操作,百度了下,覺得還是外掛比較方便   外掛:jquery-table2excel 下載地址: 網盤地址      密碼:y00w 使用方法:   &nb

jqueryform表單內容轉換json字串

  var formObject = {}; var formArray = $("#form").serializeArray(); $.each(formArray, function (i, item) { formObject[item.name] = item.val

匯出PDF系列(三)__HTML導PDF

用HTML匯出PDF主要使用html2canvas+jsPdf。 (1)引入上面兩個js jsPdf.debug.js html2canvas.js (2)給想匯出的區域設定一個id (3)將userInfoForExport渲染成canvas,下面是具體的程式碼 <

匯出PDF系列(一)__java後臺傳PDF檔案

寫在之前:匯出PDF系列會有三篇,方法思路都是查了大量資料,參考了很多部落格文章,連結全部貼上來有點不現實,如果有冒犯之處還請指出,馬上改正。如果有疑問,歡迎留言評論,必定竭盡全力答覆,接下來就開始吧。 用PDF將模板寫死,內容動態填充 這裡以匯出以下頁面為例 (1)新建一個wor

java資料結構初學(記錄)單鏈表交換兩節點(3)可與之前寫的進行對比(程式碼優化)——如果後續徹底搞明白後精煉此部分內容,刪除部分內容

public void swap(String number1, String number2){                  // 定義節點         StudentNode t1,t2,t3,t4;         /**          *        

androidLinearLayout中的內容儲存Bitmap。

前幾天,和別人探討問題的時候,突然瞭解到還有這個功能。他是要合成LinearLayout中的多個圖片,如果圖片合成,就很麻煩,所以直接儲存一個LinearLayout。 現在想起來,儲存LinearLayout也那樣,因為LinearLayout也是一個view,我儲存這