node.js實(shí)現(xiàn)pdf與圖片互轉(zhuǎn)代碼示例
PDF轉(zhuǎn)圖片
效果圖
代碼
const path = require('path'); const pdf = require('pdf-poppler'); const fs = require('fs'); // PDF文件路徑 const pdfFilePath = './path/test.pdf'; // 轉(zhuǎn)換選項(xiàng) const opts = { format: 'png', // 輸出圖片格式,可以是 'jpeg', 'png', 'ppm', 'tiff', 'xps', 'xml', 'xps1', 'xps2' 等 out_dir: './path/output', // 輸出目錄 out_prefix: 'outputImg', // 輸出文件的前綴 page: null // 要轉(zhuǎn)換的頁碼,可以是具體的頁碼或者一個(gè)頁碼范圍,例如 [1, 3, 5] 或者 '1-5' }; // 轉(zhuǎn)換PDF為圖片 pdf.convert(pdfFilePath, opts) .then(res => { console.log('Successfully converted:', res); // res 是一個(gè)包含轉(zhuǎn)換后圖片文件路徑的數(shù)組 // 例如:['./output/output-1.jpeg', './output/output-2.jpeg'] }) .catch(error => { console.error('Error converting PDF to images:', error); });
圖片轉(zhuǎn)PDF
效果圖如下
代碼:
const PDFDocument = require('pdfkit'); const fs = require('fs'); const path = require('path'); // 創(chuàng)建一個(gè)PDF文檔 const doc = new PDFDocument(); // 設(shè)置文檔元數(shù)據(jù)(可選) doc.info.title = 'My Image to PDF'; // 將PDF文檔流寫入一個(gè)文件 const outputStream = fs.createWriteStream(path.resolve('./path/output/output.pdf')); doc.pipe(outputStream); // 將圖片添加到PDF文檔中 doc.image('./path/zgr.jpg', { width: 500, // 設(shè)置圖片寬度 height: 300, // 設(shè)置圖片高度 fit: [500, 300] // 或者使用fit來適應(yīng)指定尺寸 }); // 結(jié)束文檔并關(guān)閉流 doc.end(); outputStream.on('finish', () => { console.log('PDF生成完成'); }); outputStream.on('error', (err) => { console.error('PDF生成出錯(cuò):', err); });
總結(jié)
到此這篇關(guān)于node.js實(shí)現(xiàn)pdf與圖片互轉(zhuǎn)的文章就介紹到這了,更多相關(guān)nodejs pdf與圖片互轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs和npm版本不匹配:ERROR:?npm?v9.5.1?is?known?not?to?run
本文主要介紹了nodejs和npm版本不匹配:ERROR:?npm?v9.5.1?is?known?not?to?run?on?Node.js,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06利用node實(shí)現(xiàn)一個(gè)批量重命名文件的函數(shù)
這篇文章主要給大家介紹了關(guān)于利用node實(shí)現(xiàn)一個(gè)批量重命名文件的函數(shù)的相關(guān)資料,文中通過示例示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12Node.js中的http請求客戶端示例(request client)
本篇文章主要介紹了Node.js中的http請求客戶端示例(request client),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05node+express框架中連接使用mysql(經(jīng)驗(yàn)總結(jié))
這篇文章主要介紹了node+express框架中連接使用mysql(經(jīng)驗(yàn)總結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11NodeJs Express框架實(shí)現(xiàn)服務(wù)器接口詳解
最近學(xué)習(xí)了基于前后端分離的開發(fā)模式,我前端使用Vue框架,后端使用nodejs開發(fā)API接口,下面這篇文章主要給大家介紹了關(guān)于nodejs使用Express框架寫后端接口的相關(guān)資料,需要的朋友可以參考下2022-08-08nodejs發(fā)布靜態(tài)https服務(wù)器步驟指南
這篇文章主要為大家介紹了nodejs發(fā)布靜態(tài)https服務(wù)器的步驟指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-02-02