【发布时间】:2016-02-04 18:35:51
【问题描述】:
我想在使用 C# 导出为 PDF 时显示复选框。我也用
public override void VerifyRenderingInServerForm(Control control)
{
//return;
}
我试图解决我的问题。但代码只给出复选框的值表示真或假。这是我迄今为止尝试过的所有代码......
protected void btnExport_Click(object sender, EventArgs e)
{
PrepareControlForExport(Vesseldetail);
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Export.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
HtmlForm frm = new HtmlForm();
Vesseldetail.Parent.Controls.Add(frm);
frm.Attributes["runat"] = "server";
frm.Controls.Add(Vesseldetail);
frm.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
}
private static void PrepareControlForExport(Control control)
{
for (int i = 0; i < control.Controls.Count; i++)
{
Control current = control.Controls[i];
if (current is LinkButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text));
}
else if (current is ImageButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText));
}
else if (current is HyperLink)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text));
}
else if (current is DropDownList)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text));
}
else if (current is CheckBox)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? " True" : " False"));
current.Visible = true;
}
if (current.HasControls())
{
pdfconverter.PrepareControlForExport(current); //pdfconverter is class.
}
}
}
【问题讨论】:
-
如何导出为 PDF?表单上是否存在任何复选框?能否展示您的完整源代码,以便我们更好地帮助您
-
你的方法体是空的,试着放点东西
-
not work 是永远足以解释问题的信息。您甚至都没有展示您的实际工作以及您尝试解决问题的方法。
-
显示您的代码以及您遇到的错误或遇到的障碍
标签: c# asp.net .net pdf itextsharp