无法将数据从sql数据库显示为PDF

S. *_*dad 0 java itext

当我运行此代码时,它会生成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()));
}
Run Code Online (Sandbox Code Playgroud)

mkl*_*mkl 6

我假设在你的队伍中

document.add(new Paragraph(temptr.getFltTyreCost()));
Run Code Online (Sandbox Code Playgroud)

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

/**
 * Constructs a <CODE>Paragraph</CODE> with a certain leading.
 *
 * @param   leading     the leading
 */
public Paragraph(float leading)
Run Code Online (Sandbox Code Playgroud)

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

document.add(new Paragraph(String.valueOf(temptr.getFltTyreCost())));
Run Code Online (Sandbox Code Playgroud)

  • @hadsi如果mkl得到了正确的答案,请给出答案的分数. (3认同)