Bil*_*lly 15 c# pdf asp.net split itextsharp
public int SplitAndSave(string inputPath, string outputPath)
{
FileInfo file = new FileInfo(inputPath);
string name = file.Name.Substring(0, file.Name.LastIndexOf("."));
using (PdfReader reader = new PdfReader(inputPath))
{
for (int pagenumber = 1; pagenumber <= reader.NumberOfPages; pagenumber++)
{
string filename = pagenumber.ToString() + ".pdf";
Document document = new Document();
PdfCopy copy = new PdfCopy(document, new FileStream(outputPath + "\\" + filename, FileMode.Create));
document.Open();
copy.AddPage(copy.GetImportedPage(reader, pagenumber));
document.Close();
}
return reader.NumberOfPages;
}
}
Run Code Online (Sandbox Code Playgroud)
我想将Pdf分成多个PDF,间隔为50页.(如果有400页PDF,我想要8个pdf).上面的代码将每个页面拆分为pdf.请帮帮我...我正在使用带有iTextSharp的asp.net.
ova*_*ein 13
每次推进页面时,您都会遍历pdf并创建新文档.您需要跟踪您的页面,以便每50页执行一次拆分.我个人会把它放在一个单独的方法中,并从你的循环中调用它.像这样的东西:
private void ExtractPages(string sourcePDFpath, string outputPDFpath, int startpage, int endpage)
{
PdfReader reader = null;
Document sourceDocument = null;
PdfCopy pdfCopyProvider = null;
PdfImportedPage importedPage = null;
reader = new PdfReader(sourcePDFpath);
sourceDocument = new Document(reader.GetPageSizeWithRotation(startpage));
pdfCopyProvider = new PdfCopy(sourceDocument, new System.IO.FileStream(outputPDFpath, System.IO.FileMode.Create));
sourceDocument.Open();
for (int i = startpage; i <= endpage; i++)
{
importedPage = pdfCopyProvider.GetImportedPage(reader, i);
pdfCopyProvider.AddPage(importedPage);
}
sourceDocument.Close();
reader.Close();
}
Run Code Online (Sandbox Code Playgroud)
因此,在原始代码循环中通过pdf,每50页调用上面的方法.您只需在块中添加变量即可跟踪开始/结束页面.
归档时间: |
|
查看次数: |
26749 次 |
最近记录: |