Java/PDF RTF/Table Cell Event

Материал из Java эксперт
Перейти к: навигация, поиск

Cell Events: cellLayout

import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Phrase;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPCellEvent;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
public class CellEventsPDF {
  public static void main(String[] args) {
    Document document = new Document(PageSize.A4, 50, 50, 50, 50);
    try {
      PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("CellEventsPDF.pdf"));
      document.open();
      PdfPTable table = new PdfPTable(1);
      PdfPCell cell = new PdfPCell();
      cell.setCellEvent(new MyCellEvent());
      cell.setPhrase(new Phrase("asdfasdf"));
      table.addCell(cell);
      table.setTotalWidth(300);
      document.add(table);
    } catch (Exception de) {
      de.printStackTrace();
    }
    document.close();
  }
}
class MyCellEvent implements PdfPCellEvent{
  public void cellLayout(PdfPCell cell, Rectangle position,
      PdfContentByte[] canvases) {
    PdfContentByte cb = canvases[PdfPTable.TEXTCANVAS];
    cb.moveTo(position.left(), position.bottom());
    cb.lineTo(position.right(), position.top());
    cb.stroke();
  }  
}