Hallo zusammen,
ich rufe in einer ASPX-Seite die Anzeige eines PDF-Dokuments auf und möchte, dass dieses PDF zum einen im Browser angezeigt wird und zum anderen, dass das PDF bei einer möglichen Abspeicherung durch einen Benutzer mit einem bestimmten Dateinamen vorbelegt wird.
Ist das möglich?
Ich habe bisher folgendes versucht:
Response.Clear();
Response.ContentType = "application/pdf";
Response.Headers.Add("Content-Disposition", "inline; filename=Test.pdf");
Response.BinaryWrite(arrPdf);
Response.Flush();
Damit wird das PDF im Browser angezeigt, der Dateiname ist aber mit dem Name der ASPX-Seite vorbelegt und nicht mit dem gewünschten.
Gibt es noch andere Möglichkeiten?
Gruß
Tilo
Das beeinflusst meines Wissens nach nicht die Serverapplikation, sondern kommt auf das Plugin an, das der Client installiert hat um PDFs anzuzeigen bzw. das Plugin, das der Browser nutzt (Chrome hat sein eigenes).
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Das beeinflusst meines Wissens nach nicht die Serverapplikation, sondern kommt auf das Plugin an, das der Client installiert hat um PDFs anzuzeigen bzw. das Plugin, das der Browser nutzt (Chrome hat sein eigenes).
Heißt dass, ich kann es gar nicht beeinflussen?
Für was wäre dann der Ausdruck "inline; filename=Test.pdf" gut?
Hallo,
Du solltest Dein PDF nicht in einer ASPX-Seite ausliefern und dann so Sachen machen wie
Response.Clear();
...
Response.BinaryWrite(arrPdf);
Response.Flush();
Das ist ziemlich grauselig. Die ASPX-Seite ist dafür da, eben normale, auf dem Server generierte Webseiten auszuliefern. Der die Response unterm Hintern wegzuziehen und was eigenes reinzuschreiben sollte man tunlichst vermeiden.
Schreib Dir für das PDF einen eigenen HTTPHandler (.ashx) - wie das geht fidest Du mit diesen Stichworten hier im Forum.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca