【问题标题】:iTextSharp: which alignment properties are used in a PdfPCell?iTextSharp:PdfPCell 中使用了哪些对齐属性?
【发布时间】:2013-06-20 16:50:08
【问题描述】:

当我使用单元格的对齐方式时:

PdfPCell cell1 = new PdfPCell(new Phrase("Text" , Font));
cell1.HorizontalAlignment = 2;

但是一旦对齐不起作用:

PdfPCell cell1 = new PdfPCell();
cell1.AddElement(new Phrase("Text 1", Font));
cell1.AddElement(new Phrase("Text 2", Font));
cell1.HorizontalAlignment = 2;

原因?

【问题讨论】:

    标签: c# itextsharp


    【解决方案1】:

    您将 文本模式复合模式 混淆了。

    在第一个代码 sn-p 中,您在 文本模式下工作。这意味着单元格的内容被认为是纯文本,并尊重单元格的属性,而忽略添加到单元格的元素的属性。

    在第二个代码 sn-p 中,您在复合模式下工作。当您使用AddElement() 方法时,单元格会切换到复合模式。在这种情况下,单元格的属性将被忽略。而是使用元素的属性。

    例如:在文本模式下,单元格的内容只能有一种对齐方式。在复合模式下,您可以将左对齐的段落、居中的段落和右对齐的段落都放在同一个单元格中。

    【讨论】:

    • 所以,在Text Mode 中不能有一个单元格包含cell.HorizontalAlignment = Element.ALIGN_CENTER + cell.VerticalAlignment = Element.ALIGN_MIDDLE。这是一个选项或另一个选项,而不是同时对齐?
    • 复合模式(不是文本模式)中,为cell.HorizontalAlignment设置的任何值都将被忽略,有利于元素的水平对齐在细胞中。我没有说垂直对齐。这不是ParagraphImage、...的属性。
    【解决方案2】:

    现在是的,它起作用了。

    PdfPCell cell1 = new PdfPCell();
    Paragraph p1 = new Paragraph("Text 1", Font);
    p1.Alignment = Element.ALIGN_RIGHT;
    Paragraph p2 = new Paragraph("Text 2", Font);
    p2.Alignment = Element.ALIGN_RIGHT;
    
    cell1.AddElement(p1);
    cell1.AddElement(p2);
    

    谢谢。

    【讨论】:

    • 这个答案实际上有一个有效的代码示例
    猜你喜欢
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 2018-05-06
    • 2018-04-30
    相关资源
    最近更新 更多