Нарисуйте прямоугольник в документе PDF с помощью iText

Есть ли способ в iText нарисовать прямоугольник в документе PDF?


person Milhous    schedule 21.08.2009    source источник


Ответы (4)


Вот решение. Спасибо, Дилан МакКланг.

PdfWriter writer = ...;
PdfContentByte cb = writer.getDirectContent();
cb.saveState();
cb.setColorStroke(Color.black);
cb.rectangle(x,y,x1,y1);
cb.stroke();
cb.restoreState();
person Milhous    schedule 25.08.2009

В версии .NET я просто создаю таблицу с рамкой. Я знаю, что это не Java, но, возможно, вам поможет следующий код.

iTextSharp.text.Document document = new iTextSharp.text.Document(PageSize.LETTER, 20, 20, 20, 20);
PdfPTable table;
PdfPCell cell;

// single element w/ border
table = new PdfPTable(1);
cell = new PdfPCell(new Phrase("BOLD WORDS", FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 11, Font.BOLD)));
cell.BorderWidth = 2;
cell.Padding = 5;
cell.PaddingTop = 3;
cell.HorizontalAlignment = Element.ALIGN_CENTER;
table.AddCell(cell);
table.SetWidthPercentage(new float[1] { 598f }, PageSize.LETTER);
table.HorizontalAlignment = Element.ALIGN_CENTER;
document.Add(table);
person Mayo    schedule 21.08.2009
comment
идея просто нарисовать ячейку таблицы не так уж и плоха - person Chris623; 06.12.2013

Более полный пример находится по адресу: http://www.mikesdotnetting.com/Article/88/iTextSharp-Drawing-shapes-and-Graphics

person Jeff S    schedule 11.12.2011

public static void drawRectangle(PdfContentByte content, float width, float height) {
    content.saveState();
    PdfGState state = new PdfGState();
    state.setFillOpacity(0.6f);
    content.setGState(state);
    content.setRGBColorFill(0xFF, 0xFF, 0xFF);
    content.setLineWidth(3);
    content.rectangle(0, 0, width, height);
    content.fillStroke();
    content.restoreState();
}

Из API itext

person sreeprasad    schedule 01.08.2012