情景:在某文件夹下有多个子文件夹,每个子文件夹中有多个PDF文件,分别将子文件夹下的PDF合并,并将合并的PDF命名为子文件夹名称,然后存在该子文件夹中。

由于文件夹下还有文件夹,因此需要用递归方法判定该文件夹下是否有PDF文件

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;  //引用的程序集namespace beichuan
{class PDF123{// 合并PDF并修改合并后的文件名为文件所在文件夹名称// 文件夹下有多个多级子文件夹,最终文件夹下为两个pdf文件// filepath:根目录public void director(string filepath){//绑定到指定的文件夹目录DirectoryInfo dir = new DirectoryInfo(filepath);//检索表示当前目录的文件和子目录FileSystemInfo[] fsinfos = dir.GetFileSystemInfos();//遍历检索的文件和子目录List<string> fileList = new List<string>();foreach (FileSystemInfo fsinfo in fsinfos){//判断是否为空文件夹  if (fsinfo is DirectoryInfo){//递归调用director(fsinfo.FullName);}else{//将得到的文件全路径放入到集合中fileList.Add(fsinfo.FullName);string[] dirName = fileList[0].Split('\\');string outMergeFile = Path.GetDirectoryName(fileList[0]) + "\\" + dirName[dirName.Length - 2] + ".pdf";PdfReader reader;Rectangle re;Document document = new Document();PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(outMergeFile, FileMode.Create));document.Open();PdfContentByte cb = writer.DirectContent;PdfImportedPage newPage;for (int i = 0; i < fileList.Count; i++){reader = new PdfReader(fileList[i]);int iPageNum = reader.NumberOfPages;for (int j = 1; j <= iPageNum; j++){re = reader.GetPageSize(reader.GetPageN(j)); //获取当前页面的纸张方向document.SetPageSize(re); //设置新PDF当前页面的纸张方向document.NewPage();newPage = writer.GetImportedPage(reader, j);cb.AddTemplate(newPage, 0, 0);}}document.Close();}}}}
}

C#递归合并PDF文件相关推荐

  1. python合并pdf 加书签_使用Python批量合并PDF文件(带书签功能)

    1 #!/usr/bin/env python3 2 #-*- coding: utf-8 -*- 3 ''' 4 #文件名:pdfmerge.py5 本脚本用来合并pdf文件,输出的pdf文件按输入 ...

  2. mac怎么合并两个容器_PDF怎样合并?在Mac上合并PDF文件的最佳方法

    在保存编辑内容的同时合并PDF文件可能是一个大问题.合并大文件时,"预览"不涵盖展平,并且会使系统变慢.这些和其他问题可能会迫使您寻找更好的选择.让我们探索在Mac上组合PDF以涵 ...

  3. Java合并pdf文件

    Java合并pdf文件 今天帮老师整理资料需要合并pdf文件,下了许多软件发现都需要VIP才行,所以写了个程序来帮助合并,直接在主程序中修改文件路径即可,如下图: 主要代码如下: package co ...

  4. 页面显示pdf_PDF怎样合并?在Mac上合并PDF文件的最佳方法

    在保存编辑内容的同时合并PDF文件可能是一个大问题.合并大文件时,"预览"不涵盖展平,并且会使系统变慢.这些和其他问题可能会迫使您寻找更好的选择.让我们探索在Mac上组合PDF以涵 ...

  5. 电脑上怎么做pdf文件_怎么合并PDF文件?PDF合并软件哪个好?

    怎么合并PDF文件?很多人现在在工作中都会使用到PDF格式的文件.在传输这些PDF文件时,如果一张一张的发送速度会很慢,也会给文件接收者造成麻烦.遇到这种情况时,我们最好将这些PDF文件先合并起来.P ...

  6. ​合并PDF文件什么方法很简单?看完你就明白了

    想要将几个PDF文件合并到一起,什么方法使用起来是很简单的呢?PDF文件作为大家经常使用的文件之一,对它的编辑需求也很多,除了需要编辑文件的内容之外,还有需要将几个文件合并到一起使用的需求.那么我们如 ...

  7. ImageMagick convert多张照片JPG转成pdf格式,pdfunite合并PDF文件

    在认识ImageMagick之前,我***的图像浏览软件是KuickShow,截图软件是KSnapShot,这两款软件都是KDE附带的软件,用起来也是蛮方便的.在一次偶然的机会中,我遇到了ImageM ...

  8. 如何合并pdf文件?多pdf文件合并技能分享

    如何合并pdf文件?现在是无纸化办公的时代,我们编写和处理文件都是在电脑上完成,pdf因为其独特的特点(如稳定性)成为我们经常使用的一种文件格式,越来越多的人喜欢使用pdf文档.我们也经常从网上下载到 ...

  9. java 合并pdf报错,[Java教程]java合并PDF文件

    [Java教程]java合并PDF文件 0 2017-02-22 12:00:52 使用java代码合并PDF文件需要导入iText-2.1.7.jar包1 import java.io.FileOu ...

最新文章

  1. 股票投资--中线篇(转)
  2. ccf-csp #201703-2 学生排队
  3. 仔细想了想支持向量机(Support Vector Mechine)
  4. rust(68)-rust enum
  5. php通过MongoClient扩展连接mongodb库的两点建议
  6. 10-1 5-1 查询销售便携式电脑但不销售PC的厂商 (20 分)(分析+详解)
  7. Effective Java~9. try-with-resource 优先于 try-catch
  8. html5 拖放游戏,HTML5拖放API实现拖放排序的实例代码
  9. 计算机组成原理实验单周期处理,计算机组成原理实验报告1-单周期.doc
  10. ssis 链接mysql_SSIS 连接数据
  11. python中class什么意思_python class是什么
  12. 内部 CA 证书管理
  13. JAVA:实现PigeonholeSort鸽巢排序算法(附完整源码)
  14. HTML 代码混淆与压缩
  15. 我总结的30条架构原则~
  16. ASP.Net: EshineASPNet教程-支付机构支付模块
  17. 可追踪评估模型TAM的评估
  18. IOS 插屏广告弹窗
  19. 免费领取百度云盘2048G永久空间,永久离线下载特权
  20. KL-MPLC无人值守系统

热门文章

  1. 《AutoCAD Advanced 3D Modeling》学习笔记
  2. 进程号一直在变,怎么杀死程序?
  3. 【知识兔】Word教程小技巧之如何实现Word中的表格求和
  4. Windows10企业版下载与安装教程
  5. vb.net 教程 3-4 窗体编程 公共控件9 ListView 6
  6. 武汉python培训机构有哪些
  7. 单片机升降机c语言程序,基于单片机的货运升降机控制系统设计
  8. pureref 平移用不了_参考图管理神器PureRef使用教程(附注册机)
  9. SEER流量众筹模块开发测试网络及使用文档发布
  10. Android开发 指纹识别