Ответ 1
Вы просматриваете 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();
}
Итак, в вашем исходном коде кода через ваш pdf, и каждые 50 страниц вызывают вышеуказанный метод. Вам просто нужно добавить переменные в свой блок, чтобы отслеживать начальные и конечные страницы.