参考资料:https://stackoverflow.com/questions/18762007/split-pdf-into-multiple-pdfs-using-itextsharp
参考是基于Vb.net, 本文改为Powershell
吐槽:老外是真的狗,明明人家都问怎么只拆分前8页,拆分步骤都有了,但是下面的答案几乎各种乱七八糟。。。,其实加个判断PDF是否多于8页,如果多于8页,循环就拆前8页就好,如果少于8页,全拆就好了。
直接上代码:
[void][System.Reflection.Assembly]::LoadFile("C:\Users\XX\Desktop\pdfT\itextsharp.dll");
$pdfReader = [iTextSharp.text.pdf.PdfReader]::new("C:\Users\jtang20\Desktop\pdfT\XXX.pdf");
for($i = 1; $i -le $pdfReader.NumberOfPages; $i++){
$sourceDocument = [iTextSharp.text.Document]::new();
# 拆分的名字
$sSplitFilePath = "C:\Users\XX\Desktop\pdfT\wm\XXX" + $i.ToString() + ".pdf";
$pdfCopyProvider = [iTextSharp.text.pdf.PdfCopy]::new($sourceDocument,[System.IO.FileStream]::new($sSplitFilePath, [System.IO.FileMode]::Create))
$r = $sourceDocument.Open();
$importedPage = $pdfCopyProvider.GetImportedPage($pdfReader, $i);
$pdfCopyProvider.AddPage($importedPage);
$sourceDocument.close();$sourceDocument = $null;
}
$pdfReader.Close();$pdfReader = $null;