Есть ли способ сделать границу ячейки пунктирной линией (например, _ _ _ _ _ _ _ _ _ _ _ _) вместо сплошной линии (например, ________________) в iText-5.0.1????
iText-5.0.1 + Сделайте границу PdfPTable пунктирной линией
Ответы (3)
не могли бы вы настроить что-то вроде добавления новых абзацев с небольшой высотой и text="---------"
PdfPCell Cell = new PdfPCell(new Paragraph("------"));
Cell.Height = 0.2f;
Вы также можете нарисовать границы самостоятельно, используя PdfPCellEvent. Есть разные слои для добавления. См. API здесь: http://api.itextpdf.com/com/itextpdf/text/pdf/PdfPCellEvent.html
person
David Fox
schedule
24.03.2010
Я думаю, мы не можем установить высоту для ячейки?
- person Mr CooL; 24.03.2010
Как было предложено, используйте PdfPCellEvent. Код ниже должен помочь вам в этом. Пример события ячейки. Переопределяя событие ячейки, вы фактически сообщаете iText как вы думаете, что он должен рисовать свои ячейки. Всякий раз, когда какие-либо ячейки добавляются в таблицу, они будут следовать вашим правилам.
class CustomCell implements PdfPCellEvent {
public void cellLayout(PdfPCell cell, Rectangle rect,
PdfContentByte[] canvas) {
PdfContentByte cb = canvas[PdfPTable.LINECANVAS];
cb.setLineDash(new float[] {3.0f, 3.0f}, 0);
cb.stroke();
}
}
public class Main {
public static void main(String[] args) throws Exception {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream("output.pdf"));
document.open();
CustomCell border = new CustomCell();
PdfPTable table = new PdfPTable(6);
PdfPCell cell;
for (int i = 1; i <= 6; i++) {
cell = new PdfPCell(new Phrase("test"));
cell.setCellEvent(border);
table.addCell(cell);
}
document.add(table);
document.close();
}
}
person
zmf
schedule
24.03.2010
У меня появилось сообщение об ошибке от E-Clipse, когда я попробовал ваш код... Нет доступного экземпляра типа pdf..... Любая идея, что произошло?
- person Mr CooL; 24.03.2010
Ячейка подчеркнута тире:
public class UnderlinedCell implements PdfPCellEvent {
public void cellLayout(PdfPCell cell, Rectangle position,
PdfContentByte[] canvases) {
PdfContentByte canvas = canvases[PdfPTable.LINECANVAS];
canvas.setLineWidth(0.5f);
canvas.setLineDash(3f, 3f);
canvas.moveTo(position.getLeft(), position.getBottom());
canvas.lineTo(position.getRight(), position.getBottom());
canvas.stroke();
}
}
person
Difi
schedule
02.06.2014