public byte[] ConvertHtmlTextToPDF(string htmlText)
{
if (string.IsNullOrEmpty(htmlText))
{
return null;
}
MemoryStream outputStream = new MemoryStream();
byte[] data = Encoding.UTF8.GetBytes(htmlText);
MemoryStream msInput = new MemoryStream(data);
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, outputStream);
PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ, 0, doc.PageSize.Height, 1f);
doc.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msInput, null, Encoding.UTF8, new ChineseFontFactory());
PdfAction action = PdfAction.GotoLocalPage(1, pdfDest, writer);
writer.SetOpenAction(action);
doc.Close();
msInput.Close();
outputStream.Close();
return outputStream.ToArray();
}
protected void Button1_Click(object sender, EventArgs e)
{
string fileName = DateTime.Now.ToString();
StringBuilder strb = new StringBuilder();
StringWriter sw = new StringWriter(strb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
div_htmlText.RenderControl(htw); //div_htmlText为DIV的ID
string htmlText = strb.ToString();
byte[] pdfFile = ConvertHtmlTextToPDF(htmlText);
Response.ContentType = "application/pdf";
Response.ContentEncoding = Encoding.UTF8;
Response.AddHeader("content-disposition", "attachment;filename=" + fileName + ".pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.OutputStream.Write(pdfFile, 0, pdfFile.Length);
Response.End();
}
iTextSharp的使用,把DIV导出为PDF,样式不是很灵活
最新推荐文章于 2024-09-14 09:29:57 发布