iText7 и C#, поместите заполненную форму в ячейку таблицы - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь добавить прямоугольник с закругленными границами в ячейку таблицы, созданную с помощью iText7 и C#.

Я пытался использовать

table.AddCell(new Cell().Add(rect)

где я создал rect с

Rectangle boundingBox = new Rectangle(20, 470, 30, 30);
PdfFormXObject xObject = new PdfFormXObject(boundingBox);
xObject.MakeIndirect(pdfDoc); //Make sure the XObject gets added to the document
PdfCanvas canvas = new PdfCanvas(pdfDoc.AddNewPage());
Color greenColor = new DeviceCmyk(100, 30, 100, 0);
canvas.SetFillColor(greenColor);
canvas.Rectangle(294, 780, 50, 35);
canvas.FillStroke();

Image rect = new Image(xObject);

, предложенным моим другом, но я думаю, что это неправильный способ сделать это, и я даже не совсем уверен в том, что делает этот код , Кроме того, прямоугольник прозрачный, имеет большие поля, а шрифт в ячейках теперь тоже зеленый (перед вставкой прямоугольника он был черным).

Вот как это выглядит (я намеренно поставил квадрат на немного выше, чтобы показать прозрачность):

enter image description here

Что я хочу сделать, это создать зеленый прямоугольник формы, закруглить границы, а затем поместить его в клетке.

Это должно выглядеть так:

enter image description here

Есть ли хороший способ сделать это?

1 Ответ

2 голосов
/ 21 марта 2020

Вы можете создать объект макета уровня блока (Div) и установить для него все необходимые визуальные свойства. Нет необходимости выполнять пользовательские операции рисования. Вот пример кода (в Java, но преобразование в C# сводится к прописным именам методов):

Div rectangle = new Div()
        .setHeight(30)
        .setWidth(30)
        .setBackgroundColor(ColorConstants.GREEN)
        .setBorderRadius(new BorderRadius(5))
        .setBorder(new SolidBorder(ColorConstants.GREEN, 1));

table.addCell(new Cell().add(rectangle));

Визуально результат выглядит следующим образом: result

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...