我正在尝试使用itextsharp创建Pdf。我添加了一个包含两列的表,其中一列包含文本和其他图像。我想拥有恒定的图像尺寸
如果另一个单元格中的文本增加并且其他单元格中的图像大小不同,我的图像会自动调整大小
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.然后我更改了代码,但现在图像大小增加并占据整个单元格
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);
}
答案 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);