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)換的頁(yè)碼,可以是具體的頁(yè)碼或者一個(gè)頁(yè)碼范圍,例如 [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)容請(qǐng)搜索腳本之家以前的文章或繼續(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ì),對(duì)大家的學(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ì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
Node.js中的http請(qǐng)求客戶端示例(request client)
本篇文章主要介紹了Node.js中的http請(qǐng)求客戶端示例(request client),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
node+express框架中連接使用mysql(經(jīng)驗(yàn)總結(jié))
這篇文章主要介紹了node+express框架中連接使用mysql(經(jīng)驗(yàn)總結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11
NodeJs Express框架實(shí)現(xiàn)服務(wù)器接口詳解
最近學(xué)習(xí)了基于前后端分離的開發(fā)模式,我前端使用Vue框架,后端使用nodejs開發(fā)API接口,下面這篇文章主要給大家介紹了關(guān)于nodejs使用Express框架寫后端接口的相關(guān)資料,需要的朋友可以參考下2022-08-08
nodejs發(fā)布靜態(tài)https服務(wù)器步驟指南
這篇文章主要為大家介紹了nodejs發(fā)布靜態(tài)https服務(wù)器的步驟指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-02-02

