检索信息后生成pdf文件
我需要从数据库中获取的数据创建一个pdf文件。 我必须从数据库中检索数据并将这些数据生成为pdf文件。
我想有指针(有用的信息)。
谢谢。
你可以使用itextsharp
protected void btnExportPdf_Click(object sender, EventArgs e) { Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;filename=BusinessUnit.pdf"); Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache); StringWriter sw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw); GridView grd = new GridView(); grd.DataSource = yourdatatable.DefaultView//get data from DB in Datatable grd.DataBind(); grd.RenderControl(hw); StringReader sr = new StringReader(sw.ToString()); Document pdfDoc = new Document(PageSize.A2, 8f, 8f, 8f, 8f); HTMLWorker htmlparser = new HTMLWorker(pdfDoc); PdfWriter.GetInstance(pdfDoc, Response.OutputStream); pdfDoc.Open(); htmlparser.Parse(sr); pdfDoc.Close(); Response.Write(pdfDoc); Response.End(); }
这是您可以使用的开源PDF库的列表 :
- SharpPDF
- iTextSharp的
- Report.NET
- PDFjet
PDFjet的示例
PDF pdf = new PDF(); Font f1 = new Font(pdf, "Helvetica"); Image image1 = new Image(pdf, "images/eu-map.png"); Image image2 = new Image(pdf, "images/fruit.jpg"); Image image3 = new Image(pdf, "images/mt-map.gif"); // Please note: // All font and image objects must be created // before the first page object. Page page = new Page(pdf, A4.PORTRAIT); text.SetText( "The map on the right is an embedded GIF image"); text.SetPosition(90.0, 800); text.DrawOn(page); image3.SetPosition(390, 630); image3.ScaleBy(0.5); image3.DrawOn(page); pdf.wrap(); pdf.save("Example_03.pdf");
SharpPDF的示例
pdfDocument myDoc = new pdfDocument("TUTORIAL","ME"); pdfPage myPage = myDoc.addPage(); myPage.addText("Hello World!",200,450,predefinedFont.csHelvetica,20); myDoc.createPDF(@"c:\test.pdf"); myPage = null; myDoc = null;
Report.NET示例
Report report = new Report(new PdfFormatter()); FontDef fd = new FontDef(report, "Helvetica"); FontProp fp = new FontPropMM(fd, 25); Page page = new Page(report); page.AddCenteredMM(80, new RepString(fp, "Hello World!")); RT.ViewPDF(report, "HelloWorld.pdf");
iTextSharp的示例
Document document=new Document(); PdfWriter.getInstance(document,new FileOutputStream("hello.pdf")); document.open(); document.add(new Paragraph("Hello Pdf")); document.close();
动态返回创建PDF文件
您可以使用Response.Write
返回二进制数据,请参阅MSDN “如何写二进制数据”
以下是如何使用Response.WriteFile
为用户提供PDF的示例:
//Set the appropriate ContentType. Response.ContentType = "Application/pdf"; //Get the physical path to the file. string FilePath = MapPath("acrobat.pdf"); //Write the file directly to the HTTP content output stream. Response.WriteFile(FilePath); Response.End();
阿西夫,
幸运的是,我最近一直在这条赛道上走下坡路。 这里有一些帮助我的链接(与iTextSharp相关):
http://www.mikesdotnetting.com/Article/80/Create-PDFs-in-ASP.NET-getting-started-with-iTextSharp
这个lib很好用,很容易使用。
尝试使用已建立的库之一来创建pdf。 这是一篇包含很多信息和很多资源的post
菲利普的早期答案太棒了。 此链接可能对itextsharp有所帮助: