Как удалить PDF-форму «ListViewSubItem», сгенерированную из «ListView»? - PullRequest
1 голос
/ 04 июня 2019

При экспорте моего ListView в PDF он отображает правильную информацию, но добавляет ListViewSubItems перед информацией в каждом столбце

Это код, который я сейчас использую:

private void tsbSave_Click(object sender, EventArgs e)
    {

        Document document = new Document();
        PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("c:\\Users\\Dev\\Desktop\\TestDocument.pdf", FileMode.Create));
        document.Open();

        iTextSharp.text.Font font5 = iTextSharp.text.FontFactory.GetFont(FontFactory.HELVETICA, 5);

        PdfPTable table = new PdfPTable(lvwAttributes.Columns.Count);
        PdfPRow row = null;
        float[] columnWidths = new float[] { 10f, 20f, 30f, 10f, 10f, 10f };
        table.SetWidths(columnWidths);

        table.WidthPercentage = 100;
        int iCol = 0;
        string colname = "";
        PdfPCell cell = new PdfPCell(new Phrase("Products"));

        cell.Colspan = lvwAttributes.Columns.Count;

        foreach (ListViewItem item in lvwAttributes.Items)
        {
            if (lvwAttributes.Items.Count > 0)
            {
                table.AddCell(new Phrase(item.SubItems[0].ToString(), font5));
                table.AddCell(new Phrase(item.SubItems[1].ToString(), font5));
                table.AddCell(new Phrase(item.SubItems[2].ToString(), font5));
                table.AddCell(new Phrase(item.SubItems[3].ToString(), font5));
                table.AddCell(new Phrase(item.SubItems[4].ToString(), font5));
                table.AddCell(new Phrase(item.SubItems[5].ToString(), font5));
            }
        }
        document.Add(table);
        document.Close();
        MessageBox.Show("PDF CREATED!!");
    }

Я бы хотел, чтобы имя столбца и информация отображались правильно.

Например, на данный момент я получаю

 |ListViewSubItem{Administrator} | ListViewSubItem{Full Access} | etc

Я бы хотел, чтобы он отображался как

 |Administrator | Full Access |

Спасибо

1 Ответ

1 голос
/ 04 июня 2019

Попробуйте вот так, чтобы получить текст за Sub Item.

foreach (ListViewItem item in lvwAttributes.Items)
    {
        if (lvwAttributes.Items.Count > 0)
        {
            table.AddCell(new Phrase(item.SubItems[0].Text.ToString(), font5));
            table.AddCell(new Phrase(item.SubItems[1].Text.ToString(), font5));
            table.AddCell(new Phrase(item.SubItems[2].Text.ToString(), font5));
            table.AddCell(new Phrase(item.SubItems[3].Text.ToString(), font5));
            table.AddCell(new Phrase(item.SubItems[4].Text.ToString(), font5));
            table.AddCell(new Phrase(item.SubItems[5].Text.ToString(), font5));
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...