2013-02-13 37 views
2

我有一个HTML表单,其中包含标签和文本框。TextBox控件不能使用导出为PDF(iTextSharp)

填写完本表格后,将其导出为PDF。

所有的标签文本都被导出。但是文本框文本不会导出为PDF。

代码

protected void btnExportPDF_Click(object sender, EventArgs e) 
{ 
    Response.ContentType = "application/pdf"; 
    Response.AddHeader("content-disposition", "attachment;filename=DecForm.pdf"); 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    StringWriter sw = new StringWriter(); 
    HtmlTextWriter hw = new HtmlTextWriter(sw); 
    this.divToPdf.RenderControl(hw); 
    StringReader sr = new StringReader(sw.ToString()); 
    Document pdfDoc = new Document(PageSize.A4, 10, 10, 2, 10); 
    HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
    pdfDoc.Open(); 
    htmlparser.Parse(sr); 
    pdfDoc.Close(); 
    Response.Write(pdfDoc); 
    Response.End(); 
} 

为什么文本框中的文本不通过导出为PDF?

+0

你可以把代码你在做什么。 – 2013-02-13 10:06:00

+0

一些评论在这里:http://stackoverflow.com/questions/14896966/itextsharp-htmlworker-bad-convert-html-encrypt-utf-8 HTMLWorker已被弃用,支持XML Worker。我们前段时间已经放弃了对HTMLWorker的支持。如果切换到XML Worker并遇到类似的问题,我们将修复它,但请考虑将HTMLWorker视为“已死”。 – 2013-02-16 14:57:42

回答

1

我认为,当你渲染divToPDF你得到了一个新的切割的HTML,它没有在页面上填充的值。你可能想看看使用divToPDF是你想看看访问InnerHtmlOuterHtml财产和使用。

+0

我已经看到该divToPdf的内部html placeholder.it包含所有values.but但它们不能在PDFFile上呈现。 – 2013-02-15 03:51:05

0

试试这个。

List<IElement> elements = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(new StringReader(htmlString), null); 
//htmlString is your form html 
foreach (IElement el in elements) 
{ 
    pdfDoc.add(el); 
} 
+0

如何在pdf中添加文本框或文本框的值? – Hiral 2013-04-30 07:39:19

+0

选择textbox.text,然后将其添加为段落或任何其他元素。没有其他方式 – Saksham 2013-04-30 16:58:51

+0

感谢您的reply.ok和下拉列表,单选按钮列表和复选框列表呢? – Hiral 2013-05-21 13:34:53

相关问题