Stellen Sie die PDF-Anzeige inline anstelle des separaten Acrobat Reader-Fensters ein

8

Ich habe eine ASP.NET-Ashx-Klasse, die Daten aus einer Datenbank abruft, eine PDF-Datei mit iTextSharp erstellt und die PDF-Datei an den Browser sendet. Der Browser (zumindest IE und Firefox) startet Acrobat Reader als separates Fenster zum Öffnen der Datei. Ich möchte, dass es inline im Browser angezeigt wird.

Kann ich das von der Serverseite aus komplett kontrollieren? Ich setze den Content-Type-Header bereits auf application / pdf, und ich habe versucht, Content-Disposition und Content-Length zu setzen. Bisher hat nichts funktioniert.

Gibt es noch einen Header, den ich vermisse? Gibt es etwas im PDF selbst, das dem Browser sagt, wie er angezeigt wird? Irgendwelche anderen Ideen?

    
John M Gant 13.05.2009, 19:08
quelle

8 Antworten

9

Das Festlegen der Header für Content-Disposition und Content-Type sollte es tun, aber Sie müssen möglicherweise auch Response.ClearHeaders() aufrufen, um andere Header zu löschen, die festgelegt wurden.

Versuchen Sie auch, Fiddler zu verwenden, um die tatsächlichen Header und Inhalte der Antwort zu sehen und sie mit denen von einer Site zu vergleichen funktioniert wie du willst.

    
tspauld 13.05.2009, 20:10
quelle
5

Wenn Sie einen Aschx (Web-Handler) verwenden, versuchen Sie Folgendes: -

%Vor%     
Christopher Edwards 13.05.2009 19:28
quelle
4

Okay, stellt sich heraus, dass es eine dumme Frage war, aber ich bin froh, dass ich das gefragt habe, weil ich noch nie von Fiddler gehört hatte (was mich zu der Antwort geführt hat, weshalb ich Tspaulds Antwort akzeptiere). Die PDF-Datei wird von einem Webdienst generiert, der die Datei für verschiedene Front-End-Sites bereitstellt. Ich habe die Inhaltsdisposition auf inline im Service gesetzt, aber das war egal, weil der Browser diesen Header nie bekommen hat; Er hat den Header von der Front-End-Site bekommen (was attachment war). Ich habe es in der Front-End-Site geändert und das hat es behoben.

Die Antwort ist also, dass Sie Content-Type=application/pdf und Content-Disposition=inline; filename=Something.pdf haben müssen, wie andere gesagt haben.

    
John M Gant 13.05.2009 21:05
quelle
1

Versuchen Sie, sie mit html OBJECT in Ihre Seite zu erzeugen.

%Vor%

Wenn Sie die Antwort mit einem Aschx streamen müssen, anstatt in der Lage zu sein, eine aspx zurückzugeben, denke ich, dass Sie Pech haben können.

Andernfalls glaube ich, dass die Einstellungen im Browser angezeigt werden oder nicht, ist vollständig Client-gesteuert und nicht in Ihren Händen.

    
Serapth 13.05.2009 19:16
quelle
1

Also, ich habe eine Probe in einer meiner Arbeiten, die Sie brauchen:

%Vor%

und auf Serverseite:

%Vor%

Ich platziere hier auch Code aus meinem PDF Handler:

%Vor%

Anyway Wenn Ihnen mein Beitrag nicht klar erscheint, sehen Sie sich dieses Beispiel So zeigen Sie PDF-Dokumente mit ASP.NET an

    
DaDa 13.05.2009 19:41
quelle
0

Ich denke, dass dieser Header tun wird, was Sie wollen

%Vor%

Da Sie sagen, dass das nicht funktioniert, vermute ich, dass es sich um eine Konfigurationseinstellung auf der Client-Seite handelt.

Überprüfen Sie Ihre installierte Version von Adobe Acrobat. Es gibt eine Einstellung in den Einstellungen für "Internet" und ein Kontrollkästchen, das "PDF im Browser anzeigen" anzeigt.

-
bmb

    
bmb 13.05.2009 19:20
quelle
0

Hier ist ein Artikel über die Verwendung des eingebetteten Tags: Ссылка

    
Fermin 13.05.2009 19:22
quelle
-1

Wenn Sie über das Budget verfügen, verkauft meine Firma eine Reihe von Produkten, die einen AJAX-basierten Bildbetrachter

    
plinth 13.05.2009 19:23
quelle

Tags und Links