gpt4 book ai didi

java - 带有 Itext 的背景图案

转载 作者:行者123 更新时间:2023-12-01 14:03:41 33 4
gpt4 key购买 nike

我正在用 itext 生成一个文档。

我的iText版本是:itext-2.0.8

我需要以下最终产品:enter image description here

我有一个包含 2 列的 PDF 表格。

我为每个单元格添加了背景颜色。但这就是结果:

enter image description here

是否可以从第一张图片中获取图案?

一些 sample :

private static Color firstBGColColor = new Color(255,222,166);
...
PdfPTable table = new PdfPTable(2);
table.setWidthPercentage(100);
table.setWidths(new float[]{160,400});
PdfPCell cell;
cell = new PdfPCell();
cell.setPaddingLeft(7);
cell.setPaddingTop(10);
cell.setBorder(Rectangle.NO_BORDER);
cell.setBackgroundColor(firstBGColColor);

最佳答案

我没有认真使用过如此古老的 iText 版本,因此只能指向更新的代码。不过,快速查看 svn annotate 结果似乎表明,大多数核心功能已经在 iText 中存在很长时间了。因此,这段代码至少应该向您展示如何开始。

PDF 了解平铺模式的概念,请参阅 ISO 32000-1 的第 8.7.3 节平铺模式 ,这应该是您创建适当背景所需的。 iText 支持此类平铺模式,如示例 TilingPatternColor.java 中所示。使用 DeviceColor.java 中的辅助方法。摘录:

PdfContentByte canvas = writer.getDirectContent();

PdfPatternPainter square = canvas.createPattern(15, 15);
square.setColorFill(new BaseColor(0xFF, 0xFF, 0x00));
square.setColorStroke(new BaseColor(0xFF, 0x00, 0x00));
square.rectangle(5, 5, 5, 5);
square.fillStroke();

像这样定义了 PdfPatternPainter 后,您可以从中生成一个颜色实例作为 new PatternColor(square) 并使用此颜色。

示例如下使用它:

canvas.saveState();
canvas.setColorFill(new PatternColor(square));
canvas.rectangle(36, 696, 126, 126);
canvas.fillStroke();
canvas.restoreState();

您当然必须以不同的方式设计您的PdfPatternPainter。不过,由于它本质上是一个 PdfTemplate,因此您拥有创建所需的任何平铺图案所需的所有方法。

关于java - 带有 Itext 的背景图案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19115683/

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