iText格式化问题

时间:2013-08-08 13:18:54

标签: java pdf itext

背景

我一直在研究动态PDF生成一段时间了,而且我遇到了我的最终要求。唉,这是一场噩梦。我正在使用 iText 库2.1.7版。

我基本上试图获得像顶行一样的格式(我只是在绘画中嘲笑)。其他行就是它当前的样子,但我遇到了让它们正确排队的麻烦!

enter image description here

代码

用于生成每个颜色编码块的代码在这里:

        String currentPrice = p.getPrice();
        String timeStr = p.getTime();         
        Chunk price = new Chunk(currentPrice);
        Chunk time = (Chunk) generatePdfElement("Timestamp", timeStr);

        if (priceDbl > lastPrice) {
             // set color to blue.
             price.setBackground(WebColors.getRGBColor("#7777FF"));
             time.setBackground(WebColors.getRGBColor("#7777FF"));
        } else if (priceDbl < lastPrice) {
             // set to red.
             price.setBackground(WebColors.getRGBColor("#FF0000"));
             time.setBackground(WebColors.getRGBColor("#FF0000"));
        }

        Paragraph pricePara = new Paragraph();
        pricePara.add(price);
        pricePara.add(generateBreakLine());
        pricePara.add(time);
        pricePara.add(generateBreakLine());
        // Add the new price data to the list of all the prices for this cell.
        allPrices.add(pricePara);
然后将

allPrices添加到段落中并放入单元格中:

    Paragraph pricesCellValue = new Paragraph();
    pricesCellValue.addAll(allPrices);
    PdfPCell pricesCell = new PdfPCell(pricesCellValue);
    pricesCell.setBackgroundColor(WebColors.getRGBColor(getRowStr()));
    selectionsTable.addCell(pricesCell);
    // Add each cell to the table to create the row.

我试过的方法

我尝试了显而易见的,即删除了每个Chunk的最后一个分界线。这不起作用,虽然每个Chunk更接近,但看起来完全相同。

我也尝试从Paragraph更改为Phrase,这意味着代码如下所示:

  Phrase pricePara = new Phrase();
  pricePara.add(price);
  pricePara.add(generateBreakLine());
  pricePara.add(time);
  //pricePara.add(generateBreakLine());
  // Add the new price data to the list of all the prices for this cell.
  allPrices.add(pricePara);

这就是结果:

enter image description here

所以现在我的想法很新鲜!是否有其他人对此领域的iText有任何建议或经验?

修改

为了清楚起见,generateBreakLine()会生成一个新的空Paragraph对象。

1 个答案:

答案 0 :(得分:0)

我在最后一个单元格中使用了嵌套PdfPTable来格式化每个Phrase的位置。像梦一样工作!