C# - 使用iTextSharp将DataGridView导出为带有Unicode字符的PDF

时间:2016-07-15 00:09:13

标签: c# winforms visual-studio-2010 datagridview itext

我是C#的新手。使用iTextSharp我可以将dataGridView1中的数据导出为PDF文件,但是当我这样做时,PDF不会显示♫,→或►(Unicode)等字符。所以我正在阅读这个,但我不明白,基本上所有的解决方案都在ASP.NET或VB.NET中。我正在使用Visual C#Express 2010.这是我用来导出PDF的代码:

 colstoremove <- list();
 for (i in range(dim(I.df.nocov)[2])) {
     x <- shapiro.test(I.df.nocov[1:200,i])
     colstoremove[[i]] <- x[2]
    }

此方法获取列datagridview

的大小
public void GenerarDocumento(Document document)
{

//se crea un objeto PdfTable con el # de columnas del dataGridView


PdfPTable datatable = new PdfPTable(dataGridView1.ColumnCount);


//asignamos algunas propiedades para el diseño del pdf

datatable.DefaultCell.Padding = 3;

float[] headerwidths = GetTamañoColumnas(dataGridView1);

datatable.SetWidths(headerwidths);
datatable.WidthPercentage = 100;
datatable.DefaultCell.BorderWidth = 2;
datatable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;

//SE GENERA EL ENCABEZADO DE LA TABLA EN EL PDF

for (int i = 0; i < dataGridView1.ColumnCount; i++)

{

 datatable.AddCell(dataGridView1.Columns[i].HeaderText);

}

datatable.HeaderRows = 1;
datatable.DefaultCell.BorderWidth = 1;

//SE GENERA EL CUERPO DEL PDF

for (int i = 0; i < dataGridView1.RowCount; i++)

{

for (int j = 0; j < dataGridView1.ColumnCount; j++)

{

 datatable.AddCell(dataGridView1[j, i].Value.ToString());

 }

datatable.CompleteRow();

 }

//Add PdfTable to the doc


document.Add(datatable);


}

这是按钮导出为PDF:

public float[] GetTamañoColumnas(DataGridView dg)

{

float[] values = new float[dg.ColumnCount];

for (int i = 0; i < dg.ColumnCount; i++)

  {

    values[i] = (float)dg.Columns[i].Width;

  }

return values;

}

我需要在代码中更改什么?我该怎么做?

0 个答案:

没有答案