不能隐式地将类型arraylist转换为generic.list itextsharp.text.element [英] cannot implicitly convert type arraylist to generic.list itextsharp.text.element

查看:70
本文介绍了不能隐式地将类型arraylist转换为generic.list itextsharp.text.element的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  private   void  generate_pdf( string  path, string  file, bool  download, string  text)
{
var document = new Document();
尝试
{
如果(下载)
PdfWriter.GetInstance(document,Response.OutputStream);
else
PdfWriter.GetInstance(document, new FileStream(path + file, FileMode.Create));

StringBuilder strB = new StringBuilder();
document.Open();
repeat();


if (text.Length.Equals( 0 ) )
{
使用(StringWriter sw = new StringWriter(strB))
{
使用(HtmlTextWriter hw = new HtmlTextWriter(sw))
{
dt =(DataTable)会话[ dataItem];

if (dt.Rows.Count > 0
{
DataRow drall;

PlaceHolder pholder = new PlaceHolder();
pholder.Controls.Add( new LiteralControl( < div>< table>< tr>< td colspan ='6'align ='center'style ='font-weight:bold; font-size:18px'> REPORT on + Text_From.Text + to + Text_To.Text + < / td>< / tr>< / table>< / div>));
pholder.Controls.Add( new LiteralControl( < table border ='1'>< tr style ='background:#dadada; font-weight:bold;'>< td align ='center'> S.No< / td> ));
pholder.Controls.Add( new LiteralControl( < td align ='center'>订单ID< / td>));
pholder.Controls.Add( new LiteralControl( < td align ='center'>名称< / td>));
pholder.Controls.Add( new LiteralControl( < td align ='center'>密码< / td>));
pholder.Controls.Add( new LiteralControl( < td align ='center'> Imagename< / td>));
pholder.Controls.Add( new LiteralControl( < td align ='center'>由< / td>更新));
pholder.Controls.Add( new LiteralControl( < td align ='center'>图片< / td>));
pholder.Controls.Add( new LiteralControl( < / TR> 中));

for int i = 0 ; i < dt.Rows.Count; i ++)
{
int sno = i + 1 ;
drall = dt.Rows [i];
pholder.Controls.Add( new LiteralControl( < TR> 中));
pholder.Controls.Add( new LiteralControl( < td> + sno + < / td> ));
pholder.Controls.Add( new LiteralControl( < td> + drall [ id]。ToString() + < / td>));
pholder.Controls.Add( new LiteralControl( < td align ='right'> + drall [ username]。ToString()+ < / td>));
pholder.Controls.Add( new LiteralControl( < td align ='right'> + drall [ password]。ToString()+ < / td>));
pholder.Controls.Add( new LiteralControl( < td align ='right'> + drall [ imagename]。ToString()+ < / td>));
pholder.Controls.Add( new LiteralControl( < td align ='right'> + drall [ updatedby]。ToString()+ < / td>));
pholder.Controls.Add( new LiteralControl( < td align ='right'> + drall [ uploadimage]。ToString()+ < / td>));
pholder.Controls.Add( new LiteralControl( < / TR> 中));
}

pholder.Controls.Add( new LiteralControl( < / table>));
pholder.RenderControl(hw);
}
}
}
}

else

strB.Append(text);

使用(TextReader sReader = new StringReader(strB.ToString()) )
{

List< IElement> list = HTMLWorker.ParseToList(sReader, new StyleSheet()); // 这里我收到错误
foreach (IElement elm in list)
{
document.Add(elm);
}
}


}
catch (例外情况)
{

}
finally
{
document.Close();
}

}

受保护 void btn_pdf_Click( object sender,EventArgs e)
{

try
{

string file = 报告 + DateTime.Now.Ticks + 。pdf;
Response.Clear();
generate_pdf( ,file, true );
Response.ContentType = application / pdf;
Response.AddHeader( content-disposition attachment; filename = + file);
Response.Flush();
Response.End();

}

catch (例外情况)
{
throw ex;
}

}

解决方案

尝试下面的代码

< pre lang =c#> List< IElement> list = HTMLWorker.ParseToList(sReader, new StyleSheet())。Cast< IElement>()。ToList();


private void generate_pdf(string path, string file, bool download, string text)
   {
       var document = new Document();
       try
       {
           if (download)
               PdfWriter.GetInstance(document, Response.OutputStream);
           else
               PdfWriter.GetInstance(document, new FileStream(path + file, FileMode.Create));

           StringBuilder strB = new StringBuilder();
           document.Open();
           repeat();


           if (text.Length.Equals(0))
           {
               using (StringWriter sw = new StringWriter(strB))
               {
                   using (HtmlTextWriter hw = new HtmlTextWriter(sw))
                   {
                       dt = (DataTable)Session["dataItem"];

                       if (dt.Rows.Count > 0)
                       {
                           DataRow drall;

                           PlaceHolder pholder = new PlaceHolder();
                           pholder.Controls.Add(new LiteralControl("<div ><table><tr><td colspan='6'  align='center' style='font-weight:bold;font-size:18px'>REPORT on " + Text_From.Text + " to " + Text_To.Text + "</td></tr></table></div>"));
                           pholder.Controls.Add(new LiteralControl("<table border='1'><tr style='background:#dadada;font-weight:bold;'><td align='center'>S.No</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Order ID</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Name</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Password</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Imagename</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Updated by</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Image</td>"));
                           pholder.Controls.Add(new LiteralControl("</tr>"));

                           for (int i = 0; i < dt.Rows.Count; i++)
                           {
                               int sno = i + 1;
                               drall = dt.Rows[i];
                               pholder.Controls.Add(new LiteralControl("<tr>"));
                               pholder.Controls.Add(new LiteralControl("<td >" + sno + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td>" + drall["id"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td align='right'>" + drall["username"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td align='right'>" + drall["password"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td align='right'>" + drall["imagename"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td align='right'>" + drall["updatedby"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td align='right'>" + drall["uploadimage"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("</tr>"));
                           }

                           pholder.Controls.Add(new LiteralControl("</table>"));
                           pholder.RenderControl(hw);
                       }
                   }
               }
           }

           else

               strB.Append(text);

           using (TextReader sReader = new StringReader(strB.ToString()))
           {

               List<IElement> list = HTMLWorker.ParseToList(sReader, new StyleSheet());   // here i got error
               foreach (IElement elm in list)
               {
                   document.Add(elm);
               }
           }


   }
       catch (Exception ex)
       {

       }
       finally
       {
           document.Close();
       }

   }

protected void btn_pdf_Click(object sender, EventArgs e)
   {

       try
       {

           string file = "reports" + DateTime.Now.Ticks + ".pdf";
           Response.Clear();
           generate_pdf("", file, true, "");
           Response.ContentType = "application/pdf";
           Response.AddHeader("content-disposition", "attachment; filename=" + file);
           Response.Flush();
           Response.End();

       }

       catch(Exception ex)
       {
           throw ex;
       }

   }

解决方案

try below code

List<IElement> list = HTMLWorker.ParseToList(sReader, new StyleSheet()).Cast<IElement>().ToList();


这篇关于不能隐式地将类型arraylist转换为generic.list itextsharp.text.element的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