java - iText 5 getDefaultCell().setBorder(PdfPCell.NO_BORDER) 无效

标签 java itext

我是 iText 的新手,我正在尝试构建一个表格。 但由于某种原因 table.getDefaultCell().setBorder(PdfPCell.NO_BORDER) 没有效果,我的表​​格仍然有边框。

这是我的代码:

PdfPTable table = new PdfPTable(new float[] { 1, 1, 1, 1, 1 });
table.getDefaultCell().setBorder(PdfPCell.NO_BORDER);
Font tfont = new Font(Font.FontFamily.UNDEFINED, 10, Font.BOLD);
table.setWidthPercentage(100);
PdfPCell cell;
cell = new PdfPCell(new Phrase("Menge", tfont));
table.addCell(cell);
cell = new PdfPCell(new Phrase("Beschreibung", tfont));
table.addCell(cell);
cell = new PdfPCell(new Phrase("Einzelpreis", tfont));
table.addCell(cell);
cell = new PdfPCell(new Phrase("Gesamtpreis", tfont));
table.addCell(cell);
cell = new PdfPCell(new Phrase("MwSt", tfont));
table.addCell(cell);
document.add(table);

你知道我做错了什么吗?

最佳答案

您正在混合两个不同的概念。

概念 1:您手动定义每个 PdfPCell,例如:

PdfPCell cell = new PdfPCell(new Phrase("Menge", tfont));
cell.setBorder(Rectangle.NO_BORDER);
table.addCell(cell);

在这种情况下,您可以在单元格本身上定义单元格的每个方面、每个属性。

概念 2:您允许 iText 隐式创建 PdfPCell,例如:

table.addCell("Adding a String");
table.addCell(new Phrase("Adding a phrase"));

在这种情况下,您可以在默认单元格 级别定义属性。当 iText 在您的位置创建 PdfPCell 时,这些属性将在内部使用。

结论:

要么单独为所有 PdfPCell 实例定义边框,要么让 iText 创建 PdfPCell 实例,在这种情况下,您可以在默认单元格。

如果您选择第二个选项,您可以像这样调整您的代码:

PdfPTable table = new PdfPTable(new float[] { 1, 1, 1, 1, 1 });
table.getDefaultCell().setBorder(PdfPCell.NO_BORDER);
Font tfont = new Font(Font.FontFamily.UNDEFINED, 10, Font.BOLD);
table.setWidthPercentage(100);
table.addCell(new Phrase("Menge", tfont));
table.addCell(new Phrase("Beschreibung", tfont));
table.addCell(new Phrase("Einzelpreis", tfont));
table.addCell(new Phrase("Gesamtpreis", tfont));
table.addCell(new Phrase("MwSt", tfont));
document.add(table);

这个决定是根据经验通过设计做出的:它提供了最灵活的单元格和属性。

关于java - iText 5 getDefaultCell().setBorder(PdfPCell.NO_BORDER) 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27212695/

相关文章:

java - Firebase 在 Release模式下找不到要序列化的对象的属性

.net - 使用 ITextSharp 和 PDFSharp 渲染 PDF 表的性能 Not Acceptable

java - IText5 - 使用相同内容和 SmartPdfCopy 创建 10000 页 PDF 时占用大量内存

java - 字体大小未反射(reflect)在 IText 中

java - 将阿拉伯语内容添加到 PDF 表格

java - 寻找一种解析多类型 JSON 字段的方法

java - 如何将 JTextField 打印到 JTable 中?

java - Spring 中用户相关的 bean 定义

java - 混合 8 位 8000Hz PCM_ULAW 样本的最简单方法是什么?

asp.net - 如何在 Rackspace 云站点上以中等信任度运行 Itextsharp.dll