gpt4 book ai didi

c# - iTextSharp:表格单元格中的平铺图像

转载 作者:太空狗 更新时间:2023-10-29 23:42:41 27 4
gpt4 key购买 nike

我正在尝试在 iTextSharp 的表格单元格中平铺图像或背景图像。我得到的最接近的是使用 PdfPTable 和 PdfPCell 将图像直接附加到单元格。

tempCell = new PdfPCell();
tempCell.Image = iTextSharp.text.Image.GetInstance(Path.Combine(GetImageDirectory(), "my_image.gif"));
table.AddCell(tempCell);

不过,这有它的问题。在我的表格中,单元格的大小永远不会相同,因此图像会自动按宽度缩放。这可以使一些单元格比其他单元格更高,或者如果它们很窄,则只能填满图像的一半。

关于如何平铺图像的任何建议,如果 iTextSharp 甚至可能的话?谢谢!

最佳答案

如果一切都失败了,您可以创建一个图案填充并将其设置在单元格事件中(或在整个表格后面填充)。

您可以将图像绘制到 PdfPatternPainter 模板中,并为重复图案设置所需的边界。然后,您可以按所需的任何比例将图像绘制到此模板中。

PdfPatternPainter patternPainter = someContent.createPattern(width, height);
patternPainter.addImage( image, desiredImgSizeX, 0, 0, desiredImgSizeY, 0, 0 );

someContent.saveState();
someContent.setPatternFill( patternPainter );

someContent.rectangle( llx, lly, wid, hei );
someContent.fill();

someContent.restoreState();

您的 PdfPCellEvent 将在 cellLayout 覆盖中提供您需要的一切。您可能希望使用 canvases[PdfPTable.BASECANVAS] 代替上面的 someContent

您需要存储并重复使用您的 patternPainter,这样您就不会为使用它的每个单元格获得副本。这可能会导致一些非常可怕的文件膨胀。没有贝诺。

关于c# - iTextSharp:表格单元格中的平铺图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1167392/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com