itextsharp pdfpcell выравнивание с куском
-
21-12-2019 - |
Вопрос
Я создаю PDF программно, используя iTextSharp и генерацию PDFPTABLE.
В некоторых клетках мне нужно иметь гиперссылку.
Без гиперссылки я могу выровнять текст в ячейке горизонтально и вертикально, однако, когда я добавляю в кусок, который содержит мою гиперссылку, ячейка ослабляет свой свойство выравнивания.
Вот мой код ...
var webAddress = new Chunk(row["product_code"].ToString(), linkFont);
webAddress.SetAnchor(row["url"].ToString());
PdfPCell ProductCodeCell = new PdfPCell();
ProductCodeCell.AddElement(webAddress);
ProductCodeCell.VerticalAlignment = Element.ALIGN_MIDDLE;
ProductCodeCell.HorizontalAlignment = Element.ALIGN_CENTER;
ProductCodeCell.Padding = 3f;
table.AddCell(ProductCodeCell);
.
Может кто-нибудь помочь мне передать ссылку?
большое спасибо.
Решение
См. см. Это ответа для обсуждения на Text Mode Versus Composite .В основном, если вы используете AddElement()
, вам нужно установить выравнивание на свой объект вместо самой камеры.Chunk
не имеет выравнивания, однако, поэтому вам нужно обернуть свой кусок в то, что делает, который делает это генеракодицетагкод.
var table = new PdfPTable(1);
//Create our chunk with anchor
var webAddress = new Chunk("hello");
webAddress.SetAnchor("http://www.example.net/");
//Create a paragraph holding the chunk and set the alignment on _it_
var para = new Paragraph(webAddress);
para.Alignment = Element.ALIGN_CENTER;
//Create our cell
PdfPCell ProductCodeCell = new PdfPCell();
//Add the paragrph to it
ProductCodeCell.AddElement(para);
//Padding on the cell still works
ProductCodeCell.Padding = 30f;
//Add cell to table
table.AddCell(ProductCodeCell);
. Не связан с StackOverflow