Quite often, vendors pass images or PDFs to customers using the binary contents of the file. To make it more secure, they convert the binary contents to a Base64 string. A full explanation about Base64 encoding can be found at Wikipedia here. Anyway, when you receive the string, you cannot simply write it to a file or to the browser. First, you must convert the data into a Byte array. The sample code below demonstrates this:

1
2
Dim str As  String = "Insert Your Base64 String Here"  
Dim Base64Byte() As  Byte = Convert.FromBase64String(str)

Then, you can decide which output method you’d prefer. If you’d like to write the content to the file system, you can write it as:

1
2
3
> Dim obj As FileStream = File.Create("C:\\test.pdf")  
> obj.Write(Base64Byte, 0, Base64Byte.Length)  
> obj.Close()

If you’d prefer to write the content to the browser, you’d most likely add this to your page:

1
2
3
> Response.ContentType = "application/pdf"  
> Response.BinaryWrite(Base64Byte)  
> Response.End()

I’d highly recommend setting the content-disposition header attribute if you write the file to the browser. I’ve explained more about using this header at http://weblogs.asp.net/jgaylord/archive/2004/12/08/278309.aspx.