Utilice PdfReader.SelectPages() combinado con PdfStamper. El siguiente código usa iTextSharp 5.5.1.
public void SelectPages(string inputPdf, string pageSelection, string outputPdf)
{
using (PdfReader reader = new PdfReader(inputPdf))
{
reader.SelectPages(pageSelection);
using (PdfStamper stamper = new PdfStamper(reader, File.Create(outputPdf)))
{
stamper.Close();
}
}
}
Luego llame a este método con la selección de página correcta para cada condición.
Condición 1:
SelectPages(inputPdf, "1-4", outputPdf);
Condición 2:
SelectPages(inputPdf, "1-4,6", outputPdf);
o
SelectPages(inputPdf, "1-6,!5", outputPdf);
Condición 3:
SelectPages(inputPdf, "1-5", outputPdf);
Aquí está el comentario del código fuente de iTextSharp sobre lo que constituye una selección de página. Esto se encuentra en la clase SequenceList que se utiliza para procesar una selección de página:
/**
* This class expands a string into a list of numbers. The main use is to select a
* range of pages.
* <p>
* The general systax is:<br>
* [!][o][odd][e][even]start-end
* <p>
* You can have multiple ranges separated by commas ','. The '!' modifier removes the
* range from what is already selected. The range changes are incremental, that is,
* numbers are added or deleted as the range appears. The start or the end, but not both, can be ommited.
*/