【发布时间】:2018-01-04 19:01:39
【问题描述】:
我正在用 C# 编写工资结算格式,用 itexsharp 生成 pdf 文件。
但我无法控制 PdfPTable / PdfPCell 单元格内容的对齐方式。
我有这个代码:
/*datos del LA LIQUIDACIÓN*/
//1° linea
phrase.Font = new Font(FontFactory.GetFont("Arial", 10, Font.BOLD));
phrase.Add("H A B E R E S");
PdfPCell cell2 = new PdfPCell();
cell2.Border = Rectangle.NO_BORDER;
cell2.PaddingTop = -7;
cell2.AddElement(phrase);
cell2.Colspan = 3;
cell2.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
table2.AddCell(cell2);
phrase.Clear();
但它给了我这个结果:
单元格的内容,例如文本“HABERES”,我需要它与中心对齐,但它与左侧对齐。
以前看过"Right aligning text in PdfPCell"这个帖子,吃过的都做了,除了走“不一样的路”,什么都没有提到……那我该怎么办呢?
【问题讨论】:
-
我们使用 iText 7 从头重写 iText 的原因之一是,许多开发人员不阅读文档。结果,他们不明白文本模式和复合模式之间的区别。 iText 7 更简单,这就引出了一个问题:为什么你还在使用 iText 5 而不是 iText 7?
-
亲爱的 Bruno Lowagie,它的文档是针对 java、itext 的,我想它是完全正确的。但正如您所见,我正在使用 itextsharp 开发 C#。我使用在各种示例中找到的代码来构建我的项目。因为 itextsharp 的文档很不准确,你能帮我解决这个问题吗?
-
每个自尊的 C# 开发人员都可以使用一些简单的规则:Java 方法以小写开头;使它成为大写。当 Java 方法以 get 或 set 开头时;删除 get 或 set,并使用属性方法。请阅读其他答案,并应用我在其他答案中所说的话。 (待续……)
-
另一个答案是关于文本模式(在单元格级别设置对齐方式:
cell2.HorizontalAlignment = PdfPCell.ALIGN_CENTER;)和复合模式之间的区别(在这种情况下,单元格的对齐将被忽略)。您正在使用复合模式,因此cell2.HorizontalAlignment = PdfPCell.ALIGN_CENTER;行被忽略。您应该切换到文本模式,或者在phrase级别设置对齐方式。你对这个答案有什么不明白的地方吗? -
谢谢!我已经更改了文本模式,因为我无法更改 Phrase 类的对齐方式,如果它与 Paragraph 类一起使用的话。我会发布答案,请投票。再次非常感谢你..