0

当我运行此代码时,它会生成 PDF,尽管只会显示品牌而不显示成本。它似乎只显示字符串而不是整数、浮点数等。如果我要创建一个表并使用.addCell(temptr.getFltTyreCost());它不仅不起作用,而且我得到一个错误

找不到适合 addCell(float) 的方法。

代码:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("TyreTread2013DTAPU");

EntityManager em = emf.createEntityManager();

List<Tyrerange> tr = em.createNamedQuery("Tyrerange.findAll").getResultList();
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(tireFile));
document.open();

Image ttlogo = Image.getInstance(ttLogo);
ttlogo.scaleAbsolute(525, 85);
document.add(ttlogo);

document.add(new Paragraph("Inventory Tire Stock on Hand Report",
        FontFactory.getFont(FontFactory.TIMES_BOLDITALIC, 18, Font.BOLD, BaseColor.RED)));
document.add(new Paragraph(new Date().toString()));
document.add(new Paragraph(" "));

document.add(new Paragraph("Brand \t\t Cost"));

for (Tyrerange temptr : tr) {
    document.add(new Paragraph(temptr.getStrTyreBrand()));
    document.add(new Paragraph(temptr.getFltTyreCost()));
}
4

1 回答 1

6

我假设在你的行中

document.add(new Paragraph(temptr.getFltTyreCost()));

您想添加一个新段落,其中包含由temptr.getFltTyreCost. 不幸的是,带有 float 参数的 Paragraph 构造函数不会将 float 解释为要显示的内容,而是将其解释为前导:

/**
 * Constructs a <CODE>Paragraph</CODE> with a certain leading.
 *
 * @param   leading     the leading
 */
public Paragraph(float leading)

因此,您首先必须将浮点数转换为字符串,例如:

document.add(new Paragraph(String.valueOf(temptr.getFltTyreCost())));
于 2013-10-07T22:18:10.800 回答