我正在编写一个 Windows 窗体代码来为我的客户提供报价。我希望它制作pdf文件。我确实知道如何定位文本。我确实知道如何制作表格,并用我的 datagridview 中的内容填充它。
但是我怎样才能将这个表格垂直放置在页面中间(不是水平对齐 - 我知道这一点),或者任何预定义的位置?下面是我的代码。结果是表格直接位于页面顶部,即使我在页面中间的某个位置通过 SetTextMatrix 放置了一些文本。我应该做一些大的,透明的行还是什么?
PdfPTable tabela = new PdfPTable(dataGridView1.Columns.Count);
float[] szerokości = new float[]
{
dataGridView1.Columns[0].Width,
dataGridView1.Columns[1].Width,
dataGridView1.Columns[2].Width,
dataGridView1.Columns[3].Width,
dataGridView1.Columns[4].Width,
dataGridView1.Columns[5].Width,
dataGridView1.Columns[6].Width
};
tabela.SetWidths(szerokości);
tabela.HorizontalAlignment = 1; // 0 - lewo, 1 - środek , 2 - prawo
tabela.SpacingBefore = 10.0F;
PdfPCell komorka = null;
foreach (DataGridViewColumn c in dataGridView1.Columns)
{
komorka = new PdfPCell(new Phrase(new Chunk(c.HeaderText, czcionkaNaglowek)));
komorka.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
komorka.VerticalAlignment = PdfPCell.ALIGN_CENTER;
tabela.AddCell(komorka);
}
if (dataGridView1.Rows.Count > 0)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
komorka = new PdfPCell(new Phrase(dataGridView1.Rows[i].Cells[j].Value.ToString(), czcionkaTabela));
komorka.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
komorka.VerticalAlignment = PdfPCell.ALIGN_CENTER;
tabela.AddCell(komorka);
}
}
}
oferta.Add(tabela);
oferta.Close();
}
catch (DocumentException dex)
{
MessageBox.Show(dex.ToString());
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}