nodejs 实现pdf与图片互转

PDF转图片

效果图

在这里插入图片描述

代码
const path = require('path');  
const pdf = require('pdf-poppler');  
const fs = require('fs');  // PDF文件路径  
const pdfFilePath = './path/test.pdf';  // 转换选项  
const opts = {  format: 'png', // 输出图片格式,可以是 'jpeg', 'png', 'ppm', 'tiff', 'xps', 'xml', 'xps1', 'xps2' 等  out_dir: './path/output', // 输出目录  out_prefix: 'outputImg', // 输出文件的前缀  page: null // 要转换的页码,可以是具体的页码或者一个页码范围,例如 [1, 3, 5] 或者 '1-5'  
};  // 转换PDF为图片  
pdf.convert(pdfFilePath, opts)  .then(res => {  console.log('Successfully converted:', res);  // res 是一个包含转换后图片文件路径的数组  // 例如:['./output/output-1.jpeg', './output/output-2.jpeg']  })  .catch(error => {  console.error('Error converting PDF to images:', error);  });

图片转PDF

效果图如下

在这里插入图片描述

代码:
const PDFDocument = require('pdfkit');  
const fs = require('fs');  
const path = require('path');  // 创建一个PDF文档  
const doc = new PDFDocument();  // 设置文档元数据(可选)  
doc.info.title = 'My Image to PDF';  // 将PDF文档流写入一个文件  
const outputStream = fs.createWriteStream(path.resolve('./path/output/output.pdf'));  
doc.pipe(outputStream);  // 将图片添加到PDF文档中  
doc.image('./path/zgr.jpg', {  width: 500, // 设置图片宽度  height: 300, // 设置图片高度  fit: [500, 300] // 或者使用fit来适应指定尺寸  
});  // 结束文档并关闭流  
doc.end();  outputStream.on('finish', () => {  console.log('PDF生成完成');  
});  outputStream.on('error', (err) => {  console.error('PDF生成出错:', err);  
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/495605.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dledger部署RocketMQ高可用集群(9节点集群)

文章目录 🔊博主介绍🥤本文内容规划集群准备工作节点0配置(ip地址为192.168.80.101的机器)节点1配置(ip地址为192.168.80.102的机器)节点2配置(ip地址为192.168.80.103的机器)在所有…

DDP(DistributedDataParallel) 分布式训练1——入门上手

DistributedDataParallel(DDP)是一个支持多机多卡、分布式训练的深度学习工程方法。 在分类上,DDP属于Data Parallel。简单来讲,就是通过提高batch size来增加并行度。DDP通过Ring-Reduce的数据交换方法提高了通讯效率&#xff0…

矩阵的范数 matrix norm Frobenius norm 弗罗贝尼乌斯 范数

1,矩阵范数的定义 矩阵的范数,matrix norm即矩阵的模;它把一个矩阵空间变成为赋范线性空间; 从一个矩阵空间映射到非负实数的函数 满足以下条件: 1,严格的正定性。对于 , 则 ; and if , must ; 2&…

MFC web文件 CHttpFile的使用初探

MFC CHttpFile的使用 两种方式,第一种OpenURL,第二种SendRequest,以前捣鼓过,今天再次整结果发现各种踩坑,好记性不如烂笔头,记录下来。 OpenURL 这种方式简单粗暴,用着舒服。 try {//OpenU…

Netty01NIO

NIO基础 NIO :non-blocking io 非阻塞 IO 笔记 www.zgtsky.top 网课:黑马Netty 三大组件 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以…

顶顶通呼叫中心中间件-如何使处于机器人话术中的通话手动转接到坐席分机上讲解(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件使用httpapi实现电话转接操作过程讲解(mod_cti基于FreeSWITCH) 需要了解呼叫中心中间件可以点以下链接了解顶顶通小孙 1、使用httpapi接口转接 一、打开web版的ccadmin并且找到接口测试 打开web-ccadmin并且登录,登录完成之后点击运维调试-再…

Apache POl

介绍 Apache POl是一个处理Miscrosoft Ofice各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作,一般情况下,POI都是用于操作 Excel 文件。 Apache POl 的应用场景 1.银行网银系统导出交易…

2024年腾讯云4核8G12M配置的轻量服务器同时支持多大访问量?

腾讯云4核8G服务器支持多少人在线访问?支持25人同时访问。实际上程序效率不同支持人数在线人数不同,公网带宽也是影响4核8G服务器并发数的一大因素,假设公网带宽太小,流量直接卡在入口,4核8G配置的CPU内存也会造成计算…

斯元Z-ONE-China Cybersecurity Tech Landscape·中国网络安全全景图-百度网盘下载

面向全球,斯元Z-ONE正式发布首版「China Cybersecurity Tech Landscape中国网络安全全景图」。 为了提升海外市场对中国网络安全行业的全局认识,方便国际客户及合作伙伴了解中国网络安全科技的赛道分布和国内外厂商对标,助力中国网安厂商出海…

Java玩转《啊哈算法》之链表

知道为什么而死,那是了不起的事。到了那个时候,人自然会产生一种力量。 文章目录 由来代码地址数组 vs 链表链表创建遍历插入完整代码 由来 各位小伙伴们好呀!本人最近看了下《啊哈算法》,写的确实不错。 但稍显遗憾的是&#x…

uniapp_微信小程序日历

一、需求要求这样 二、代码实现 <view class"calender" click"showriliall"><text class"lineText">探视日期&#xff1a;</text><text class"middleText">{{timerili}}</text><image src"/s…

【半监督医学图像分割 2021 IEEE】DU-GAN

【半监督医学图像分割 2021 IEEE】DU-GAN 论文题目&#xff1a;DU-GAN: Generative Adversarial Networks with Dual-Domain U-Net Based Discriminators for Low-Dose CT Denoising 中文题目&#xff1a;基于双域U-Net鉴别器的生成对抗网络用于低剂量CT去噪 论文链接&#xff…