Bryan
Bryan

Reputation: 8697

How do i change the resolution of the image that is going to be export to PDF

I'm have been meeting with lots of problem with PDF. Pdf that contains pictures which have different dimension pixel. I used the default window's computer image which has a default dimension pixel of 1024x768 and the image are clear. However if i were to take photo from the internet which has a slightly lower resolution my image size will change. How do i set a default resolution for the retrieve image?| I used this method

image5.SetDpi(96, 96);

but there are no changes to my picture. I took all my pictures from my database. The picture in my database are not of the same resolution.

protected void btnPDF_Click(object sender, EventArgs e)
    {

        var doc1 = new Document();
        var filename = "MyTestPDF" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".pdf";
        var output = new FileStream(Path.Combine("C:\\Users\\apr13mpsip\\Downloads", filename), FileMode.Create);
        iTextSharp.text.pdf.PdfWriter.GetInstance(doc1, output);
        doc1.Open();


        PdfPTable table = new PdfPTable(1);

        table.TotalWidth = 585f;
        table.LockedWidth = true;


        PdfPTable table2 = new PdfPTable(1);
        table2.TotalWidth = 585f;
        table2.LockedWidth = true;

        iTextSharp.text.pdf.PdfPCell imgCell1 = new iTextSharp.text.pdf.PdfPCell();

        var logo = iTextSharp.text.Image.GetInstance(Server.MapPath("~/image/logo.jpg"));
        doc1.Add(logo);

        var titleFont = FontFactory.GetFont("Arial", 15, Font.BOLD);
        doc1.Add(new Paragraph("Official Report. Member Report ID : " + DDLCase.SelectedValue, titleFont));

        var normalFont = FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.BOLD);
        var phrase = new Phrase();
        var phrase2 = new Phrase();

        SqlConnection con = new SqlConnection("Data Source = localhost; Initial Catalog = project; Integrated Security = SSPI");

        SqlCommand cm = new SqlCommand("Select lro.fullname, lro.contact, mr.typeofcrime, mr.location,mr.crdatetime, mr.citizenreport, pr.policeid,  pr.prdatetime, pr.policereport, aor.officialreport,  mr.image1, mr.image2, mr.image3, mr.image4, mr.image5,  pr.image1, pr.image2, pr.image3, pr.image4, pr.image5 from MemberReport mr, PoliceReport pr, LoginRegisterOthers lro, AdminOfficialReport aor where mr.memberreportid = '" + DDLCase.SelectedValue + "' and mr.memberreportid=pr.memberreportid and pr.policereportid=aor.policereportid", con);
        con.Open();
        SqlDataReader dr;

        dr = cm.ExecuteReader();

        if (dr.Read())
        {

            phrase.Add(new Chunk("Full Name :", normalFont));
            phrase.Add(dr[0].ToString());

            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);

            phrase.Add(new Chunk("Contact :", normalFont));
            phrase.Add(dr[1].ToString());

            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);

            phrase.Add(new Chunk("Type Of Crime :", normalFont));
            phrase.Add(dr[2].ToString());

            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);

            phrase.Add(new Chunk("Location :", normalFont));
            phrase.Add(dr[3].ToString());

            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);

            phrase.Add(new Chunk("Citizen Report Date Time :", normalFont));
            phrase.Add(dr[4].ToString());

            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);

            phrase.Add(new Chunk("Citizen Report :", normalFont));
            phrase.Add(dr[5].ToString());

            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);

            phrase.Add(new Chunk("Citizen Images :", normalFont));

            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);

            phrase.Add(new Chunk("1.", normalFont));
            Byte[] bytes1 = (Byte[])dr[10];
            iTextSharp.text.Image image1 = iTextSharp.text.Image.GetInstance(bytes1);
            image1.ScaleToFit(850f, 850f);
            image1.SetDpi(96,96);
            Chunk imageChunk1 = new Chunk(image1, 0, 0);
            phrase.Add(imageChunk1);

            phrase.Add(new Chunk("2.", normalFont));
            Byte[] bytes5 = (Byte[])dr[11];
            iTextSharp.text.Image image5 = iTextSharp.text.Image.GetInstance(bytes5);
            image5.ScaleToFit(850f, 850f);
            image5.SetDpi(96, 96);
            Chunk imageChunk5 = new Chunk(image5, 0, 0);
            phrase.Add(imageChunk5);

            phrase.Add(new Chunk("3.", normalFont));
            Byte[] bytes6 = (Byte[])dr[12];
            iTextSharp.text.Image image6 = iTextSharp.text.Image.GetInstance(bytes6);
            image6.ScaleToFit(850f, 850f);
            image6.SetDpi(96, 96);
            Chunk imageChunk6 = new Chunk(image6, 0, 0);
            phrase.Add(imageChunk6);

            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);
            phrase.Add(Chunk.NEWLINE);

            phrase.Add(new Chunk("4.", normalFont));
            Byte[] bytes7 = (Byte[])dr[13];
            iTextSharp.text.Image image7 = iTextSharp.text.Image.GetInstance(bytes7);
            image7.SetDpi(96,96);
            image7.ScaleToFit(2067f, 2064f);
            Chunk imageChunk7 = new Chunk(image7, 0, 0);
            phrase.Add(imageChunk7);

            phrase.Add(new Chunk("5.", normalFont));
            Byte[] bytes8 = (Byte[])dr[14];
            iTextSharp.text.Image image8 = iTextSharp.text.Image.GetInstance(bytes8);
            image8.ScaleToFit(2067f, 2064f);
            image8.SetDpi(96, 96);
            Chunk imageChunk8 = new Chunk(image8, 0, 0);
            phrase.Add(imageChunk8);

            //phrase2.Add(new Chunk("Police ID :", normalFont));
            //phrase2.Add(dr[6].ToString());

            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);

            //phrase2.Add(new Chunk("Police Report Date Time :", normalFont));
            //phrase2.Add(dr[7].ToString());

            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);

            //phrase2.Add(new Chunk("Police Report :", normalFont));
            //phrase2.Add(dr[8].ToString());

            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);

            //phrase2.Add(new Chunk("Official Report :", normalFont));
            //phrase2.Add(dr[9].ToString());

            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);

            //phrase2.Add(new Chunk("Police Images :", normalFont));

            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);

            //phrase2.Add(new Chunk("1 :\u00a0", normalFont));
            //Byte[] bytes10 = (Byte[])dr[15];
            //iTextSharp.text.Image image10 = iTextSharp.text.Image.GetInstance(bytes10);
            //image10.ScaleToFit(850f, 850f);
            //image5.SetDpi(1024, 768);
            //Chunk imageChunk10 = new Chunk(image10, 0, 0);
            //phrase2.Add(imageChunk10);

            //phrase2.Add(new Chunk("2 :\u00a0", normalFont));
            //Byte[] bytes11 = (Byte[])dr[16];
            //iTextSharp.text.Image image11 = iTextSharp.text.Image.GetInstance(bytes11);
            //image11.ScaleToFit(850f, 850f);
            //image5.SetDpi(1024, 768);
            //Chunk imageChunk11 = new Chunk(image11, 0, 0);
            //phrase2.Add(imageChunk11);


            //phrase2.Add(new Chunk("3 :\u00a0", normalFont));
            //Byte[] bytes12 = (Byte[])dr[17];
            //iTextSharp.text.Image image12 = iTextSharp.text.Image.GetInstance(bytes12);
            //image12.ScaleToFit(850f, 850f);
            //image5.SetDpi(1024, 768);
            //Chunk imageChunk12 = new Chunk(image12, 0, 0);
            //phrase2.Add(imageChunk12);

            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);
            //phrase2.Add(Chunk.NEWLINE);

            //phrase2.Add(new Chunk("4 :\u00a0", normalFont));
            //Byte[] bytes13 = (Byte[])dr[18];
            //iTextSharp.text.Image image13 = iTextSharp.text.Image.GetInstance(bytes13);
            //image13.ScaleToFit(850f, 850f);
            //image5.SetDpi(1024, 768);
            //Chunk imageChunk13 = new Chunk(image13, 0, 0);
            //phrase2.Add(imageChunk13);

            //phrase2.Add(new Chunk("5 :\u00a0", normalFont));
            //Byte[] bytes14 = (Byte[])dr[19];
            //iTextSharp.text.Image image14 = iTextSharp.text.Image.GetInstance(bytes14);
            //image14.ScaleToFit(850f, 850f);
            //image5.SetDpi(1024, 768);
            //Chunk imageChunk14 = new Chunk(image14, 0, 0);
            //phrase2.Add(imageChunk14);



            table.AddCell(phrase);
            //table2.AddCell(phrase2);

        }

        dr.Close();
        doc1.Add(table);
        doc1.NewPage();
        doc1.Add(table2);
        doc1.Close();
    }

The codes above are how i retrieve my image from my SQL database.

Upvotes: 1

Views: 1492

Answers (1)

Adam
Adam

Reputation: 31

You can calculate necessary scale factor for the images and apply it for the pictures: (By default PDF has 72DPI)

 percent = 850f / image5.Width;// or percent = 850f / image5.Height
 image5.ScalePercent(percent * 100f)

OR

image5.ScaleAbsolute(850, 850)

Upvotes: 1

Related Questions