我正在努力下载PDF document
。我使用PdfPTable
创建了一个表。以下是我缩短的代码。
var document = new Document(PageSize.A4, 50, 50, 25, 25);
var output = new MemoryStream();
var writer = PdfWriter.GetInstance(document, output);
document.Open();
PdfPTable table = new PdfPTable(2);
table.WidthPercentage = 80;
PdfPCell cell = new PdfPCell(new Phrase("Description", fntTableFontBold));
cell.HorizontalAlignment = Element.ALIGN_CENTER;
table.AddCell(cell);
......
document.Add(table);
document.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}.pdf", "Journal"));
Response.BinaryWrite(output.ToArray());
一切正常。以上代码直接在浏览器中下载PDF。
现在我要添加预览功能,如果用户点击Preview
,他应该会看到HTML输出。
如何将上述代码转换为HTML
?有很多代码和用于创建PdfPTable
。
答案 0 :(得分:0)
使用iTextSharp创建pdf涉及大量编码。您不能将PDF格式渲染为HTML代码(我知道),但您可以先创建HTML,将其转换为pdf,然后将pdf作为流呈现给浏览器。如果您先创建HTML,则可以使用html进行预览。
这是我曾经写过的将html转换为pdf的代码块。
protected void ConvertHTMLToPDF(String HTMLCode, String fileName)
{
//Create PDF document
iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4);
PdfWriter.GetInstance(doc, new FileStream(HttpContext.Current.Server.MapPath("~") + "/Resources/Temp/" + fileName, FileMode.Create));
doc.Open();
foreach (IElement element in HTMLWorker.ParseToList(new StringReader(HTMLCode), null))
{
doc.Add(element);
}
doc.Close();
//Response.End();
}