【发布时间】:2023-03-20 05:15:01
【问题描述】:
我正在使用 iText 库在 Java 中生成 pdf 文件。我在 pdfptable 中写入数据,如何使表格的边框不可见?
【问题讨论】:
我正在使用 iText 库在 Java 中生成 pdf 文件。我在 pdfptable 中写入数据,如何使表格的边框不可见?
【问题讨论】:
PdfPTable 的边框元素由添加到表格中的 PdfPCell 定义。每个单元格都有自己的样式/格式。 这是 API:http://api.itextpdf.com/
例子
PdfPTable table = new PdfPTable(2);
PdfPCell cellOne = new PdfPCell(new Phrase("Hello"));
PdfPCell cellTwo = new PdfPCell(new Phrase("World"));
cellOne.setBorder(Rectangle.NO_BORDER);
cellOne.setBackgroundColor(new Color(255,255,45));
cellTwo.setBorder(Rectangle.BOX);
table.addCell(cellOne);
table.addCell(cellTwo);
如果您想了解更多有关矩形/边框值的详细信息,请查看矩形的 IText 常量值部分,此处为:http://api.itextpdf.com/constant-values.html
【讨论】:
cellOne.setBorder(Rectangle.NO_BORDER); 和 cellTwo.setBorder(Rectangle.BOX); 到底有什么区别?
在我的应用中它是这样工作的:
PdfPTable table = new PdfPTable(2);
table.getDefaultCell().setBorder(0);
...
【讨论】:
Rectangle.NO_BORDER 与0 相同 我更喜欢使用常量名称,更易于阅读并且在版本升级时始终兼容。
以下内容对我有用。
table.getDefaultCell().setBorderWidth(0f);
【讨论】:
PdfPTable nestedTable = new PdfPTable();
nestedTable.DefaultCell.Border = 0;
nestedTable.AddCell(new Phrase("First");
nestedTable.AddCell(new Phrase("Second");
nestedTable.AddCell(new Phrase("2515");
PdfPCell nestCell= new PdfPCell(nestedTable);
【讨论】:
nestedTable.DefaultCell.Border = 0; - 看起来不太对劲。经过测试,我还发现这不起作用。除非 DefaultCell 和 Border 属性是公开的,否则这永远不会起作用。
设置单元格颜色为白色。
cellOne.setBorderColor(BaseColor.WHITE);
【讨论】:
你可以这样隐藏边框
PdfPCell cell = new PdfPCell ();
cell.setBorder(Rectangle.NO_BORDER);
【讨论】:
对于 iText 7
Table table = new Table();
table.SetBorder(Border.NO_BORDER);
【讨论】: