【问题标题】:Export div content to pdf format将 div 内容导出为 pdf 格式
【发布时间】:2014-02-18 05:57:31
【问题描述】:

我使用以下代码使用 itextsharp 将 div 内容导出为 pdf 格式

Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Panel.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
Panel1.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
// Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
Document pdfDoc = new Document(new Rectangle(1000f, 1000f));
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();

它显示以下错误

Could not find a part of the path 'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\Images\logo.png'.`

如果我将徽标隐藏在 desin 中,则将其导出为 pdf,但缺少对齐。如何纠正它。我需要导出的页面如下

【问题讨论】:

  • 你能告诉我们你试图导出的 html 部分吗?我认为这个链接可以帮助你! aspsnippets.com/Articles/…
  • 我编辑了我的问题并上传了图片,请检查

标签: c# asp.net c#-4.0


【解决方案1】:

为了将内容导出到任何 pdf 文件,您需要遵循 pdf 文件的基本约定,这些约定在以下 pdf 参考的附录 G 中给出,

http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf

【讨论】:

    【解决方案2】:
     Firstly install class in Nuget console: Install-Package itextsharp.xmlworker
    Then add namespace: using iTextSharp.tool.xml;  
    
    
    
    
    
     Response.ContentType = "application/pdf";
                //string pdf;
                // pdf = Convert.ToInt32(hidTablEmpCode.ToString()).ToString() + ".Pdf";
                Response.AddHeader("content-disposition", "attachment;filename=Panel.pdf");
                //Response.AddHeader("content-disposition", "attachment;filename=Panel.pdf");
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                // var example_html = @"<p>This is <span class="" headline="" style="">some</span> sample  text<span style="">!!!</span></p>";
                StringReader sr = new StringReader(lblMessageDetail.Text);
                Document pdfDoc = new Document(PageSize.A4, 50f, 50f, 50f, 50f);
                var writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
                pdfDoc.Open();
                for (int i = 0; i < 5; i++)
                {
                    string imageFilePath2 = Server.MapPath(".") + "/images/GraphicNew.jpg";
                    iTextSharp.text.Image jpg3 = iTextSharp.text.Image.GetInstance(imageFilePath2);
                    jpg3.Alignment = iTextSharp.text.Image.UNDERLYING;
                    jpg3.ScaleToFit(3530, 835);
                    jpg3.SetAbsolutePosition(0, 0);
                    pdfDoc.Add(jpg3);
                }
                XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
                string imageFilePath = Server.MapPath(".") + "/Bimages/ns5.png";
                iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(imageFilePath);
        
                GetEmp();
                string imageURLS = Server.MapPath("~/Emp/Document/") + hidTablEmpCode.Value + "/" + hidSign.Value.ToString();
                iTextSharp.text.Image jpg2 = iTextSharp.text.Image.GetInstance(imageURLS);
                jpg2.ScaleToFit(100, 50);
                jpg2.SetAbsolutePosition(370, 530);
                jpg2.Alignment = Element.ALIGN_LEFT;
        
                pdfDoc.Add(jpg2);
                jpg.Alignment = iTextSharp.text.Image.ALIGN_LEFT;
                jpg.ScaleToFit(100, 50);
                jpg.SetAbsolutePosition(50, 735);
                pdfDoc.Add(jpg);
        
               
        
                pdfDoc.Close();
                Response.Write(pdfDoc);
                Response.End();
    

    【讨论】:

      猜你喜欢
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      相关资源
      最近更新 更多