对齐单元格在pdfTable - ITextSharp
本文关键字:ITextSharp pdfTable 单元格 对齐 | 更新日期: 2023-09-27 18:07:06
我正在尝试集中列的标题和"Money values"右对齐。
这是我的页眉,当前为左对齐,我需要居中
PdfPCell cell = new PdfPCell(new iText.Phrase(""));
cell.HorizontalAlignment = 1;
cell.Colspan = 7;
pdfTable.HorizontalAlignment = 1;
pdfTable.AddCell(new iText.Phrase("NF", font4));
pdfTable.AddCell(new iText.Phrase("Emissão", font4));
pdfTable.AddCell(new iText.Phrase("Vencimento", font4));
pdfTable.AddCell(new iText.Phrase("Dias", font4));
pdfTable.AddCell(new iText.Phrase("Valor(R$)", font4));
pdfTable.AddCell(new iText.Phrase("Encargos(R$)", font4));
pdfTable.AddCell(new iText.Phrase("Vlr. Final(R$)", font4));
这是我填写表格的地方,列"Valor(R$)","Encargos(R$)","Vlr"。Final(R$)"需要对齐,有人知道我做错了什么吗?"
foreach (DataRow r in dtNotaAceite.Rows)
{
if (dtNotaAceite.Rows.Count > 0)
{
DateTime dataEmissao = (DateTime) r["Dtemissao"];
DateTime dataVenc = (DateTime)r["Dtvenc"];
string emissaoFormatada = dataEmissao.ToString("dd/M/yyyy");
string vencFormatada = dataVenc.ToString("dd/M/yyyy");
r["VLFINAL"] = Convert.ToDecimal(r["Valor"]) - Convert.ToDecimal(r["VLENCARGOS"]);
pdfTable.AddCell(new iText.Phrase(r["Belnr"].ToString(), font3));
pdfTable.AddCell(new iText.Phrase(emissaoFormatada, font3));
r["Dtvenc"] = String.Format("{0:dd-MM-yyyy}", r["Dtvenc"]);
pdfTable.AddCell(new iText.Phrase(vencFormatada, font3));
pdfTable.AddCell(new iText.Phrase(r["DIASANTEC"].ToString(), font3));
pdfTable.AddCell(new iText.Phrase(r["Valor"].ToString(), font3));
r["VLENCARGOS"] = String.Format("{0:0.##}", r["VLENCARGOS"]);
pdfTable.AddCell(new iText.Phrase(r["VLENCARGOS"].ToString(), font3));
r["VLFINAL"] = String.Format("{0:0.##}", r["VLFINAL"]);
pdfTable.AddCell(new iText.Phrase(r["VLFINAL"].ToString(), font3));
}
}
你做错了什么?
您创建了一个名为cell
的PdfPCell
,您为其定义了对齐(以一种丑陋的方式,您应该使用Element.ALIGN_CENTER
,以便我们可以阅读和理解您的代码)和7的colspan。但是你不能在任何地方使用这个cell对象
您创建了一个PdfPTable
,您为它定义了对齐(以同样丑陋的方式)。但是这定义了整个表的对齐方式,而不是单元格的内容。
然后使用AddCell()
方法向该表添加一系列单元格。这意味着您希望ittext创建PdfPCell
。在这种情况下,您可以在默认单元格属性中预定义一些属性:
pdfTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
您可以在添加一定数量的单元格后更改默认单元格的属性,例如:
pdfTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
pdfTable.AddCell(new iText.Phrase("NF", font4));
pdfTable.AddCell(new iText.Phrase("Emissão", font4));
pdfTable.AddCell(new iText.Phrase("Vencimento", font4));
pdfTable.AddCell(new iText.Phrase("Dias", font4));
pdfTable.AddCell(new iText.Phrase("Valor(R$)", font4));
pdfTable.AddCell(new iText.Phrase("Encargos(R$)", font4));
pdfTable.AddCell(new iText.Phrase("Vlr. Final(R$)", font4));
pdfTable.DefaultCell.HorizontalAlignment = Element.ALIGN_RIGHT;
在最后一行之后添加AddCell()
的所有单元格将右对齐。