gpt4 book ai didi

java - iText 7 表格忽略我的表格边框设置

转载 作者:行者123 更新时间:2023-12-02 12:48:26 27 4
gpt4 key购买 nike

我想要一个没有边框的表格。我尝试设置边框属性、单独的边框属性、手动设置边框、将单元格边框设置为无边框等。没有删除边框。拥有无边框 iText 7 表格的正确方法是什么?

    PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outputStream));
Document doc = new Document(pdfDoc);
PdfFont font = PdfFontFactory.createFont(FontConstants.HELVETICA);

Table table = new Table(new float[] { 1, 1 });
table.setProperty(Property.BORDER_BOTTOM, Border.NO_BORDER);
table.setProperty(Property.BORDER_LEFT, Border.NO_BORDER);
table.setProperty(Property.BORDER_RIGHT, Border.NO_BORDER);
table.setProperty(Property.BORDER_TOP, Border.NO_BORDER);
table.setProperty(Property.BORDER, Border.NO_BORDER);
table.setBorder(Border.NO_BORDER);

table.setWidthPercent(100);

// Header
File file = new ClassPathResource("logo.png").getFile();
Image logo = new Image(ImageDataFactory.create(file.getPath()));

Paragraph headerParagraph = new Paragraph();
Text headerTitle = new Text("Title of PDF")
.setFont(font)
.setFontSize(20)
.setFontColor(new DeviceRgb(0, 128, 128));
Text headerDescription = new Text("Description")
.setFont(font)
.setFontSize(11);

headerParagraph.add(headerTitle);
headerParagraph.add(NEW_LINE);
headerParagraph.add(headerDescription);

table.addCell(logo);
table.addCell(headerParagraph).setTextAlignment(TextAlignment.RIGHT);

这些设置似乎都不起作用。使用 iText 7.0.2

最佳答案

首先,运行下一个代码片段,看看 iText7 可以创建无边框的表格。

    PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outFileName));
Document doc = new Document(pdfDoc);

Table table = new Table(new float[] {50, 50 });

Paragraph headerParagraph = new Paragraph();
Text headerTitle = new Text("Title of PDF")
.setFontSize(20)
.setFontColor(new DeviceRgb(0, 128, 128));
Text headerDescription = new Text("Description")
.setFontSize(11);

headerParagraph.add(headerTitle);
headerParagraph.add(headerDescription);

table.addCell(new Cell().add("logo").setBorder(Border.NO_BORDER));
table.addCell(new Cell().add(headerParagraph).setBorder(Border.NO_BORDER).setTextAlignment(TextAlignment.RIGHT));

doc.add(table);

这就是负责这种“魔法”的线路:

table.addCell(new Cell().add("logo").setBorder(Border.NO_BORDER));

但是根本没有魔法。默认情况下,单元格在 iText7 中具有边框(0.5 像素纯黑色)。因此,如果您想添加一个没有边框的单元格,您应该通过将 NO_BORDER 设置为单元格边框来指定它。

另一方面,表格默认没有边框(我的意思是边界边框)。所以不需要这些行:

table.setProperty(Property.BORDER_BOTTOM, Border.NO_BORDER);
table.setProperty(Property.BORDER_LEFT, Border.NO_BORDER);
table.setProperty(Property.BORDER_RIGHT, Border.NO_BORDER);
table.setProperty(Property.BORDER_TOP, Border.NO_BORDER);
table.setProperty(Property.BORDER, Border.NO_BORDER);
table.setBorder(Border.NO_BORDER);

您还应该了解 table.setBorder(border) 代表 table.setProperty(Property.BORDER, border)。对于table.setBorderLeft(border)等也是如此

关于java - iText 7 表格忽略我的表格边框设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44660060/

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