【图片批量转换合并PDF】多个文件夹的图片以文件夹为单位批量合并成一个PDF,基于wpf的实现方案

embedded/2025/3/14 17:35:42/

项目背景:

多个图片分布在不同文件夹,如何以文件夹为单位批量合并成一个PDF,还要保证文件夹里面图片大小和顺序

实现功能:

1、单张图片的转换PDF:一张图临时转一下
2、多张图片转换成PDF:多张图单独转成PDF
3、多级目录多张图转换成PDF:多级目录多张图单独转成多个PDF
4、多张图合并成PDF:多张图合并成一个PDF
5、多级目录多张图合并成PDF:多级目录多张图合并成一个PDF
6、以上1-5种PDF转换后,保存在原目录,还可以支持保存在其他目录,并且保留目录结构

实现思路

  1. 界面设计:创建一个 WPF 窗口,包含选择文件夹的按钮、开始合并的按钮以及显示操作进度的文本框。
  2. 文件夹选择:使用 System.Windows.Forms.FolderBrowserDialog 让用户选择包含多个图片文件夹的根文件夹。
  3. 图片收集:遍历根文件夹下的每个子文件夹,收集其中的图片文件。
  4. PDF 合并:使用 iTextSharp 库将每个子文件夹中的图片合并成一个 PDF 文件。
  5. 进度显示:在操作过程中,将进度信息显示在文本框中。

代码实现

1. 创建 WPF 项目

首先,创建一个新的 WPF 应用程序项目。

2. 设计界面(MainWindow.xaml

<Window x:Class="ImageToPdfMerger.MainWindow"xmlns="http://sche

http://www.ppmy.cn/embedded/172538.html

相关文章

基于协同过滤算法的音乐推荐系统(源码+部署教程)

运行环境 基于协同过滤算法的音乐推荐系统的运行环境如下&#xff1a; • 前端&#xff1a;Vue • 后端&#xff1a;Java • IDE工具&#xff1a;IntelliJ IDEA • 技术栈&#xff1a;SpringBoot Vue MySQL 主要功能 基于协同过滤算法的音乐推荐系统主要包含前端和后端…

从需求文档到测试点:基于 OCR 和智能接口的高效图片信息提取与分析

在软件测试的实际工作中&#xff0c;需求文档是测试工程师的重要工具。然而&#xff0c;随着项目规模的不断扩大&#xff0c;需求文档中的内容变得越来越复杂&#xff0c;特别是图片信息往往承载了核心的业务逻辑、流程图、UI 设计、表格说明以及潜在测试点。这些图片信息是测试…

论文笔记 - ULTRA-SPARSE MEMORY NETWORK

1、目前Transformer模型现状 dense模型相同激活参数下&#xff0c;性能远低于MOE模型&#xff0c;因此大家倾向于训练MOE模型虽然同激活参数下&#xff0c;MOE性能比dense好&#xff0c;但MOE模型内存访问高&#xff0c;因此推理速度相比dense要慢不少。比如top2的moe&#xf…

在Pycharm配置conda虚拟环境的Python解释器

〇、前言 今天在配置python解释器时遇到了这样的问题 经过一下午自行摸索、上网搜寻后&#xff0c;终于找到的解决的方案&#xff0c;遂将该方法简要的记录下来&#xff0c;以备后用&#xff0c;并希望能帮助到有同样问题或需求的朋友:) 我所使用的软件的版本如下&#xff0c;假…

【AIGC】计算机视觉-YOLO系列家族

YOLO系列家族 &#xff08;1&#xff09;YOLO发展史&#xff08;2&#xff09; YOLOX&#xff08;3&#xff09; YOLOv6&#xff08;4&#xff09; YOLOv7&#xff08;5&#xff09; YOLOv8&#xff08;6&#xff09; YOLOv9&#xff08;7&#xff09;YOLOv10&#xff08;8&…

虚拟机下ubuntu进不了图形界面

6.844618] piix4_smbus 0000:07.3: SMBus Host ContrFoller not enabled! 7.859836] sd 2:0:0:0:0: [sda] Assuming drive cache: wirite through /dev/sda1: clean, 200424/1966080 files, 4053235/7864064 blocks ubuntu启动时&#xff0c;卡在上面输出位置 当前遇到的原因…

QT系列教程(13) 事件系统

事件系统 Qt事件系统是非常重要事件传递机制&#xff0c;所有消息传递流程都离不开这个机制&#xff0c;这里主要从重写类的事件响应函数&#xff0c;事件过滤器以及重写event函数三种方式做介绍。 重写事件函数 这种方式最为直接&#xff0c;我们先创建项目,选择QApplicati…

使用RabbitMQ实现流量削峰填谷

原理 流量削峰填谷是指在面对突发的高流量时&#xff0c;通过消息队列将瞬时大量请求暂时存储起来&#xff0c;并逐步处理这些请求&#xff0c;从而避免系统过载。RabbitMQ 作为消息中间件可以很好地支持这一需求&#xff0c;特别是结合其延时消息插件&#xff08;rabbitmq_de…