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

歡迎訪問 生活随笔!

生活随笔

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

javascript

使用poi写入doc文档中文档打不开_基于NodeJS和浏览器的PDF文档引擎——PDFKit

發布時間:2025/1/21 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用poi写入doc文档中文档打不开_基于NodeJS和浏览器的PDF文档引擎——PDFKit 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹

PDFKit是一個用于Node和瀏覽器的PDF文檔生成庫,可以輕松創建復雜的多頁面可打印文檔。API包含可鏈接性,包括低級功能以及更高級功能的抽象。PDFKit API設計簡單,因此生成復雜文檔通常與一些函數調用一樣簡單。最直接的好處就是節省了服務器端的資源,讓生成工作在本地完成!



如何獲取?

由于最近限制頗多,不便于直接放鏈接,截圖都不行,大家可以直接到Github搜索



安裝使用

  • 使用npm包管理

npm install pdfkit
  • 創建文檔

創建PDFKit文檔非常簡單。只需要引用pdfkit的JavaScript源文件中的模塊并創建PDFDocument該類的實例


const PDFDocument = require('pdfkit');const doc = new PDFDocument;

PDFDocument實例是可讀的節點流。它們不會自動保存在任何地方,但您可以調用管道方法將PDF文檔的輸出發送到正在寫入的另一個可寫節點流。完成文檔后,請調用end方法以完成它。下面是一個示例,說明如何管道傳輸文件或HTTP響應。


doc.pipe(fs.createWriteStream('/path/to/file.pdf')); // 寫pdfdoc.pipe(res); // HTTP響應// 添加內容doc.end();
  • 瀏覽器使用

在瀏覽器中使用PDFKit與在Node中使用它完全相同,除非你想要將輸出通過管道傳輸到瀏覽器中支持的目標,例如Blob。Blob可用于生成URL以允許通過iframe直接在瀏覽器中顯示生成的PDF,或者它們可用于將PDF上傳到服務器,或在用戶的瀏覽器中觸發下載。


// 引入依賴const PDFDocument = require('pdfkit');const blobStream = require('blob-stream');// 同樣的創建方式const doc = new PDFDocument;//傳輸文檔到Blobconst stream = doc.pipe(blobStream());//像以往一樣將內容添加到文檔// 最終得到Blobdoc.end();stream.on('finish', function() { // 得到一個可以隨心所欲的Blob const blob = stream.toBlob('application/pdf'); //或獲取blob URL以在瀏覽器中顯示 const url = stream.toBlobURL('application/pdf'); iframe.src = url;});
  • 添加頁

這個地方除非你設置autoFirstPage: false,不然PDFkit會自動給你添加第一頁,后續頁面你需要自己添加


doc.addPage()//事件監聽doc.on('pageAdded', () => doc.text("Page Title"));

還可以為頁面設置一些選項,例如其大小和方向以及邊距等


// 所有頁面添加50邊距doc.addPage({ margin: 50});// 在每一側添加不同的邊距doc.addPage({ margins: { top: 50, bottom: 50, left: 72, right: 72 }});
  • 切換到之前的頁面

bufferPages: true// 配置//調用doc.switchToPage(pageNumber)
// 創建一個文檔,bufferPages設置為truelet i;let end;const doc = new PDFDocument({ bufferPages: true});// 添加一些內容doc.addPage();// ...doc.addPage();//查看緩沖頁面的范圍const range = doc.bufferedPageRange(); // => { start: 0, count: 2 }for (i = range.start, end = range.start + range.count, range.start <= end; i < end; i++;) { doc.switchToPage(i); doc.text(`Page ${i + 1} of ${range.count}`);}// 手動刷新已緩沖的頁面doc.flushPages();doc.end();
  • 設置文檔元數據

PDF文檔可以具有與其相關聯的各種元數據,例如標題或文檔的作者??梢酝ㄟ^將該信息添加到doc.info對象中,或者通過在創建時將info對象傳遞到文檔中來添加該信息。

以下是可以添加到文檔元數據的所有屬性的列表。根據PDF規范,每個屬性必須首字母大寫。


  • Title - 文件的標題
  • Author - 作者的姓名
  • Subject - 文件的主題
  • Keywords - 與文檔關聯的關鍵字
  • CreationDate - 文檔創建的日期(由PDFKit自動添加)
  • ModDate - 上次修改文檔的日期

  • 加密和訪問權限

PDF規范允許你在打開文件時加密PDF文件且需要密碼,以及設置用戶可以對PDF文件執行的操作的權限。要啟用加密,在創建時提供用戶密碼PDFDocumentoptions對象。提供用戶密碼時將對PDF文件進行加密,并在打開文件時提示用戶輸入密碼以解密文件。


  • userPassword - 用戶密碼(字符串值)

要設置PDF文件的訪問權限,您需要option在創建時在對象中提供所有者密碼和權限設置PDFDocument。默認情況下,不允許所有操作。您需要明確允許某些操作。

  • ownerPassword - 所有者密碼(字符串值)
  • permissions - 指定PDF文件權限的對象

