C# 如何从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

我开发了一个ASP.Net应用程序,还开发了一个包含一些条目的web表单。现在我想把这个表格转换成PDF文件,可以吗


有什么好的免费库吗?

您可以使用免费库,如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();