Benutzer mit den meisten Antworten
extern abgelegtes PDF per Webrequest laden?

Frage
-
Guten Morgen,
ich habe derzeit ein Problem, was mir doch ein paar Kopfschmerzen bereitet. Ich wollte ein PDF, was sich auf ein Azure Blobstorage befindet, per Webrequest in ein Stream laden und anschließend mithilfe der pdfsharp-Bibliothek auf ein vorgefertigtes PDF ausgeben. Das ausgeben lasse ich hier mal aussen vor, da ich dies bereits mit einem lokal abgelegten PDF versucht habe und zum Glück auch gelungen ist. Ist das PDF jedoch auf dem Blobstorage kann ich weder Stream.Length noch die Stream.Position auslesen. Beides ist jedoch notwendig um aus den Stream ein PDF formen zu können.
Die fehlenden Sucheigenschaften habe ich anschließend auch versucht zu umgehen. Ich habe einen BinaryReader auf den Stream angewendet und jedes byte im Stream in ein ByteArray geschrieben. Damit könnte ich theoretisch was anfangen. Leider dauert diese Möglichkeit elendig lange und ist daher nicht wirklich Produktiv. (schlappe 180kb dauern ca. 20sek)Hier erstmal den Code den ich bis jetzt geschrieben habe. Ist nicht unbedingt viel. Auch bin ich noch nicht lange in der Materie drin. Ich bitte also um verständniss! =D
WebRequest fileWebRequest = WebRequest.Create(strPdfUrl); Stream stream = fileWebRequest.GetResponse().GetResponseStream(); BinaryReader reader = new BinaryReader(stream); byte[] byteArray = new byte[1]; int i = 0; foreach (byte resultByte in reader.ReadBytes(1000000)) { byteArray[i] = (byte)resultByte; Array.Resize(ref byteArray, byteArray.Length + 1); i++; } reader.Close();
Ich hoffe ich konnte euch mein Problem recht gut schildern. Auf Antworten würde ich mich sehr freuen! =)MfG Jasper
Antworten
-
Hallo Jasper,
das einfachste dürfte sein, die Datei per WebClient.DownloadData( <Url> ) abzurufen und das Byte Array, welches Du erhältst, dann in einen Stream zu schreiben um die weitere Verarbeitung vornehmen zu können. Siehe dazu:
http://msdn.microsoft.com/de-de/library/ms144188.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Jasper Gandyra Freitag, 1. Juli 2011 06:53
Alle Antworten
-
Hallo Jasper,
das einfachste dürfte sein, die Datei per WebClient.DownloadData( <Url> ) abzurufen und das Byte Array, welches Du erhältst, dann in einen Stream zu schreiben um die weitere Verarbeitung vornehmen zu können. Siehe dazu:
http://msdn.microsoft.com/de-de/library/ms144188.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Jasper Gandyra Freitag, 1. Juli 2011 06:53