2015-02-23 5 views
-1

Я использую this code для чтения данных XFA в приложении vb.net. Тем не менее, я не могу понять, как загрузить popdedPDFFrom в приложение.Загрузить PDF в MemoryStream в VB.NET

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

     Dim filePath As String 

     filePath = "d:\waiver_testing\test_pdf\rfrprg67.pdf" 

     TextBox1.Text = Export(filePath) 

    End Sub 

Public Shared Function Export(populatedPDFForm As System.IO.Stream) As System.IO.MemoryStream 

     ' Exports XFA data from a PDF File 
     ' <param name="populatedPDFForm">a readable stream of the PDF with a populated form</param> 
     ' <returns>A stream containing the exported XML form data</returns> 

     Dim outputStream As New System.IO.MemoryStream() 
     Dim reader As New iTextSharp.text.pdf.PdfReader(populatedPDFForm) 
     Dim settings As XmlWriterSettings = New XmlWriterSettings 
     settings.Indent = True 
     'settings.OmitXmlDeclaration = True 

     Using writer = XmlWriter.Create(outputStream, settings) 
      reader.AcroFields.Xfa.DatasetsNode.WriteTo(writer) 
     End Using 

     Return outputStream 

    End Function 

Ошибка в строке: textbox1.text = Export(filePath)

Ошибка: Value type "String" cannot be converted to to "System.IO.Stream"

Может кто-то пожалуйста, бросить меня кость?

+0

возможно дубликат [Преобразование строки в поток] (http://stackoverflow.com/questions/351126/convert-a-string-to-stream) –

ответ

1

Ну, вы не можете назначить строку MemoryStream. Сначала вам нужно преобразовать его. Например, чтобы прочитать поток как Ascii, вы можете использовать Encoding.ASCII.GetString.
Кроме того, ваша функция Export воспринимает поток как параметр, а не путь к файлу. Чтобы справиться с этой записи:

Using inStream As Stream = File.OpenRead(filePath) 
    TextBox1.Text = Encoding.ASCII.GetString(Export(inStream).ToArray()) 
End Using 
Смежные вопросы