我有一个生成PDF发票的C#应用程序.在此发票中是项目和价格表.这是使用a PdfPTable和PdfPCells 生成的.
我希望能够右对齐价格列,但我似乎无法 - 文本总是在单元格中左对齐.
这是我创建表的代码:
PdfPTable table = new PdfPTable(2);
table.TotalWidth = invoice.PageSize.Width;
float[] widths = { invoice.PageSize.Width - 70f, 70f };
table.SetWidths(widths);
table.AddCell(new Phrase("Item Name", tableHeadFont));
table.AddCell(new Phrase("Price", tableHeadFont));
SqlCommand cmdItems = new SqlCommand("SELECT...", con);
using (SqlDataReader rdrItems = cmdItems.ExecuteReader())
{
while (rdrItems.Read())
{
table.AddCell(new Phrase(rdrItems["itemName"].ToString(), tableFont));
double price = Convert.ToDouble(rdrItems["price"]);
PdfPCell pcell = new PdfPCell();
pcell.HorizontalAlignment = PdfPCell.ALIGN_RIGHT;
pcell.AddElement(new Phrase(price.ToString("0.00"), tableFont));
table.AddCell(pcell);
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
我正在使用此代码水平对齐.
cell = New PdfPCell();
p = New Phrase("value");
cell.AddElement(p);
cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER; //Tried with Element.Align_Center Also. Tried Adding this line before adding element also.
table.AddCell(cell);
Run Code Online (Sandbox Code Playgroud)
它不起作用.
我正在创建一个包含5列的表,并在运行时使用上面的代码在for循环中动态添加单元格.我希望所有单元格内容都居中.
当我使用单元格的对齐,所以它的工作原理:
PdfPCell cell1 = new PdfPCell(new Phrase("Text" , Font));
cell1.HorizontalAlignment = 2;
Run Code Online (Sandbox Code Playgroud)
但是一旦对齐不起作用:
PdfPCell cell1 = new PdfPCell();
cell1.AddElement(new Phrase("Text 1", Font));
cell1.AddElement(new Phrase("Text 2", Font));
cell1.HorizontalAlignment = 2;
Run Code Online (Sandbox Code Playgroud)
原因?