#c# #itext
#c# #itext
Вопрос:
Я относительно новичок в iText 5 .NET (ранее известный как iTextSharp). Есть ли способ записать текст в несколько столбцов? Я не могу использовать colspan, так как каждый столбец имеет свой цвет.
var cell = new PdfPCell() { Padding = 0, BorderWidth = 0, FixedHeight = _slotParam.SlotHeight };
var tgrid = new PdfPTable(3);
tgrid.AddCell(new PdfPCell() { Padding = 0, BackgroundColor = Color.ORANGE, BorderWidth = 0, FixedHeight = _slotParam.SlotHeight });
tgrid.AddCell(new PdfPCell() { Padding = 0, BackgroundColor = Color.WHITE, BorderWidth = 0, FixedHeight = _slotParam.SlotHeight });
tgrid.AddCell(new PdfPCell() { Padding = 0, BackgroundColor = Color.GREEN, BorderWidth = 0, FixedHeight = _slotParam.SlotHeight });
cell.AddElement(tgrid);
Paragraph paragraph = new Paragraph(phrase);
paragraph.Leading = 11f;
cell.AddElement(phrase);
mainGrid.AddCell(cell);
Это результат, который у меня есть, я хочу написать текст в этих 3 цветах.
Комментарии:
1. Вы могли бы использовать таблицу и установить границу ячеек таблицы в NO_BORDER
2. Сделал то же самое, но не сработало
var cell = new PdfPCell() { Padding = 0, BorderWidth = 0, FixedHeight = _slotParam.SlotHeight }; var tgrid = new PdfPTable(3); tgrid.DefaultCell.Border = Rectangle.NO_BORDER;
3. i.stack.imgur.com/QXN4A.png Результат, который я получил, я хочу написать текст через эти 3 цвета.
4. Если у вас разные ячейки, вам нужно разделить текст и разделить его на отдельные ячейки. Если вы хотите разместить текст в ячейке поверх трех столбцов, у вас будет только одна ячейка, и вы не сможете применить цвета, как вы это делаете. В зависимости от вашей конкретной задачи я бы предложил либо иметь одну ячейку в таблице со всем текстом и рисовать три цвета в событии ячейки; или вообще не использовать таблицы и рисовать цвета на
UnderContent
.
Ответ №1:
На самом деле, решение простое. Если для первой ячейки задать значение NoWrap = true, текст будет перекрывать другие ячейки. tgrid.AddCell(new PdfPCell(phrase) { Padding = 0, BackgroundColor = Color.ORANGE, BorderWidth = 0, FixedHeight = _slotParam.SlotHeight, NoWrap = true });
[Вывод] 1 Спасибо всем за помощь. Приветствия.
Комментарии:
1. Если бы разработка продукта не остановилась, такой обходной путь, вероятно, не работал бы долго. Однако в случае iText 5 это должно продолжать работать.