如何使用ItextSharp/C#设置桌子的位置?

如何使用ItextSharp/C#设置桌子的位置?,c#,pdf,position,itext,C#,Pdf,Position,Itext,我正在编写一个windows窗体代码,用于为我的客户提供报价。我想让它成为pdf文件。 我知道如何定位文本。我确实知道如何创建一个表,并用datagridview中的内容填充它 P>但是我如何将这个表垂直放置在页面中间(不是水平对齐——我知道这一点),或者在任何预定义的位置?下面是我的代码。结果是一个表直接在页面的顶部,即使我在页面的中间用StEtTrimeMatxSoMe放置了一些文本。我应该做一些大的,透明的行还是什么 PdfPTable tabela = new PdfPTable(da

我正在编写一个windows窗体代码,用于为我的客户提供报价。我想让它成为pdf文件。 我知道如何定位文本。我确实知道如何创建一个表,并用datagridview中的内容填充它

<> P>但是我如何将这个表垂直放置在页面中间(不是水平对齐——我知道这一点),或者在任何预定义的位置?下面是我的代码。结果是一个表直接在页面的顶部,即使我在页面的中间用StEtTrimeMatxSoMe放置了一些文本。我应该做一些大的,透明的行还是什么

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());
  }
PdfPTable tabela=新的PdfPTable(dataGridView1.Columns.Count);
浮动[]szerokości=新浮动[]
{
dataGridView1.Columns[0]。宽度,
dataGridView1.Columns[1]。宽度,
dataGridView1.Columns[2]。宽度,
dataGridView1.Columns[3]。宽度,
dataGridView1.Columns[4]。宽度,
dataGridView1.Columns[5]。宽度,
dataGridView1.列[6].宽度
};
表1.设置宽度(szerokości);
tabela.HorizontalAlignment=1;//0-卢沃,1-罗德克,2-普拉沃
tabela.SpacingBefore=10.0F;
PdfPCell-komorka=null;
foreach(dataGridView1.Columns中的DataGridViewColumn c)
{
komorka=新的PdfPCell(新短语(新语块(c.HeaderText,czcionkaNaglowek));
komorka.HorizontalAlignment=PdfPCell.ALIGN_CENTER;
komorka.VerticalAlignment=PdfPCell.ALIGN_CENTER;
tabela.AddCell(komorka);
}
如果(dataGridView1.Rows.Count>0)
{
对于(int i=0;i
你刚刚发布的代码是如何做到这一点的。。?你去过iTextSharp的网站吗?他们有很多例子,我搜索了很多。我真的很惊讶,我的程序竟然很好,除了这张表的位置。
+1
我很高兴你真的付出了很大的努力,但我知道iTextSharp有一些很好的例子,我在几年前使用过,但现在不再使用了。谢谢。我经历了将excel加载到datagrid、datagrid对文本框文本更改的过滤以及其他一些问题——在大多数情况下,我在谷歌上搜索了一些想法。但我被困在这里了。在iTextSharp网站上没有找到任何我可以使用她的东西。我将在一周内进行调整,并尝试添加空白行文本,以便表格从较低的位置开始…但这不是一个优雅的解决方案;)啊,解决办法很简单。我只是把最高利润率定在400点,这正是我所需要的。表格从页面的中间开始。现在我需要把它整理整齐。下一步:导出到excel。