如何使用Windows应用程序中的iTextsharp从内存中打开PDF

时间:2017-11-04 13:31:40

标签: winforms pdf c#-4.0 itext windows-applications

如何在Windows应用程序中使用iTextsharp从内存中打开浏览器控件中的PDF。我发现这段代码从内存中发送PDF作为邮件here。我需要帮助来修改它,以便能够在内存中而不是在邮件中显示在浏览器中。

这是我到目前为止所做的:

 private void SendPDFEmail(DataTable dt)
 {
        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter hw = new HtmlTextWriter(sw))
            {
                StringBuilder sb = new StringBuilder();

                sb.Append("<table width='100%' cellspacing='0' cellpadding='2'>");
                sb.Append("<tr><td align='center' colspan = '2'><b>Certified Information Systems Auditor CISA</b><br />Notice of Mock Result<br />TESTED <b>");
                sb.Append(lblToday.Text);
                sb.Append("</b></td></tr>");
                sb.Append("<tr><td colspan = '2'></td></tr>");
                sb.Append("<tr><td colspan = '2'><b>");
                sb.Append(lblThank.Text);
                sb.Append("</b></td></tr>");
                sb.Append("<tr><td colspan = '2'></td></tr>");
                sb.Append("<tr><td colspan = '2' align='center'><i><b>");
                sb.Append(lblTotalScore.Text);
                sb.Append("</b></i></td></tr>");
                sb.Append("<tr><td colspan = '2'></td></tr>");
                sb.Append("<tr><td colspan = '2'>");
                sb.Append(lblScoreInfo.Text);
                sb.Append("</td></tr>");
                sb.Append("<tr><td colspan = '2'></td></tr>");
                sb.Append("<tr><td colspan = '2' align='center'><b>");
                sb.Append(lblScoreArea.Text);
                sb.Append("</b></td></tr>");
                sb.Append("</table>");
                sb.Append("<br />");
                sb.Append("<table width='100%' cellspacing='0' cellpadding='2'>");
                sb.Append("<tr><td align='left' colspan = '2'>Issued by</td></tr>");
                sb.Append("<tr><td colspan = '2'></td></tr>");
                sb.Append("<tr><td colspan = '2' align='left'><b>Mock Team Organisers</b></td></tr>");
                sb.Append("</table>");

                StringReader sr = new StringReader(sb.ToString());

                Document pdfDoc = new Document(PageSize.A4, 20f, 10f, 10f, 10f);
                HTMLWorker htmlparser = new HTMLWorker(pdfDoc);

                try
                {
                    using (MemoryStream memoryStream = new MemoryStream())
                    {
                        PdfWriter writer = PdfWriter.GetInstance(pdfDoc, memoryStream);
                        pdfDoc.Open();
                        htmlparser.Parse(sr);
                        pdfDoc.Close();

                        byte[] bytes = memoryStream.ToArray();
                        memoryStream.Close();

                    }
                }
                catch //(Exception ex)
                {
                    //MessageBox.Show(ex.Message);
                }
            }
        }
    }

这是Windows应用程序而非Web应用程序

0 个答案:

没有答案