【发布时间】:2014-07-10 23:07:16
【问题描述】:
我想使用 iTextSharp 仅显示 PDF 文件中的某些 DataGridView 列。我知道您可以将整个 GridView 插入 PDF 文档。但是是否可以只显示 DataGridView 的某些列?
这是我目前的代码:
iTextSharp.text.Font fontTable = FontFactory.GetFont("Arial", 8, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
PdfPTable table = new PdfPTable(dataGridView1.Columns.Count);
table.SpacingBefore = 45f;
table.TotalWidth = 300;
table.DefaultCell.Phrase = new Phrase() { Font = fontTable };
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
table.AddCell(new Phrase(dataGridView1.Columns[j].HeaderText, fontTable));
}
table.HeaderRows = 1;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int k = 0; k < dataGridView1.Columns.Count; k++)
{
if (dataGridView1[k, i].Value != null)
{
table.AddCell(new Phrase(dataGridView1[k, i].Value.ToString(),fontTable));
}
}
}
doc.Add(table);
【问题讨论】:
-
这个问题实际上不是 iTextSharp 问题,因为 iTextSharp 完全不知道
DataGridView或GridView是什么。您在上面提到了两个,一个是 WinForms,一个是 ASP.Net(如果我没记错的话)。无论如何,要从这些到 iTextSharp,您需要有一个中间步骤,并且在此中间步骤中您需要删除列。 -
也许你建议中间步骤会有所帮助......
-
我假设您已经完成了该步骤,您有一个现有的网格(仍然不确定您使用的是哪一个)并已将其复制到 PDF 中,现在 你想限制列。既然你说你知道你可以做到这一点,我会假设你已经看到了示例代码并实现了它。如果不是这样,您真正的问题是如何将 .Net 网格转换为 PDF。
-
我正在使用 SqlCe 3.5 和 C#2010。该表单用于生成报价,datagridview 列出了客户购买的所有商品。在表单上,用户将数据输入到一个空白的 datagridview 中,然后创建一个新表,并将所有数据插入其中(以保持所有引用的唯一性)。在表单上,用户可以查看所有数据,但在 PDF 上,我想限制插入的列(因为客户会看到你赚了多少钱等)有没有办法只显示某些列?
-
是的。几乎每个人都对行和列使用多个
for循环。在内部for循环中,只需执行if column == <my column> then skip it之类的操作,如果您还没有for循环部分,请查看此stackoverflow.com/q/13587520/231316
标签: c# datagridview itextsharp