Itextsharp pdfpcell проблема вертикального выравнивания - PullRequest
4 голосов
/ 03 февраля 2011

Как бы я сделал две ячейки выровнены по вертикали вместе. В настоящее время вторая ячейка отображается под первой ячейкой. Первая ячейка - это изображение, а вторая - текст. Вот мой код.

    private Document pdoc;
    Font font99 = FontFactory.GetFont("HELVETICA", 60);
    PdfPTable pdfRatingTable = new PdfPTable(2);
    PdfPCell pRatCell = null;
    pdfRatingTable.WidthPercentage = 100;
    pdfRatingTable.SetWidths(new int[] { 75, 25 });

    hImage = iTextSharp.text.Image.GetInstance(MapPath("~/Images/fyler3_Rating.jpg"));
    NewWidth = 338;
    MaxHeight = 18;
    if (hImage.Width <= NewWidth)
    {
        NewWidth = hImage.Width;
    }
    NewHeight = hImage.Height * NewWidth / hImage.Width;
    if (NewHeight > MaxHeight)
    {
        NewWidth = hImage.Width * MaxHeight / hImage.Height;
        NewHeight = MaxHeight;
    }

    ratio = hImage.Width / hImage.Height;
    hImage.ScaleAbsolute(NewWidth, NewHeight);
    pRatCell = new PdfPCell(hImage);
    pRatCell.Border = 0;
    pRatCell.PaddingLeft = 20f;
    pRatCell.HorizontalAlignment = Element.ALIGN_LEFT;
    pdfRatingTable.AddCell(pRatCell);

    pRatCell = new PdfPCell(new Phrase(new Chunk("405", font99)));
    pRatCell.HorizontalAlignment = Element.ALIGN_LEFT;
    pRatCell.Border = 0;
    pRatCell2.VerticalAlignment = Element.ALIGN_TOP;
    pdfRatingTable.AddCell(pRatCell);
    pdoc.Add(pdfRatingTable);

1 Ответ

1 голос
/ 03 февраля 2011

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

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


Или под "снизу" вы подразумеваете, что они оба находятся в одном ряду, нотекст появляется внизу ячейки, в то время как изображение находится посередине с 20 точками вокруг него, так что текст находится полностью под изображением?

IIRC, Paragraph займет всю ячейку, ноChunk будет подчиняться настройкам вертикального и горизонтального выравнивания ячеек.Смотрите комментарии в мой ответ здесь .

...