插入PdfCell时,图像会调整大小

时间:2013-04-01 10:46:06

标签: image itextsharp

我正在尝试使用itextsharp创建Pdf。我添加了一个包含两列的表,其中一列包含文本和其他图像。我想拥有恒定的图像尺寸

  1. 如果另一个单元格中的文本增加并且其他单元格中的图像大小不同,我的图像会自动调整大小

      for (int i = 0; i < visitInfo.VisitsiteComplience.Count; ++i)
        {
    
            cellprop.Colspan = 1;
            cellprop.Pharse = visitInfo.VisitsiteComplience[i].Compliencedescription;
            cellprop.BaseColor = null;
            table.AddCell(AddCelltoTable(cellprop));
            yesicon.ScaleAbsolute(35f, 35f);
            noicon.ScaleAbsolute(35f, 35f);
    
            if (visitInfo.VisitsiteComplience[i].Status == "1")
            {
    
                statuscell.AddElement(new Chunk(noicon, 0, 0));
    
            }
            else
            {
    
               // statuscell.AddElement(new Chunk(noicon, 0, 0));
            }
    
    
           statuscell.FixedHeight = 10;
    
    
            //headerLeftCell.Border = PdfPCell.NO_BORDER;
            table.AddCell(statuscell);
        }
    
  2. enter image description here 2.然后我更改了代码,但现在图像大小增加并占据整个单元格

         for (int i = 0; i < visitInfo.VisitsiteComplience.Count; ++i)
            {
    
                cellprop.Colspan = 1;
                cellprop.Pharse = visitInfo.VisitsiteComplience[i].Compliencedescription;
                cellprop.BaseColor = null;
                table.AddCell(AddCelltoTable(cellprop));
                yesicon.ScaleAbsolute(35f, 35f);
                noicon.ScaleAbsolute(35f, 35f);
    
                if (visitInfo.VisitsiteComplience[i].Status == "1")
                {
    
                    statuscell.AddElement(new Chunk(noicon, 0, 0));
    
                }
                else
                {
    
                   // statuscell.AddElement(new Chunk(noicon, 0, 0));
                }
    
    
    
    
    
                //headerLeftCell.Border = PdfPCell.NO_BORDER;
                table.AddCell(statuscell);
            }
    

    enter image description here

2 个答案:

答案 0 :(得分:3)

我认为你是这样自己缩放图像:noicon.ScaleAbsolute(35f, 35f);

为什么要将图像包裹在Chunk内,这也让我很困惑。您可以创建PdfPCell作为参数Image以及Bool来定义iText是否应缩放Image。请参阅本书iText in Action(我是作者)的第109页,并查看chapter 4的XMen示例。

答案 1 :(得分:0)

Image image = Image.getInstance("D:/star.png");

PdfPCell cell = new PdfPCell();

cell.setFixedHeight(40f);

cell.addElement(image);

table.addCell(cell);