C# 如何从ASP.Net web表单创建pdf
我开发了一个ASP.Net应用程序,还开发了一个包含一些条目的web表单。现在我想把这个表格转换成PDF文件,可以吗C# 如何从ASP.Net web表单创建pdf,c#,pdf-generation,C#,Pdf Generation,我开发了一个ASP.Net应用程序,还开发了一个包含一些条目的web表单。现在我想把这个表格转换成PDF文件,可以吗 有什么好的免费库吗?您可以使用免费库,如ITextSharp,或者对于更复杂的场景,您可以使用服务器版本的TxtControl从网站生成文档 TxtControl还提供了一个用于创建文档的OnDemand服务…要创建您可以使用的pdf文件,或者您可能会发现Ghostscript库非常有用iTextSharp(以及iText)仅对开源软件免费。对于其他用途,应购买商业许可证。wkh
有什么好的免费库吗?您可以使用免费库,如ITextSharp,或者对于更复杂的场景,您可以使用服务器版本的TxtControl从网站生成文档
TxtControl还提供了一个用于创建文档的OnDemand服务…要创建您可以使用的pdf文件,或者您可能会发现Ghostscript库非常有用iTextSharp(以及iText)仅对开源软件免费。对于其他用途,应购买商业许可证。wkhtmltopdf是一个好的、开源的免费选项。在寻找解决方案后,我们最终将wkhtmltopdf作为一项服务公开,因为我们需要为多个客户端提供服务,但没有为每个客户端维护am install。我们随后在上公开了该API,如果您想使用它,则无需支付任何费用。
Document doc = new Document(PageSize.A4);
// Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=hello.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
PdfWriter.GetInstance(doc, Response.OutputStream);
string imagepath = Server.MapPath("IMG");
doc.Open();
doc.Add(new Paragraph());
Image gif = Image.GetInstance(imagepath + "/asd.jpg");
doc.Add(gif);
PdfPTable table1 = new PdfPTable(2);
table1.WidthPercentage = 90;
PdfPCell cell11 = new PdfPCell();
cell11.AddElement(new Paragraph("Receipt ID : " + 124325));
cell11.AddElement(new Paragraph("Date : " + "25-Feb-2013"));
cell11.AddElement(new Paragraph("Photo Status : " + "No"));
cell11.VerticalAlignment = Element.ALIGN_LEFT;
PdfPCell cell12 = new PdfPCell();
cell12.AddElement(new Paragraph("Transaction ID : " + 4544));
cell12.AddElement(new Paragraph("Expected Date Of Delivery : " + "25-Feb-2013"));
cell12.VerticalAlignment = Element.ALIGN_RIGHT;
table1.AddCell(cell11);
table1.AddCell(cell12);
PdfPTable table2 = new PdfPTable(3);
//One row added
PdfPCell cell21 = new PdfPCell();
cell21.AddElement(new Paragraph("Photo Type"));
PdfPCell cell22 = new PdfPCell();
cell22.AddElement(new Paragraph("No. of Copies"));
PdfPCell cell23 = new PdfPCell();
cell23.AddElement(new Paragraph("Amount"));
table2.AddCell(cell21);
table2.AddCell(cell22);
table2.AddCell(cell23);
//New Row Added
PdfPCell cell31 = new PdfPCell();
cell31.AddElement(new Paragraph("type"));
cell31.FixedHeight = 300.0f;
PdfPCell cell32 = new PdfPCell();
cell32.AddElement(new Paragraph(5));
cell32.FixedHeight = 300.0f;
PdfPCell cell33 = new PdfPCell();
cell33.AddElement(new Paragraph("20.00 * noOfCopy = " + (20 * Convert.ToInt32(5)) + ".00"));
cell33.FixedHeight = 300.0f;
table2.AddCell(cell31);
table2.AddCell(cell32);
table2.AddCell(cell33);
PdfPCell cell2A = new PdfPCell(table2);
cell2A.Colspan = 2;
table1.AddCell(cell2A);
PdfPCell cell41 = new PdfPCell();
cell41.AddElement(new Paragraph("Name : " + "fdfgdg"));
cell41.AddElement(new Paragraph("Advance : " + "245"));
cell11.VerticalAlignment = Element.ALIGN_LEFT;
PdfPCell cell42 = new PdfPCell();
cell42.AddElement(new Paragraph("Customer ID : " + 34345));
cell42.AddElement(new Paragraph("Balance : " + 20545));
cell42.VerticalAlignment = Element.ALIGN_RIGHT;
table1.AddCell(cell41);
table1.AddCell(cell42);
doc.Add(table1);
doc.Close();
//pdfDoc.Open();
//htmlparser.Parse(sr);
//pdfDoc.Close();
Response.Write(doc);
Response.End();