1

クライアントにオファーを出すための Windows フォーム コードを書いています。pdfファイルにしたいです。テキストの配置方法を知っています。私はテーブルを作成する方法を知っており、データグリッドビューからコンテンツを入力します。

しかし、このテーブルをページの中央に垂直に配置するにはどうすればよいですか (水平方向の配置ではありません - 私はこれを知っています)、または事前定義された位置に配置するにはどうすればよいですか? 以下は私のコードです。その結果、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());
  }
4

0 に答える 0