Comment ajouter une page vierge d'un fichier pdf à l'aide iTextSharp?

Je suis en train de faire quelque chose que je pensais serait assez simple, cependant, il n'est pas si simple et google n'a pas aidé.

Je suis en utilisant iTextSharp de fusionner des documents PDF (lettres) afin qu'ils puissent tous être imprimé à la fois. Si une lettre a un nombre impair de pages, j'ai besoin d'ajouter une page vierge, afin que nous puissions imprimer les lettres double face.

Voici le code de base que j'ai à l'instant de la fusion de toutes les lettres:

//initiaise
 MemoryStream pdfStreamOut = new MemoryStream();
    Document document = null;
    MemoryStream pdfStreamIn = null;
    PdfReader reader = null;
    int numPages = 0;
    PdfWriter writer = null;


for int(i = 0;i < letterList.Count; i++)
{
    byte[] myLetterData = ...;
    pdfStreamIn = new MemoryStream(myLetterData);
    reader = new PdfReader(pdfStreamIn);
    numPages = reader.NumberOfPages;

    //open the streams to use for the iteration
    if (i == 0)
    {
        document = new Document(reader.GetPageSizeWithRotation(1));
        writer = PdfWriter.GetInstance(document, pdfStreamOut);
        document.Open();
    }

    PdfContentByte cb = writer.DirectContent;
    PdfImportedPage page;

    int importedPageNumber = 0;
    while (importedPageNumber < numPages)
    {
        importedPageNumber++;
        document.SetPageSize(reader.GetPageSizeWithRotation(importedPageNumber));
        document.NewPage();
        page = writer.GetImportedPage(reader, importedPageNumber);
        cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
    }
}

J'ai essayé d'utiliser:

    document.SetPageSize(reader.GetPageSizeWithRotation(1));
    document.NewPage();

à la fin de la boucle for pour un nombre impair de pages sans succès.

OriginalL'auteur Russell | 2010-03-24