Pdf 如何将文本放入单元格itext 7

Pdf 如何将文本放入单元格itext 7,pdf,itext,pdf-generation,itext7,Pdf,Itext,Pdf Generation,Itext7,供参考 如何使用Cell和itext 7库获取上述内容 我使用了cell.setPadding0f;但这并没有帮助我获得预期的结果。您似乎忘记设置要添加到单元格中的内容的前导。我试着模仿你分享的屏幕截图: 这是我用来这样做的代码: public void createPdf(String dest) throws IOException { // step 1 PdfDocument pdfDocument = new PdfDocument(new PdfWriter(dest

供参考

如何使用Cell和itext 7库获取上述内容


我使用了cell.setPadding0f;但这并没有帮助我获得预期的结果。

您似乎忘记设置要添加到单元格中的内容的前导。我试着模仿你分享的屏幕截图:

这是我用来这样做的代码:

public void createPdf(String dest) throws IOException {
    // step 1
    PdfDocument pdfDocument = new PdfDocument(new PdfWriter(dest));
    pdfDocument.setDefaultPageSize(PageSize.A4.rotate());
    // step 2
    Document document = new Document(pdfDocument);
    // step 3
    Table table = new Table(new float[]{ 50 , 50 });
    table.setWidthPercent(30);
    table.addCell(new Cell().setPadding(0).setTextAlignment(TextAlignment.CENTER)
            .add(new Paragraph("4.0").setMultipliedLeading(1.2f).setItalic()));
    table.addCell(new Cell().setPadding(0).setTextAlignment(TextAlignment.CENTER)
            .add(new Paragraph("0.14").setMultipliedLeading(1.2f).setItalic()));
    document.add(table);
    // step 4
    document.close();
}
在本例中,我使用了1.2f的相乘前导。请随意更改该值


注意:无法在父级上设置级别的值(例如,表、文档等)是非常烦人的,。。。。我已经创建了,希望在下一个版本中支持此功能。

似乎您忘记设置要添加到单元格中的内容的前导。我试着模仿你分享的屏幕截图:

这是我用来这样做的代码:

public void createPdf(String dest) throws IOException {
    // step 1
    PdfDocument pdfDocument = new PdfDocument(new PdfWriter(dest));
    pdfDocument.setDefaultPageSize(PageSize.A4.rotate());
    // step 2
    Document document = new Document(pdfDocument);
    // step 3
    Table table = new Table(new float[]{ 50 , 50 });
    table.setWidthPercent(30);
    table.addCell(new Cell().setPadding(0).setTextAlignment(TextAlignment.CENTER)
            .add(new Paragraph("4.0").setMultipliedLeading(1.2f).setItalic()));
    table.addCell(new Cell().setPadding(0).setTextAlignment(TextAlignment.CENTER)
            .add(new Paragraph("0.14").setMultipliedLeading(1.2f).setItalic()));
    document.add(table);
    // step 4
    document.close();
}
在本例中,我使用了1.2f的相乘前导。请随意更改该值


注意:无法在父级上设置级别的值(例如,表、文档等)是非常烦人的,。。。。我已经创建了,希望在下一个版本中支持它。

虽然没有合适的默认前导设置器,但有一种方法可以在实现IPropertyContainer的document/table/other类上设置它。只需使用setProperty方法。由于前导和斜体模拟属性是继承的,因此容器及其所有子容器将具有此属性,除非覆盖它

我已经重写了Bruno的代码,下一个代码段将执行您想要的结果

    PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outFileName));
    pdfDocument.setDefaultPageSize(PageSize.A4.rotate());

    Document document = new Document(pdfDocument);

    Table table = new Table(new float[]{ 50 , 50 });
    table.setWidthPercent(30);
    document.setProperty(Property.LEADING, new Leading(Leading.MULTIPLIED, 1.2f));
    document.setProperty(Property.ITALIC_SIMULATION, true);

    table.addCell(new Cell().setPadding(0).setTextAlignment(TextAlignment.CENTER)
            .add("4.0"));
    table.addCell(new Cell().setPadding(0).setTextAlignment(TextAlignment.CENTER)
            .add("0.14"));
    document.add(table);
    document.close();

但是,强烈建议不要自行设置属性,除非您了解这会导致什么结果

尽管没有合适的默认前导设置器,但有一种方法可以在实现IPropertyContainer的文档/表格/其他类上设置它。只需使用setProperty方法。由于前导和斜体模拟属性是继承的,因此容器及其所有子容器将具有此属性,除非覆盖它

我已经重写了Bruno的代码,下一个代码段将执行您想要的结果

    PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outFileName));
    pdfDocument.setDefaultPageSize(PageSize.A4.rotate());

    Document document = new Document(pdfDocument);

    Table table = new Table(new float[]{ 50 , 50 });
    table.setWidthPercent(30);
    document.setProperty(Property.LEADING, new Leading(Leading.MULTIPLIED, 1.2f));
    document.setProperty(Property.ITALIC_SIMULATION, true);

    table.addCell(new Cell().setPadding(0).setTextAlignment(TextAlignment.CENTER)
            .add("4.0"));
    table.addCell(new Cell().setPadding(0).setTextAlignment(TextAlignment.CENTER)
            .add("0.14"));
    document.add(table);
    document.close();

但是,强烈建议不要自行设置属性,除非您了解这会导致什么结果

@alexey你能帮忙吗this@alexey你能帮我做这个@Bruno@Bruno吗