Estoy tratando de hacer algo que pensé sería bastante simple, sin embargo, no es tan sencillo y Google no ha ayudado.¿Cómo agregar una página en blanco a un pdf usando iTextSharp?
Estoy utilizando iTextSharp para combinar documentos PDF (letras) juntos para que puedan imprimirse todos a la vez. Si una letra tiene un número impar de páginas, necesito adjuntar una página en blanco, para que podamos imprimir las letras a doble cara.
Aquí es el código básico que tengo en el momento de la fusión de todas las letras:
// 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);
}
}
He intentado usar:
document.SetPageSize(reader.GetPageSizeWithRotation(1));
document.NewPage();
al final del bucle para un extraño cantidad de páginas sin éxito
Agregar una tabla no funcionó para mí. Tal vez debido a una versión más nueva de ITextSharp. 'Add (new Chunk());' funcionó para mí. – Crispy
Gracias por la actualización, esto fue hace bastante tiempo. :) – Russell
Puedo confirmar que para la versión más reciente debe agregar un 'Chunk' en lugar de una tabla. Funcionó a la perfección! –