这里使用到 itextsharp dll, 需要的可以在我的CSDN下载:

https://download.csdn.net/download/q215046120/11804113

$dllpath = "\\cnfuoapp130\rpa_folder\kdc_rpa\Jayden\RC_Expense\Rc_Submit_IBS\Library";

$sourcePDF = "C:\Users\jtang20\Desktop\splitPdf\20200912_SLE-BEL-S-20-003_Rachel Zheng12345678.pdf";

$outputFolder = $sourcePDF.Substring(0,$sourcePDF.LastIndexOf("\") + 1) + "split"; # "C:\Users\jtang20\Desktop\splitPdf\split";

$combineFolder = $sourcePDF.Substring(0,$sourcePDF.LastIndexOf("\") + 1) + "combine"; # "C:\Users\jtang20\Desktop\splitPdf\combine";

Function splitPDF(){

if(Test-Path $outputFolder){

[void](Remove-Item -Path $outputFolder -Recurse);

}

Start-Sleep 1;

[void](New-Item -Path $outputFolder -ItemType Directory);

$path = "$dllpath\itextsharp.dll";

[Void][System.Reflection.Assembly]::LoadFile($path);

$reader = New-Object iTextSharp.text.pdf.PdfReader($sourcePDF);

$pCount = $reader.NumberOfPages;

$startPos = 1;

for($i = 1;$i -le $pCount; $i++){

if($i -le $pCount){

$output = $outputFolder + "\" + $i + ".pdf";

$fileStream = New-Object System.IO.FileStream($output, [System.IO.FileMode]::OpenOrCreate);

$document = New-Object iTextSharp.text.Document;

$pdfCopy = New-Object iTextSharp.text.pdf.PdfCopy($document, $fileStream);

$document.Open();

$pdfCopy.AddPage($pdfCopy.GetImportedPage($reader, $i));

$newFile = [System.IO.FileInfo]::new($output);

#Write-Host $newFile.Length;

$pdfCopy.FreeReader($reader);

$document.Close();

Start-Sleep 0.2;

$fileStream.Close();

}

}

$reader.Close();

Start-Sleep 0.2;

return $pCount;

}

Function MergePdf(){

if(Test-Path $combineFolder){

[void](Remove-Item -Path $combineFolder -Recurse);

}

Start-Sleep 1;

[void](New-Item -Path $combineFolder -ItemType Directory);

$sList = "";$returnFP = "";

$lengthCount = 0;

for($i = 1;$i -le $pCount; $i++){

# FileInfo

$FI = [System.IO.FileInfo]::new("$outputFolder\$i.pdf");

$lengthCount = $lengthCount + $Fi.Length;

if($lengthCount -gt (9 * 1024 * 1024)){

if([String]::IsNullOrEmpty($sList)){

$sList = $i.ToString();

}else{

$sList = $sList + "|$i";

}

$lengthCount = $Fi.Length;

}else{

if([String]::IsNullOrEmpty($sList)){

$sList = $i.ToString();

}else{

$sList = $sList + ",$i";

}

}

}

$iCount = 0;

$sFileName = $sourcePDF.Substring($sourcePDF.LastIndexOf("\") + 1);

if($sFileName.Length -gt 43){

$sFileName = $sFileName.Substring(0,43);

}else{

$sFileName = $sFileName.Substring(0,$sFileName.LastIndexOf("."));

}

$reader = New-Object iTextSharp.text.pdf.PdfReader($sourcePDF);

foreach($pageColl in $sList.Split("|")){

$path = "$dllpath\itextsharp.dll";

[Void][System.Reflection.Assembly]::LoadFile($path);

$sFP = "$combineFolder\$sFileName`_" + "$iCount.pdf";

if($returnFP -eq ""){

$returnFP = $sFP;

}else{

$returnFP = $returnFP + "," + $sFP;

}

$fileStream = New-Object System.IO.FileStream(($sFP), [System.IO.FileMode]::OpenOrCreate);

$document = New-Object iTextSharp.text.Document;

$pdfCopy = New-Object iTextSharp.text.pdf.PdfCopy($document, $fileStream);

$document.Open();

foreach ($objPage in $pageColl.split(",")){

#$sFileName" + "_" +

$pdfCopy.AddPage($pdfCopy.GetImportedPage($reader, $objPage));

}

$pdfCopy.FreeReader($reader);

$document.Close();

Start-Sleep 0.2;

$fileStream.Close();

$iCount++;

}

$reader.Close();

#>

return $returnFP;

}

$pCount = splitPDF;

#Write-Host $pCount;

$sAllFile = MergePdf;

Write-Output $sAllFile;

Powershell 拆分和合并PDF相关推荐

  1. 使用Apache PDFBox实现拆分、合并PDF

    文章目录 使用Apache PDFBox实现拆分.合并PDF 问题背景 Apache PDFBox介绍 拆分PDF 合并PDF 拆分 + 合并 完整代码 参考: 使用Apache PDFBox实现拆分 ...

  2. (三)拆分和合并PDF

    1. 引用第三方itextsharp.dll文件 2. 前台页面设计 <html xmlns="http://www.w3.org/1999/xhtml"> <h ...

  3. linux 剪切合并文件夹,使用PDF-Shuffler拆分和合并PDF文件[Linux] | MOS86

    如果您有两个或更多个Word文档,您可以轻松地在任何Office套件中打开它们,并剪切/粘贴内容以将其分割或合并.PDF文件怎么样?如果你有几个PDF文件要合并在一起,那么你怎么能这么容易地做到这一点 ...

  4. PDF怎么拆分/合并? 3款 PDF 拆分和合并工具分享

    以PDF格式传输文档已广泛使用很长时间,也是传输文档的最常见方式之一.但是,当涉及到从众多PDF文件中提取特定页面并将它们放在一起以制作新的PDF文档时,我们将需要专用软件来合并和拆分多个PDF. 现 ...

  5. python合并pdf_实用 | 手把手教你用Python分割与合并PDF

    访问flyai.club,一键创建你的人工智能项目. 在工作中,可能会涉及处理 pdf 文件,PyPDF2提供了读,分割,合并,文件转换等多种操作,可以让你轻松的处理 pdf 文件.在本文中,我们将学 ...

  6. 如何快速合并PDF文件?

    文章来源:https://www.reneelab.com.cn/how-to-join-pdf-files.html 目录 一.专业的PDF合并软件 1.都叫兽™PDF转换软件 2.Adobe Ac ...

  7. PDF 补丁丁 (修改PDF书签;拆分、合并、制作PDF;提取图片) 0.3.0.8 正式版

    PDF 补丁丁 0.3.0.8 正式版 新版本已经发布,请到博客首页下载. 软件简介 PDF补丁丁是一个用于修改PDF文件信息的工具.它具有以下功能: ■ 修改文档(带"*"号部分 ...

  8. 极速系列05—python批量拆分/合并PDF文档

    1 python按照页数拆分PDF文档 目的: 将一个PDF文档按照指定的页数拆份额为多个文档 思路: 使用PyPDF库中的PdfFileReader, PdfFileWriter类,这两个类是PyP ...

  9. JAVA合并pdf,拆分pdf文档

    毕业材料整理的时候要合并pdf文档,把一些文档按页码拆分出来,我本来想用wps弄的,但是它要vip,就这?就vip?哼,身为一个计算机毕业的,这种小事与其再去网上找别的软件解决,不如自己代码解决.(其 ...

最新文章

  1. 线段树 ---- CF1004F Sonya and Bitwise OR(线段树上分治合并区间信息 + or 前缀和的log性质)
  2. 摊牌了!国内首个基于结构光投影三维重建系列视频课程
  3. 支付宝的高可用与容灾架构演进
  4. Boost:boost::asio模块的引用计数测试程序
  5. http协议实现web服务器,http协议实现web服务器
  6. 2018年五大最佳前端框架比较,程序员会怎么选?
  7. CCF201412-2 Z字形扫描(解法二)(100分)
  8. php下载当前页面,php实现当前页面点击下载文件的简单方法
  9. C#-WinForm-布局-Anchor-锁定布局、Dock-填充布局、工具箱中的容器
  10. 156.PHP多进程
  11. 计算机EXE文件改参数,exe文件修改器(eXeScope)
  12. xctf crackme
  13. teamtalk实现即时通讯
  14. Android 10 SystemUI中Android.bp文件中集成第三方JAR包或者so文件的方法
  15. position:relative的用法
  16. [译]为什么苹果眼镜会没有ARKit——当前AR产品的8大问题
  17. 7 125 kHz RFID技术
  18. python 运算太慢怎么办_干货|如何入门 Python 爬虫?爬虫原理及过程详解
  19. 琐碎的知识点(xly)
  20. 安然邮箱社交网络分析

热门文章

  1. 金蝶EAS GUI客户端进入SQL语句执行页面方法
  2. 【一罐寡言】只有心不疲惫,灵魂才会坚韧
  3. RK3399驱动开发 | 15 - RTC实时时钟芯片HYM8563S调试(基于linux5.4.32内核)
  4. 2022年全球市场汽车倒车雷达总体规模、主要生产商、主要地区、产品和应用细分研究报告
  5. 如何解决数据科学家、数据工程师和生产工程师的阻抗失配问题
  6. 三星I9308手机secsetpwizard错误解决
  7. Access denied for user 'mysql用户名'@'主机或IP' (using password: YES)'
  8. 利用Fiddler手机抓包对ONE APP网页爬虫实现电影资讯微信Java开发
  9. 蓝牙芯片支持音频传输,播放U盘TF卡,还能传输数据透传串口控制
  10. 2k2实用球员_nba2kol2实用球员