Right aligning text in PdfPCell

后端 未结 5 1663
粉色の甜心
粉色の甜心 2020-11-27 07:38

I have a C# application that generates a PDF invoice. In this invoice is a table of items and prices. This is generated using a PdfPTable and PdfPCell

5条回答
  •  爱一瞬间的悲伤
    2020-11-27 08:26

    Here is my derivation of user2660112's answer - one method to return a cell for insertion into a bordered and background-colored table, and a similar, but borderless/colorless variety:

    private static PdfPCell GetCellForBorderedTable(Phrase phrase, int align, BaseColor color)
    {
        PdfPCell cell = new PdfPCell(phrase);
        cell.HorizontalAlignment = align;
        cell.PaddingBottom = 2f;
        cell.PaddingTop = 0f;
        cell.BackgroundColor = color;
        cell.VerticalAlignment = PdfPCell.ALIGN_CENTER;
        return cell;
    }
    
    private static PdfPCell GetCellForBorderlessTable(Phrase phrase, int align)
    {
        PdfPCell cell = new PdfPCell(phrase);
        cell.HorizontalAlignment = align;            
        cell.PaddingBottom = 2f;
        cell.PaddingTop = 0f;
        cell.BorderWidth = PdfPCell.NO_BORDER;
        cell.VerticalAlignment = PdfPCell.ALIGN_CENTER;
        return cell;
    }
    

    These can then be called like so:

    Font timesRoman9Font = FontFactory.GetFont(FontFactory.TIMES_ROMAN, 9, BaseColor.BLACK);
    Font timesRoman9BoldFont = FontFactory.GetFont(FontFactory.TIMES_BOLD, 9, BaseColor.BLACK);
    
    Phrase phrasesec1Heading = new Phrase("Duckbills Unlimited", timesRoman9BoldFont);
    PdfPCell cellSec1Heading = GetCellForBorderedTable(phrasesec1Heading, Element.ALIGN_LEFT, BaseColor.YELLOW);
    tblHeadings.AddCell(cellSec1Heading);
    
    Phrase phrasePoisonToe = new Phrase("Poison Toe Toxicity Level (Metric Richter Scale, adjusted for follicle hue)", timesRoman9Font);
    PdfPCell cellPoisonToe = GetCellForBorderlessTable(phrasePoisonToe, Element.ALIGN_LEFT);
    tblFirstRow.AddCell(cellPoisonToe);
    

提交回复
热议问题