Powershell 拆分和合并PDF
这里使用到 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相关推荐
- 使用Apache PDFBox实现拆分、合并PDF
文章目录 使用Apache PDFBox实现拆分.合并PDF 问题背景 Apache PDFBox介绍 拆分PDF 合并PDF 拆分 + 合并 完整代码 参考: 使用Apache PDFBox实现拆分 ...
- (三)拆分和合并PDF
1. 引用第三方itextsharp.dll文件 2. 前台页面设计 <html xmlns="http://www.w3.org/1999/xhtml"> <h ...
- linux 剪切合并文件夹,使用PDF-Shuffler拆分和合并PDF文件[Linux] | MOS86
如果您有两个或更多个Word文档,您可以轻松地在任何Office套件中打开它们,并剪切/粘贴内容以将其分割或合并.PDF文件怎么样?如果你有几个PDF文件要合并在一起,那么你怎么能这么容易地做到这一点 ...
- PDF怎么拆分/合并? 3款 PDF 拆分和合并工具分享
以PDF格式传输文档已广泛使用很长时间,也是传输文档的最常见方式之一.但是,当涉及到从众多PDF文件中提取特定页面并将它们放在一起以制作新的PDF文档时,我们将需要专用软件来合并和拆分多个PDF. 现 ...
- python合并pdf_实用 | 手把手教你用Python分割与合并PDF
访问flyai.club,一键创建你的人工智能项目. 在工作中,可能会涉及处理 pdf 文件,PyPDF2提供了读,分割,合并,文件转换等多种操作,可以让你轻松的处理 pdf 文件.在本文中,我们将学 ...
- 如何快速合并PDF文件?
文章来源:https://www.reneelab.com.cn/how-to-join-pdf-files.html 目录 一.专业的PDF合并软件 1.都叫兽™PDF转换软件 2.Adobe Ac ...
- PDF 补丁丁 (修改PDF书签;拆分、合并、制作PDF;提取图片) 0.3.0.8 正式版
PDF 补丁丁 0.3.0.8 正式版 新版本已经发布,请到博客首页下载. 软件简介 PDF补丁丁是一个用于修改PDF文件信息的工具.它具有以下功能: ■ 修改文档(带"*"号部分 ...
- 极速系列05—python批量拆分/合并PDF文档
1 python按照页数拆分PDF文档 目的: 将一个PDF文档按照指定的页数拆份额为多个文档 思路: 使用PyPDF库中的PdfFileReader, PdfFileWriter类,这两个类是PyP ...
- JAVA合并pdf,拆分pdf文档
毕业材料整理的时候要合并pdf文档,把一些文档按页码拆分出来,我本来想用wps弄的,但是它要vip,就这?就vip?哼,身为一个计算机毕业的,这种小事与其再去网上找别的软件解决,不如自己代码解决.(其 ...
最新文章
- 线段树 ---- CF1004F Sonya and Bitwise OR(线段树上分治合并区间信息 + or 前缀和的log性质)
- 摊牌了!国内首个基于结构光投影三维重建系列视频课程
- 支付宝的高可用与容灾架构演进
- Boost:boost::asio模块的引用计数测试程序
- http协议实现web服务器,http协议实现web服务器
- 2018年五大最佳前端框架比较,程序员会怎么选?
- CCF201412-2 Z字形扫描(解法二)(100分)
- php下载当前页面,php实现当前页面点击下载文件的简单方法
- C#-WinForm-布局-Anchor-锁定布局、Dock-填充布局、工具箱中的容器
- 156.PHP多进程
- 计算机EXE文件改参数,exe文件修改器(eXeScope)
- xctf crackme
- teamtalk实现即时通讯
- Android 10 SystemUI中Android.bp文件中集成第三方JAR包或者so文件的方法
- position:relative的用法
- [译]为什么苹果眼镜会没有ARKit——当前AR产品的8大问题
- 7 125 kHz RFID技术
- python 运算太慢怎么办_干货|如何入门 Python 爬虫?爬虫原理及过程详解
- 琐碎的知识点(xly)
- 安然邮箱社交网络分析
热门文章
- 金蝶EAS GUI客户端进入SQL语句执行页面方法
- 【一罐寡言】只有心不疲惫,灵魂才会坚韧
- RK3399驱动开发 | 15 - RTC实时时钟芯片HYM8563S调试(基于linux5.4.32内核)
- 2022年全球市场汽车倒车雷达总体规模、主要生产商、主要地区、产品和应用细分研究报告
- 如何解决数据科学家、数据工程师和生产工程师的阻抗失配问题
- 三星I9308手机secsetpwizard错误解决
- Access denied for user 'mysql用户名'@'主机或IP' (using password: YES)'
- 利用Fiddler手机抓包对ONE APP网页爬虫实现电影资讯微信Java开发
- 蓝牙芯片支持音频传输,播放U盘TF卡,还能传输数据透传串口控制
- 2k2实用球员_nba2kol2实用球员