Generate pdf file after retrieving the information

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.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

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

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

Method 2

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


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x