permissions對象中允許以下設置:

  • printing - 是否允許打印。指定"lowResolution"允許降級打印,或"highResolution"允許以高分辨率打印
  • modifying - 是否允許修改文件。指定true允許修改文檔內容
  • copying - 是否允許復制文本或圖形。指定true允許復制
  • annotating - 是否允許注釋,填寫表格。指定true允許注釋和表單填寫
  • fillingForms - 是否允許填寫表格和簽字。指定true允許填寫表單字段和簽名
  • contentAccessibility - 是否允許復制文本以便訪問。指定true允許復制可訪問性
  • documentAssembly - 是否允許裝配文件。指定true允許文檔組裝

可以指定用戶密碼,所有者密碼或兩個密碼。行為因提供的密碼而異:

  • 僅提供用戶密碼時,具有用戶密碼的用戶可以解密文件并具有對文檔的完全訪問權限。
  • 當僅提供所有者密碼時,用戶能夠在不提供任何密碼的情況下解密和打開文檔,但訪問僅限于明確允許的操作。擁有所有者密碼的用戶可以完全訪問該文檔。
  • 提供兩個密碼時,具有用戶密碼的用戶可以解密文件,但只能根據權限設置對文件進行有限的訪問。擁有所有者密碼的用戶可以完全訪問該文檔。

以上介紹的都是基本使用方法,核心用法包括矢量圖創建和繪制、文本內容、圖片以及注釋等文檔實在太過詳細,因此就不在詳細介紹,看文檔更有用,由于是英文文檔,可以借助瀏覽器自帶的翻譯插件查看



在線預覽查看



總結一下

目前pdf文檔的預覽非常容易實現,但是生成,這里說的是客戶端生成相對來說要復雜一些,但是借助PDFKit就可以使用簡單的API來實現非常復雜的功能,可以說很貼心了,有需求的小伙伴趕緊去看看吧!



與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的使用poi写入doc文档中文档打不开_基于NodeJS和浏览器的PDF文档引擎——PDFKit的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91视频二区 | 国产一区二区波多野结衣 | 亚洲AV无码国产成人久久 | 亚洲图片另类小说 | 中国女人裸体乱淫 | 国产精品秘入口18禁麻豆免会员 | 91麻豆影视| 女同av在线播放 | 欧美成人三级在线观看 | 国产亚洲天堂网 | 欧美黑吊大战白妞 | 一级黄色片视频 | 国产人妖ts重口系列网站观看 | 亚洲高清精品视频 | av毛片在线免费看 | www.久草.com| 日韩精品视频在线观看网站 | 成年人的黄色片 | av福利网 | 91尤物在线 | a级片一区二区 | 成人福利视频导航 | 丝袜在线视频 | 青青草娱乐在线 | 成人av入口 | 91成人在线免费视频 | 在线成人一区 | 农村一级毛片 | 黄色大片久久 | a毛片大片 | 色综合久久88色综合天天免费 | 亚洲色图10p | 亚欧洲乱码视频 | 精品国产999久久久免费 | 国产精品综合视频 | 日本一区视频 | 自拍偷拍欧美激情 | 青青草国产精品视频 | 国产人成视频在线观看 | 国产免费一区二区视频 | 免费av网址在线观看 | 黄色欧美视频 | 僵尸叔叔在线观看国语高清免费观看 | 精品久久九九 | 激情五月五月婷婷 | 亚洲www.| 国产又大又粗又长 | 欧美情侣性视频 | 成人黄色在线网站 | 性色av网站| 中午字幕在线观看 | 69色堂| 香蕉综合网| 黑人与日本少妇高潮 | 国产精品无码一区二区三区在线看 | www.色网站| 国产一二三四在线 | 一区二区三区视频免费 | 日日噜噜夜夜狠狠久久丁香五月 | 欧美卡一卡二 | 国产在线观看成人 | 又黄又高潮的视频 | 91精品视频免费在线观看 | 有机z中国电影免费观看 | 综合免费视频 | 日本特级毛片 | 亚洲高清在线视频 | 逼逼爱插插网站 | wwwav视频在线观看 | 亚洲aa视频| 超碰人人人人 | 三八激情网 | 色屁屁www影院免费观看入口 | 国产av无码专区亚洲精品 | 手机在线看黄色 | 国产三级精品三级 | 久久99国产精品 | 漂亮人妻被中出中文字幕 | 一区二区三区高清不卡 | 精品视频免费在线 | 亚洲精品一品 | 午夜视频免费在线观看 | 午夜男人天堂 | 偷拍亚洲色图 | 亚洲涩涩涩 | 欧美视频黄色 | 国产偷人爽久久久久久老妇app | 日韩91av | 无码人妻精品一区二区蜜桃色欲 | 欧美成人精品一区二区三区在线观看 | 欧美日韩免费在线观看 | 国产亚洲精品久久久久丝瓜 | 国产精品大片 | 先锋影音久久 | 2020自拍偷拍 | 深夜福利电影 | 91传媒理伦片在线观看 | 一区二区视屏 | 丰满少妇在线观看资源站 |