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(); }
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5