目前我需要转换的pdf.The第一个.aspx页面中包含images.I've用下面的代码,但它给error.I've在我的项目加入iTextsharp.dll ..如何使用C#将.aspx转换为pdf?
protected void btnConvertToPDF_Click(object sender, EventArgs e)
{
Uri strurl = Request.Url;
string url = strurl.ToString();
string text = GetPageText(url);
string filepath = Server.MapPath("test.htm");
StreamWriter writer = new StreamWriter(filepath);
writer.Write(text);
writer.Close();
htmltopdf(text);
}
public string GetPageText(string url)
{
string htmlText = string.Empty;
string FILE_NAME = Server.MapPath("test.xml"); //"c:\\test.xml";
try
{
HttpWebRequest requestIP = (HttpWebRequest)WebRequest.Create(url);
requestIP.Timeout = 10000;
using (HttpWebResponse responseIP = (HttpWebResponse)requestIP.GetResponse())
{
using (Stream streamIP = responseIP.GetResponseStream())
{
using (StreamReader readerText = new StreamReader(streamIP))
{
htmlText = readerText.ReadToEnd();
string text = htmlText;
StreamWriter writer = new StreamWriter(FILE_NAME);
writer.Write(text);
writer.Close();
}
}
}
}
finally
{
}
return htmlText;
}
public void htmltopdf(string strHtml)
{
Document doc = new Document();
PdfWriter.GetInstance(doc, new FileStream(Server.MapPath("test.pdf"), System.IO.FileMode.Create));
HTMLParser.Parse(doc, Server.MapPath("test.htm"));
if (File.Exists(Server.MapPath("test.htm")))
File.Delete(Server.MapPath("test.htm"));
if (File.Exists(Server.MapPath("test.xml")))
File.Delete(Server.MapPath("test.xml"));
}
即使在运行代码之前,HTMLparser.Parse在HTMLPPARSER在当前上下文中不存在的错误显示在HTMLparser.Parse行上。如果我注释该行并运行代码,它将创建一个错误为“它不能是开放的,它已经被破坏,不是正确的版本等等。“请问任何人都可以告诉我什么是错误的吗?有没有开源的工具可以用来完成这个任务?我必须通过编写代码而不是购买任何组件..
@萨卡尼亚我会建议@prasanths解决方案,你可以只是使服务器上的服务,然后调用它的methodes – Devjosh 2011-12-14 12:41:41
@Sukanya具有u试图在链接我的代码给定?请参阅http://stackoverflow.com/a/2834549/915125 – Prasanth 2011-12-15 07:20:36
您可以使用dll文件,也可以使用可用于windows的wkhtmltopdf.exe。该exe文件很容易使用。你可以在你的项目的文件夹中放置exe文件,并在给定的文章中使用代码。 – Prasanth 2011-12-15 07:36:02