我正在下载一个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的代码和查询。
发布于 2015-02-18 19:09:57
使用iTextSharp创建pdf需要大量的编码。您不能将pdf呈现为HTML代码(据我所知),但您可以首先创建一个HTML,将其转换为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();
}https://stackoverflow.com/questions/28581625
复制相似问题