У меня небольшая проблема с моим TextReader при попытке разобрать строку html, которую я хочу преобразовать в PDF при использовании iTextSharp.
Function ViewDeliveryNote(ByVal id As Integer) As FileStreamResult
'Memory buffer
Dim ms As MemoryStream = New MemoryStream()
'the document
Dim document As Document = New Document(PageSize.A4)
'the pdf writer
PdfWriter.GetInstance(document, ms)
Dim wc As WebClient = New WebClient
Dim htmlText As String = wc.DownloadString("http://localhost:59800/Warehouse/DeliveryNote/" & id) 'Change to live URL
Dim worker As html.simpleparser.HTMLWorker = New html.simpleparser.HTMLWorker(document)
Dim reader As TextReader = New StringReader(htmlText)
document.Open()
worker.Open()
worker.StartDocument()
worker.Parse(reader)
worker.EndDocument()
worker.Close()
document.Close()
'ready the file stream
Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "attachment;filename=DeliveryNote.pdf")
Response.Buffer = True
Response.Clear()
Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer.Length)
Response.OutputStream.Flush()
Response.End()
Return New FileStreamResult(Response.OutputStream, "application/pdf")
End Function
Строка, на которой он останавливается, - worker.Parse(reader)
с ошибкой Object reference not set to an instance of an object
, хотя StringReader(htmlText)
успешно прочитал HTML-страницу.
Я не уверен, что делаю неправильно или чего мне не хватает в данный момент, поэтому буду благодарен за любую помощь.
ОБНОВЛЕНИЕ Я просто попытался Dim reader As New StringReader(htmlText)
, но безрезультатно. Хотя htmlText все еще определенно содержит значение, но объект думает, что это не так.