簡體   English   中英

如何更改將要導出為PDF的圖像的分辨率

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

我一直在遇到很多關於PDF的問題。 包含具有不同尺寸像素的圖片的Pdf。 我使用默認窗口的計算機圖像,該圖像的默認尺寸像素為1024x768,並且圖像清晰。 但是,如果我要從分辨率稍低的互聯網上拍攝照片,我的圖像尺寸將會改變。 如何為檢索圖像設置默認分辨率? 我用這種方法

image5.SetDpi(96, 96);

但是我的照片沒有變化。 我從數據庫中拍攝了所有照片。 我的數據庫中的圖片分辨率不同。

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

上面的代碼是我從SQL數據庫中檢索圖像的方式。

您可以計算圖像的必要比例因子並將其應用於圖片:(默認情況下,PDF具有72DPI)

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

要么

image5.ScaleAbsolute(850,850)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM