/** * Parses an HTML string and a string containing CSS into a list of Element objects. * The FontProvider will be obtained from iText's FontFactory object. * * @param html a String containing an XHTML snippet * @param css a String containing CSS * @return an ElementList instance */ public static ElementList ParseToElementList(String html, String css) { // CSS ICSSResolver cssResolver = new StyleAttrCSSResolver(); if (css != null) { ICssFile cssFile = XMLWorkerHelper.GetCSS(new MemoryStream(Encoding.Default.GetBytes(css))); cssResolver.AddCss(cssFile); } // HTML CssAppliers cssAppliers = new CssAppliersImpl(FontFactory.FontImp); HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers); htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory()); htmlContext.AutoBookmark(false); // Pipelines ElementList elements = new ElementList(); ElementHandlerPipeline end = new ElementHandlerPipeline(elements, null); HtmlPipeline htmlPipeline = new HtmlPipeline(htmlContext, end); CssResolverPipeline cssPipeline = new CssResolverPipeline(cssResolver, htmlPipeline); // XML Worker XMLWorker worker = new XMLWorker(cssPipeline, true); XMLParser p = new XMLParser(worker); p.Parse(new MemoryStream(Encoding.Default.GetBytes(html))); return(elements); }
public static ElementList ParseToElementList(string html, string css) { ICSSResolver iCSSResolver = new StyleAttrCSSResolver(); if (css != null) { ICssFile cSS = XMLWorkerHelper.GetCSS(new MemoryStream(Encoding.Default.GetBytes(css))); iCSSResolver.AddCss(cSS); } MyFontsProvider fontProvider = new MyFontsProvider(); CssAppliers cssAppliers = new CssAppliersImpl(fontProvider); //CssAppliers cssAppliers = new CssAppliersImpl(FontFactory.FontImp); HtmlPipelineContext htmlPipelineContext = new HtmlPipelineContext(cssAppliers); htmlPipelineContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory()); htmlPipelineContext.AutoBookmark(false); ElementList elementList = new ElementList(); ElementHandlerPipeline next = new ElementHandlerPipeline(elementList, null); HtmlPipeline next2 = new HtmlPipeline(htmlPipelineContext, next); CssResolverPipeline pipeline = new CssResolverPipeline(iCSSResolver, next2); XMLWorker listener = new XMLWorker(pipeline, true); XMLParser xMLParser = new XMLParser(listener); //因为XMLWork不支持html的单标签,所以要对单标签进行过滤。不然就会报错:Invalid nested tag div found, expected closing tag br html = html.Replace("<br>", "").Replace("<hr>", "").Replace("<img>", "").Replace("<param>", "") .Replace("<link>", ""); //xMLParser.Parse(new MemoryStream(Encoding.Default.GetBytes(html))); xMLParser.Parse(new MemoryStream(Encoding.UTF8.GetBytes(html))); return(elementList); }
private MemoryStream GetPDFStream(string htmlContent, string CSSContent) { iTextSharp.text.Document document = new iTextSharp.text.Document(); try { MemoryStream memStream = new System.IO.MemoryStream(); PdfWriter writer = PdfWriter.GetInstance(document, memStream); document.Open(); var interfaceProps = new Dictionary <string, Object>(); var ih = new ImageHander() { BaseUri = Request.Url.ToString() }; interfaceProps.Add(HTMLWorker.IMG_PROVIDER, ih); var cssResolver = new StyleAttrCSSResolver(); var CSSStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(CSSContent)); var cssFile = XMLWorkerHelper.GetCSS(CSSStream); cssResolver.AddCss(cssFile); CssAppliers ca = new CssAppliersImpl(); HtmlPipelineContext hpc = new HtmlPipelineContext(ca); hpc.SetTagFactory(Tags.GetHtmlTagProcessorFactory()); PdfWriterPipeline pdf = new PdfWriterPipeline(document, writer); CssResolverPipeline css = new CssResolverPipeline(cssResolver, new HtmlPipeline(hpc, pdf)); XMLWorker xworker = new XMLWorker(css, true); XMLParser p = new XMLParser(xworker); var HTMLStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(htmlContent)); var CSSStream1 = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(CSSContent)); using (TextReader sr = new StringReader(htmlContent)) { XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, HTMLStream, CSSStream1); //p.Parse(sr); } writer.CloseStream = false; document.Close(); return(memStream); } catch (Exception ex) { document.Close(); litPdfViewMsg.Text = ex.Message; //throw ex; return(null); } }
private void processHtml(IElementHandler elementsHandler) { var cssResolver = new StyleAttrCSSResolver(); if (CssFilesPath != null && CssFilesPath.Any()) { foreach (var cssFile in CssFilesPath) { cssResolver.AddCss(XmlWorkerUtils.GetCssFile(cssFile)); } } if (!string.IsNullOrEmpty(InlineCss)) { cssResolver.AddCss(InlineCss, "utf-8", true); } var htmlContext = new HtmlPipelineContext(new CssAppliersImpl(new UnicodeFontProvider(DefaultFont))); if (!string.IsNullOrEmpty(ImagesPath)) { htmlContext.SetImageProvider(new ImageProvider { ImagesPath = ImagesPath }); } htmlContext.CharSet(Encoding.UTF8); var tagsProcessorFactory = (DefaultTagProcessorFactory)Tags.GetHtmlTagProcessorFactory(); if (PdfElement != null) { tagsProcessorFactory.AddProcessor("totalpagesnumber", new TotalPagesNumberXmlWorkerProcessor(PdfElement)); } htmlContext.SetAcceptUnknown(true).AutoBookmark(true).SetTagFactory(tagsProcessorFactory); var pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new ElementHandlerPipeline(elementsHandler, null))); var worker = new XMLWorker(pipeline, parseHtml: true); var parser = new XMLParser(); parser.AddListener(worker); parser.Parse(new StringReader(Html)); }
/** * Get a CSSResolver implementation. * * @param addDefaultCss true if the defaultCss should already be added. * @return the default CSSResolver * */ virtual public ICSSResolver GetDefaultCssResolver(bool addDefaultCss) { ICSSResolver resolver = new StyleAttrCSSResolver(); if (addDefaultCss) { resolver.AddCss(GetDefaultCSS()); } return(resolver); }
//public FileResult GetEligibilityForm(string id = "0") public ActionResult GetMDTFormPDF(long id = 0, bool isdoc = false) { var fileBytes = new byte[0]; if (isdoc) { var attachDetails = FactoryInstance.Instance.CreateInstance <Reporting>().GetMDTAttachmentById(id); fileBytes = attachDetails.AttachmentFileByte; } else { var result = FactoryInstance.Instance.CreateInstance <Reporting>().GetMDTReportById(id, "pdf"); // Render the view xml to a string, then parse that string into an XML dom. string html = this.RenderActionResultToString(this.View("MDTFormPdfView", result)); var output = new MemoryStream(); using (var doc = new Document(PageSize.A4)) { var writer = PdfWriter.GetInstance(doc, output); PDFBackgroundHelper pageEventHelper = new PDFBackgroundHelper(); writer.PageEvent = pageEventHelper; writer.CloseStream = false; doc.Open(); var tagProcessors = (DefaultTagProcessorFactory)Tags.GetHtmlTagProcessorFactory(); tagProcessors.RemoveProcessor(HTML.Tag.IMG); // remove the default processor tagProcessors.AddProcessor(HTML.Tag.IMG, new CustomImageTagProcessor()); // use our new processor CssFilesImpl cssFiles = new CssFilesImpl(); cssFiles.Add(XMLWorkerHelper.GetInstance().GetDefaultCSS()); var cssResolver = new StyleAttrCSSResolver(cssFiles); cssResolver.AddCss(@"code { padding: 2px 4px; }", "utf-8", true); var charset = Encoding.UTF8; var hpc = new HtmlPipelineContext(new CssAppliersImpl(new XMLWorkerFontProvider())); hpc.SetAcceptUnknown(true).AutoBookmark(true).SetTagFactory(tagProcessors); // inject the tagProcessors var htmlPipeline = new HtmlPipeline(hpc, new PdfWriterPipeline(doc, writer)); var pipeline = new CssResolverPipeline(cssResolver, htmlPipeline); var worker = new XMLWorker(pipeline, true); var xmlParser = new XMLParser(true, worker, charset); xmlParser.Parse(new StringReader(html)); } output.Position = 0; fileBytes = output.ToArray(); } // Send the binary data to the browser. return(new BinaryContentResult(fileBytes, "application/pdf")); // return File(fileBytes, "application/pdf", "MDT form of" + result.Name + ".pdf"); }
virtual public void SetUp() { StyleAttrCSSResolver css = new StyleAttrCSSResolver(); css.AddCss("dummy { key1: value1; key2: value2 } .aklass { key3: value3;} #dumid { key4: value4}", true); CssResolverPipeline p = new CssResolverPipeline(css, null); Tag t = new Tag("dummy"); t.Attributes["id"] = "dumid"; t.Attributes["class"] = "aklass"; WorkerContextImpl context = new WorkerContextImpl(); p.Init(context); IPipeline open = p.Open(context, t, null); css2 = t.CSS; }
public static void ServePdfEmbeddedImages(string url) { using (var doc = new Document(PageSize.LETTER)) { var writer = PdfWriter.GetInstance(doc, HttpContext.Current.Response.OutputStream); writer.InitialLeading = 12.5f; doc.Open(); string lastPart = ""; string[] parts = url.Split('='); if (parts.Count() > 2) { lastPart = "_" + parts[parts.Count() - 2]; } HttpContext.Current.Response.ContentType = "application/pdf"; HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=Alert" + lastPart + ".pdf"); HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); WebClient web = new WebClient(); var html = web.DownloadString(url); var tagProcessors = (DefaultTagProcessorFactory)Tags.GetHtmlTagProcessorFactory(); tagProcessors.RemoveProcessor(HTML.Tag.IMG); // remove the default processor tagProcessors.AddProcessor(HTML.Tag.IMG, new CustomImageTagProcessor()); // use our new processor CssFilesImpl cssFiles = new CssFilesImpl(); cssFiles.Add(XMLWorkerHelper.GetInstance().GetDefaultCSS()); var cssResolver = new StyleAttrCSSResolver(cssFiles); cssResolver.AddCss(@"code { padding: 2px 4px; } img { padding: 4px 8px; }", "utf-8", true); var charset = Encoding.UTF8; var hpc = new HtmlPipelineContext(new CssAppliersImpl(new XMLWorkerFontProvider())); hpc.SetAcceptUnknown(true).AutoBookmark(true).SetTagFactory(tagProcessors); // inject the tagProcessors var htmlPipeline = new HtmlPipeline(hpc, new PdfWriterPipeline(doc, writer)); var pipeline = new CssResolverPipeline(cssResolver, htmlPipeline); var worker = new XMLWorker(pipeline, true); var xmlParser = new XMLParser(true, worker, charset); xmlParser.Parse(new StringReader(html)); HttpContext.Current.Response.Write(doc); HttpContext.Current.Response.End(); } //Process.Start("test.pdf"); }
/// <summary> /// Creates a <see cref="PdfTable"/> object from specified <b>HTML</b> code. /// </summary> /// <param name="html">A reference to input html code to convert.</param> /// <param name="css">A reference to css styles to apply.</param> /// <param name="config">Table configuration reference.</param> /// <returns> /// A new <see cref="PdfPTable"/> that contains a /// </returns> public static PdfTable CreateFromHtml(string html, string css = default, PdfTableConfig config = null) { var hasCss = !string.IsNullOrEmpty(css); if (!hasCss) { css = " "; } // css StyleAttrCSSResolver cssResolver = new StyleAttrCSSResolver(); ICssFile cssFile = XMLWorkerHelper.GetCSS(css.AsStream()); cssResolver.AddCss(cssFile); // html XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts))); CssAppliers cssAppliers = new CssAppliersImpl(fontProvider); HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers); htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory()); // pipelines ElementList elements = new ElementList(); ElementHandlerPipeline pdf = new ElementHandlerPipeline(elements, null); HtmlPipeline htmlPipeline = new HtmlPipeline(htmlContext, pdf); CssResolverPipeline cssPipeline = new CssResolverPipeline(cssResolver, htmlPipeline); // XML Worker XMLWorker worker = new XMLWorker(cssPipeline, true); XMLParser parser = new XMLParser(worker, Encoding.UTF8); parser.Parse(html.AsStream(Encoding.UTF8)); PdfPTable nativeTable = (PdfPTable)elements[0]; return(new PdfTable(nativeTable, config)); }
private static void AddHTMLText(PdfWriter writer, Document document, string htmlString, List <string> stylesheetFilePath) { var cssResolver = new StyleAttrCSSResolver(); Stream cssStream = null; if (stylesheetFilePath != null) { foreach (var stylesheetPath in stylesheetFilePath) { cssStream = new FileStream(stylesheetPath, FileMode.Open, FileAccess.Read); var cssFile = XMLWorkerHelper.GetCSS(cssStream); cssResolver.AddCss(cssFile); } } var cssAppliersImpl = new CssAppliersImpl(); var htmlPipelineContext = new HtmlPipelineContext(cssAppliersImpl); htmlPipelineContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory()); htmlPipelineContext.SetImageProvider(new DownloadImageProvider()); var pdfWriterPipeline = new PdfWriterPipeline(document, writer); var htmlPipe = new HtmlPipeline(htmlPipelineContext, pdfWriterPipeline); var cssResolverPipeline = new CssResolverPipeline(cssResolver, htmlPipe); var worker = new XMLWorker(cssResolverPipeline, true); var parser = new XMLParser(worker); var stringReader = new StringReader(htmlString); parser.Parse(stringReader); if (cssStream != null) { cssStream.Dispose(); } }
public static byte[] HTMLToPdf(string htmlContent) { System.IO.MemoryStream ms = new System.IO.MemoryStream(); StringWriter sw = new StringWriter(new StringBuilder(htmlContent)); HtmlTextWriter hw = new HtmlTextWriter(sw); StringReader sr = new StringReader(sw.ToString()); Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f); HTMLWorker htmlparser = new HTMLWorker(pdfDoc); PdfWriter.GetInstance(pdfDoc, ms); pdfDoc.Open(); htmlparser.Parse(sr); pdfDoc.Close(); byte[] Result = ms.ToArray(); return(Result); HtmlAgilityPack.HtmlDocument hd = new HtmlAgilityPack.HtmlDocument(); hd.OptionWriteEmptyNodes = true; //autoclose hr, br etc hd.OptionOutputAsXml = true; //MJW extension to preserve case of server tags hd.LoadHtml(htmlContent); #if (DEBUG) string tmpFile = Path.GetTempFileName(); System.IO.File.WriteAllText(tmpFile, hd.DocumentNode.OuterHtml); System.Diagnostics.Debug.WriteLine(tmpFile); #endif using (System.IO.MemoryStream stream = new System.IO.MemoryStream()) using (TextReader reader = new StringReader(hd.DocumentNode.OuterHtml)) using (Document document = new Document(PageSize.A4, 30, 30, 30, 30)) using (PdfWriter writer = PdfWriter.GetInstance(document, stream)) using (var srHtml = new StringReader(hd.DocumentNode.OuterHtml)) { CssFilesImpl cssFiles = new CssFilesImpl(); cssFiles.Add(XMLWorkerHelper.GetInstance().GetDefaultCSS()); var cssResolver = new StyleAttrCSSResolver(cssFiles); cssResolver.AddCss(@"code { padding: 2px 4px; }", "utf-8", true); var tagProcessors = (DefaultTagProcessorFactory)Tags.GetHtmlTagProcessorFactory(); tagProcessors.RemoveProcessor(HTML.Tag.IMG); // remove the default processor tagProcessors.AddProcessor(HTML.Tag.IMG, new CustomImageTagProcessor()); // use our new processor var charset = Encoding.UTF8; var hpc = new HtmlPipelineContext(new CssAppliersImpl(new XMLWorkerFontProvider())); hpc.SetAcceptUnknown(true).AutoBookmark(true).SetTagFactory(tagProcessors); // inject the tagProcessors var htmlPipeline = new HtmlPipeline(hpc, new PdfWriterPipeline(document, writer)); var pipeline = new CssResolverPipeline(cssResolver, htmlPipeline); var worker = new XMLWorker(pipeline, true); var xmlParser = new XMLParser(true, worker, charset); document.Open(); xmlParser.Parse(reader); document.Close(); return(stream.ToArray()); } }
public FileContentResult PDFView <T>(T model, string viewPath, string Page = "Potrait") { TSS_SurveyDocument TempModel = model as TSS_SurveyDocument; var Title = TempModel.SurveyTitle + " " + TempModel.SiteCode.ToString(); var html = WebUtility.HtmlDecode(GetHtml(model, viewPath)); byte[] bytes; using (var ms = new MemoryStream()) { using (var doc = new Document()) { using (var writer = PdfWriter.GetInstance(doc, ms)) { doc.Open(); try { var tagProcessors = (DefaultTagProcessorFactory)Tags.GetHtmlTagProcessorFactory(); tagProcessors.RemoveProcessor(HTML.Tag.IMG); // remove the default processor tagProcessors.AddProcessor(HTML.Tag.IMG, new CustomImageTagProcessor()); // use our new processor CssFilesImpl cssFiles = new CssFilesImpl(); cssFiles.Add(XMLWorkerHelper.GetInstance().GetDefaultCSS()); var cssResolver = new StyleAttrCSSResolver(cssFiles); cssResolver.AddCss(@"code { padding: 2px 4px; }", "utf-8", true); var charset = Encoding.UTF8; var hpc = new HtmlPipelineContext(new CssAppliersImpl(new XMLWorkerFontProvider())); hpc.SetAcceptUnknown(true).AutoBookmark(true).SetTagFactory(tagProcessors); // inject the tagProcessors var htmlPipeline = new HtmlPipeline(hpc, new PdfWriterPipeline(doc, writer)); var pipeline = new CssResolverPipeline(cssResolver, htmlPipeline); var worker = new XMLWorker(pipeline, true); var xmlParser = new XMLParser(true, worker, charset); xmlParser.Parse(new StringReader(html)); } catch (Exception ex) { var tagProcessors = (DefaultTagProcessorFactory)Tags.GetHtmlTagProcessorFactory(); tagProcessors.RemoveProcessor(HTML.Tag.IMG); // remove the default processor tagProcessors.AddProcessor(HTML.Tag.IMG, new CustomImageTagProcessor()); // use our new processor CssFilesImpl cssFiles = new CssFilesImpl(); cssFiles.Add(XMLWorkerHelper.GetInstance().GetDefaultCSS()); var cssResolver = new StyleAttrCSSResolver(cssFiles); cssResolver.AddCss(@"code { padding: 2px 4px; }", "utf-8", true); var charset = Encoding.UTF8; var hpc = new HtmlPipelineContext(new CssAppliersImpl(new XMLWorkerFontProvider())); hpc.SetAcceptUnknown(true).AutoBookmark(true).SetTagFactory(tagProcessors); // inject the tagProcessors var htmlPipeline = new HtmlPipeline(hpc, new PdfWriterPipeline(doc, writer)); var pipeline = new CssResolverPipeline(cssResolver, htmlPipeline); var worker = new XMLWorker(pipeline, true); var xmlParser = new XMLParser(true, worker, charset); xmlParser.Parse(new StringReader("<p>Some Content Failed to Load!</p>")); } finally { doc.Close(); } } } bytes = ms.ToArray(); } using (var reader = new PdfReader(bytes)) { using (var ms = new MemoryStream()) { using (var stamper = new PdfStamper(reader, ms)) { int PageCount = reader.NumberOfPages; for (int i = 1; i <= PageCount; i++) { ColumnText.ShowTextAligned(stamper.GetOverContent(i), Element.ALIGN_RIGHT, new Phrase(String.Format("Page {0} of {1}", i, PageCount), new Font(Font.FontFamily.HELVETICA, 8)), 560, 10, 0); } } bytes = ms.ToArray(); } } return(new FileContentResult(bytes, "application/pdf")); }
public FileContentResult PDFViewMultiple <T>(List <T> models, string viewPath, string Page = "Potrait") { List <byte[]> listBytes = new List <byte[]>(); int CheckModels = 0; TSS_SurveyDocument GetFirstSurvey = models[0] as TSS_SurveyDocument; string SiteSubCategory = GetFirstSurvey.SubCategory; float marginTop = 220; foreach (var model in models) { CheckModels++; TSS_SurveyDocument TempModel = model as TSS_SurveyDocument; var Title = TempModel.SurveyTitle + " " + TempModel.SiteCode.ToString(); TempModel.ChecklistCount = CheckModels; var html = WebUtility.HtmlDecode(GetHtml(TempModel, viewPath)); byte[] bytes; using (var ms = new MemoryStream()) { using (var doc = new Document(iTextSharp.text.PageSize.A4.Rotate(), 10, 10, marginTop, 10)) { using (var writer = PdfWriter.GetInstance(doc, ms)) { doc.Open(); try { doc.NewPage(); doc.SetPageSize(PageSize.A4.Rotate()); var tagProcessors = (DefaultTagProcessorFactory)Tags.GetHtmlTagProcessorFactory(); tagProcessors.RemoveProcessor(HTML.Tag.IMG); // remove the default processor tagProcessors.AddProcessor(HTML.Tag.IMG, new CustomImageTagProcessor()); // use our new processor CssFilesImpl cssFiles = new CssFilesImpl(); cssFiles.Add(XMLWorkerHelper.GetInstance().GetDefaultCSS()); var cssResolver = new StyleAttrCSSResolver(cssFiles); cssResolver.AddCss(@"code { padding: 2px 4px; }", "utf-8", true); var charset = Encoding.UTF8; var hpc = new HtmlPipelineContext(new CssAppliersImpl(new XMLWorkerFontProvider())); hpc.SetAcceptUnknown(true).AutoBookmark(true).SetTagFactory(tagProcessors); // inject the tagProcessors var htmlPipeline = new HtmlPipeline(hpc, new PdfWriterPipeline(doc, writer)); var pipeline = new CssResolverPipeline(cssResolver, htmlPipeline); var worker = new XMLWorker(pipeline, true); var xmlParser = new XMLParser(true, worker, charset); xmlParser.Parse(new StringReader(html)); } catch (Exception Ex) { doc.NewPage(); doc.SetPageSize(PageSize.A4.Rotate()); var tagProcessors = (DefaultTagProcessorFactory)Tags.GetHtmlTagProcessorFactory(); tagProcessors.RemoveProcessor(HTML.Tag.IMG); // remove the default processor tagProcessors.AddProcessor(HTML.Tag.IMG, new CustomImageTagProcessor()); // use our new processor CssFilesImpl cssFiles = new CssFilesImpl(); cssFiles.Add(XMLWorkerHelper.GetInstance().GetDefaultCSS()); var cssResolver = new StyleAttrCSSResolver(cssFiles); cssResolver.AddCss(@"code { padding: 2px 4px; }", "utf-8", true); var charset = Encoding.UTF8; var hpc = new HtmlPipelineContext(new CssAppliersImpl(new XMLWorkerFontProvider())); hpc.SetAcceptUnknown(true).AutoBookmark(true).SetTagFactory(tagProcessors); // inject the tagProcessors var htmlPipeline = new HtmlPipeline(hpc, new PdfWriterPipeline(doc, writer)); var pipeline = new CssResolverPipeline(cssResolver, htmlPipeline); var worker = new XMLWorker(pipeline, true); var xmlParser = new XMLParser(true, worker, charset); xmlParser.Parse(new StringReader("<p>Content Load Failed!</p>")); } finally { doc.Close(); } } } bytes = ms.ToArray(); } using (var reader = new PdfReader(bytes)) { using (var ms = new MemoryStream()) { using (var stamper = new PdfStamper(reader, ms)) { int PageCount = reader.NumberOfPages; for (int i = 1; i <= PageCount; i++) { if (SiteSubCategory.ToUpper() == "CRAN" || SiteSubCategory.ToUpper() == "AIRSCALE") { iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(Server.MapPath("~/Content/Images/ClientLogo/verizon_logo_mini.png")); var pdfContentByte = stamper.GetOverContent(i); image.SetAbsolutePosition(305, 495); pdfContentByte.AddImage(image); } else { iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(Server.MapPath("~/Content/Images/ClientLogo/rsz_amp-slide-bkg.jpg")); var pdfContentByte = stamper.GetOverContent(i); image.SetAbsolutePosition(285, 465); pdfContentByte.AddImage(image); } if (listBytes.Count == 0) { if (i != 1) { //ColumnText.ShowTextAligned(stamper.GetOverContent(i), Element.ALIGN_CENTER, // new Phrase(Title, new Font(Font.FontFamily.UNDEFINED, 15, Font.BOLD)), 420, 430, 0); } else { if (SiteSubCategory.ToUpper() == "MICROWAVE" || SiteSubCategory.ToUpper() == "CORRECTION" || SiteSubCategory.ToUpper() == "MAINTENANCE" || SiteSubCategory.ToUpper() == "LOS COP" || SiteSubCategory.ToUpper() == "FASTBACK") { ColumnText.ShowTextAligned(stamper.GetOverContent(i), Element.ALIGN_CENTER, new Phrase("Completed by AMP Communications LLC", new Font(Font.FontFamily.UNDEFINED, 15, Font.BOLD)), 430, 20, 0); } } } else { //ColumnText.ShowTextAligned(stamper.GetOverContent(i), Element.ALIGN_CENTER, // new Phrase(Title, new Font(Font.FontFamily.UNDEFINED, 15, Font.BOLD)), 420, 430, 0); } //ColumnText.ShowTextAligned(stamper.GetOverContent(i), Element.ALIGN_RIGHT, new Phrase(String.Format("Page {0} of {1}", i, PageCount), new Font(Font.FontFamily.HELVETICA, 8)), 760, 10, 0); } } listBytes.Add(ms.ToArray()); } } } byte[] Multiplebytes = CombineMultipleByteArrays(listBytes); return(new FileContentResult(Multiplebytes, "application/pdf")); }