gpt4 book ai didi

asp.net-mvc - 使用 itextsharp 将多个图像并排放置在 pdfcell 中

转载 作者:行者123 更新时间:2023-12-02 17:51:01 24 4
gpt4 key购买 nike

我将 itextsharp 与 aspmvc 项目结合使用来创建我的一些页面的 PDF 版本。我有一个非常基本的解析器,它采用简单的 html(加上一些单独提供的样式信息)并创建一个 pdf。当我的解析器遇到一个表时,它会遍历行然后遍历单元格,为每个单元格创建一个 PdfPCell。然后循环遍历单元格的子元素,将它们添加到 PdfPCell。它非常基础,但到目前为止对我有用。

问题是我现在有一个表格,其中一列包含许多图标,表示该行的不同状态。添加这些图像后,pdf 中的图像将一张一张地放在另一张上方,而不是并排放置。

我用

创建图像
Dim I As iTextSharp.text.Image = Image.GetInstance(HttpContext.Current.Server.MapPath(El.Attributes("src").InnerText))

我试过了

I.Alignment = Image.TEXTWRAP Or Image.ALIGN_LEFT Or Image.ALIGN_MIDDLE

然后添加一个包含空格的文本 block ,但这没有帮助。我看到的唯一建议是使用 I.SetAbsolutePosition()。我宁愿避免绝对位置,但我准备尝试一下 - 除了我不知道如何找到要使用的当前 X 位置?

非常感谢任何帮助。

亚当

最佳答案

为了获得正确的并排流,将图像/文本包装在 Paragraph 对象中,使用 ChunkPhrase 将它们一个接一个地添加 对象。像这样的东西(抱歉,我不会做 VB):

PdfPTable table = new PdfPTable(2);
PdfPCell cell = new PdfPCell();
Paragraph p = new Paragraph();
p.Add(new Phrase("Test "));
p.Add(new Chunk(image, 0, 0));
p.Add(new Phrase(" more text "));
p.Add(new Chunk(image, 0, 0));
p.Add(new Chunk(image, 0, 0));
p.Add(new Phrase(" end."));
cell.AddElement(p);
table.AddCell(cell);
table.AddCell(new PdfPCell(new Phrase("test 2")));
document.Add(table);

编辑:一种在图像之间添加空白的方法。将处理图像;如果您尝试使用混合文本/图像,它们将重叠:

PdfPTable table = new PdfPTable(2);
PdfPCell cell = new PdfPCell();
Paragraph p = new Paragraph();
float offset = 20;
for (int i = 0; i < 4; ++i) {
p.Add(new Chunk(image, offset * i, 0));
}
cell.AddElement(p);
table.AddCell(cell);
table.AddCell(new PdfPCell(new Phrase("cell 2")));
document.Add(table);

参见 Chunk documentation .

关于asp.net-mvc - 使用 itextsharp 将多个图像并排放置在 pdfcell 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8485600/

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