c# - pdfptable 中的 ItextSharp 水平对齐

标签 c# pdf itextsharp

我尝试使用 ItextSharp 对齐 pdf 表格中的单元格内容。不知何故,它根本不起作用,它总是在左侧对齐。

     var pageSize = PageSize.A4;

        if (_pdfSettings.LetterPageSizeEnabled)
        {
            pageSize = PageSize.LETTER;
        }


        var doc = new Document(pageSize);
        PdfWriter.GetInstance(doc, stream);
        doc.Open();

        //fonts     

        var normalFont = GetFont();

            normalFont.Color = BaseColor.BLACK;
            normalFont.Size = 14;

       //..titlefont, smallfont,largefont....

         var addressTable = new PdfPTable(1);
         addressTable.WidthPercentage = 100f;

         cell = new PdfPCell();

         cell.AddElement(new Paragraph("Người Gửi", titleFont));
         cell.AddElement(new Paragraph("TAKARA.VN", largeFont));

         cell.HorizontalAlignment = Element.ALIGN_RIGHT;

         addressTable.AddCell(cell);

         doc.Add(addressTable);
         doc.Add(new Paragraph("", normalFont));

更新:我找到了答案

你混淆了文本模式和复合模式。

文本模式:

Phrase p = New Phrase("value");
PdfPCell cell = new PdfPCell(p);
cell.HorizontalAlignment = Element.ALIGN_CENTER;
table.AddCell(cell);

复合模式:

PdfPCell cell = New PdfPCell();
Paragraph p = New Paragraph("value");
p.Alignment = Element.ALIGN_CENTER;
cell.AddElement(p);
table.AddCell(cell);

在文本模式下,使用单元格的对齐方式。在复合模式下(通过使用 AddElement() 触发,忽略单元格的对齐方式以支持添加到单元格的元素的对齐方式。

最佳答案

你可以使用:

cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER; 

或者您可以使用数字对齐:0=Left, 1=Centre, 2=Right

关于c# - pdfptable 中的 ItextSharp 水平对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22889857/

相关文章:

asp.net - 如何在 iTextSharp 中显示水平线

c# - 使用 iTextSharp 创建的简单 PDF 无法用 Acrobat Reader 打开?

c# - Stripe Payments - 如何更改订阅计划并立即收费?

php - 使用 PHP 从 Pdf 中提取文本

linux - 使用 rsvg-convert 可以将多页或多文件 SVG 转换为多页 PDF 吗?

html - 使用iText将HTML转换为PDF

c# - 如何使用 iTextSharp 确定 PDF 文件类型

c# - 如何在 Windows Phone 8.1(通用)应用程序中格式化 html 以便在 RichTextBlock 控件中显示它?

c# - 相关链接自动获得 session ID

c# - JavaScript 运行时与 C# 有何关系?