开发者

Generate pdf file after retrieving the information [closed]

开发者 https://www.devze.com 2023-02-16 04:47 出处:网络
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.

Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.

开发者_C百科

Closed 9 years ago.

Improve this question

I need to create a pdf file from data obtained from a database. I have to retrieve the data from database and generate these data as a pdf file.

I would like to have pointers (helpful information).

Thank you.


Here's a list of Open Source PDF Libraries that you can use:

  • SharpPDF
  • iTextSharp
  • Report.NET
  • PDFjet

Example of 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");

Example of 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; 

Example of 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");

Example of iTextSharp

Document document=new Document();
PdfWriter.getInstance(document,new FileOutputStream("hello.pdf"));
document.open();  
document.add(new Paragraph("Hello Pdf"));
document.close(); 

Returning on the fly created PDF-files

You can return Binary Data using Response.Write see MSDN on "How To Write Binary Data"

Here is an example on how you use Response.WriteFile to give the user a 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();


you can use itextsharp for that

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();
}
0

精彩评论

暂无评论...
验证码 换一张
取 消