Torna al Thread
public static byte[] GetPDF(IEnumerable<string> lista)
{
int numberOfPages, currentPageNumber, rotation;
MemoryStream ms = new MemoryStream();
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
doc.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage page;
foreach (string f in lista)
{
//--- safety code
if (!File.Exists(f))
return null;
byte[] bytes = File.ReadAllBytes(f);
PdfReader reader = new PdfReader(bytes);
numberOfPages = reader.NumberOfPages;
currentPageNumber = 0;
while (currentPageNumber < numberOfPages)
{
currentPageNumber += 1;
doc.SetPageSize(reader.GetPageSize(currentPageNumber));
doc.NewPage();
page = writer.GetImportedPage(reader, currentPageNumber);
rotation = reader.GetPageRotation(currentPageNumber);
if (rotation == 90 || rotation == 270)
cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(currentPageNumber).Height);
else
cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0);
}
}
doc.Close();
return ms.ToArray();
}