В документе нет страниц - PullRequest
0 голосов
/ 14 марта 2011

Я использую приведенный ниже код для экспорта gridview в PDF

form1.Controls.Clear();
form1.Controls.Add(GridView1);
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
GridView1.RenderControl(htw);
string html = "&lt;html><body>" + sw.ToString() + "&lt;/body></html>";
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Export.pdf");
Document document = new Document(PageSize.A4, 80, 50, 30, 65);
PdfWriter writer = PdfWriter.GetInstance(document, Response.OutputStream);
document.AddAuthor("Ram");
document.AddSubject("Export To pdf");
document.Open();
string tempFile = Path.GetTempFileName();
using (StreamWriter tempwriter = new StreamWriter(tempFile, false))
{
    tempwriter.Write(html);
}
HtmlParser.Parse(document, tempFile);
document.Close();
writer.Close();
File.Delete(tempFile);
writer = null;
document = null;
Response.End();

Я проверил, что grridview имеет 10 строк, поставив точку останова. Но я получаю ошибку на

document.Close();

что

В документе нет страниц.

Любое предложение, как это исправить?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

У меня возникла та же проблема, и приведенная ниже подсказка помогает, и моя проблема решена

В документе нет страниц, поэтому ваши данные GridView теряются при экспорте.Следовательно, в событии кнопки «Экспорт» перепривязать GridView с данными из базы данных

https://www.aspforums.net/Threads/264988/Export-GridView-to-PDF-Error-Document-has-no-pages/

0 голосов
/ 14 марта 2011

1) Установка точки останова, чтобы увидеть, что ваше сеточное представление имеет 10 строк, помогает, но только проверяет часть проблемы.Вам также необходимо проверить содержимое tempFile.Это то, с чем на самом деле работает iText.Если он пуст, вы получите исключение «у документа нет страниц».

2.1) HtmlParser больше не существует в iText.Сказав это, я просто выкопал этот пример кода через Google:

public static void main(String[] args) throws Exception {
  Document document = new Document();
  PdfWriter.getInstance(document, new FileOutputStream("html1.pdf"));
  HtmlParser.parse(document, "example.html");
}

Нет, открывает или закрывает, просто вызов HtmlParser.Вполне возможно, что HtmlParser проверяет, открыт ли документ, и не продолжит работу, если он ... который объяснит поведение, которое вы видите.

2.2) «Правильный» способконвертировать HTML в наши дни выглядит примерно так:

...