Romero: PDF aus einer HTA im Adobe-Reader anzeigen

Hallöchen Ihr's

wie in dem Betreff geschrieben, möchte ich eine PDF aus einer HTA-Datei im Adobe-Reader anzeigen lassen. Dazu habe ich das hier "gescriptet":

var fso = new ActiveXObject("AcroPDF.PDF");
window.open("mein Pfad.pdf");

Das klappte, aber er öffnet es in einer IE-Fenster. Ich möchte es aber gern, dass er die Datei ganz normal im Adobe Reader öffnet. So als würde man händisch eine PDF anklicken.

Wäre das möglich? Wenn ja, wie?

Oder müsste ich es über

new ActiveXObject("WScript.Shell");

machen?

LG Romero

  1. Tach!

    wie in dem Betreff geschrieben, möchte ich eine PDF aus einer HTA-Datei im Adobe-Reader anzeigen lassen. [...] Das klappte, aber er öffnet es in einer IE-Fenster. Ich möchte es aber gern, dass er die Datei ganz normal im Adobe Reader öffnet. So als würde man händisch eine PDF anklicken.

    Händisch anklicken als Link im Browser oder im Datei-Explorer? Das Verhalten des PDF-Readers (im Browser-Plugin vs. im Acrobat Reader) ist üblicherweise in seinen Einstellungen definiert. Zudem gibt es noch Browser, die eigene PDF-Reader mitbringen. Das muss man dann auch im Browser umstellen, wie man das gern hätte. Beim IE kann es gut sein, dass der sich auch an der Zuordnungseinstellung im Betriebssystem orientiert. Als Autor wirst du keine Chance haben, die Einstellungen beim Anwender übertrumpfen zu können.

    dedlfix.

    1. Hy dedlfix,

      Händisch anklicken als Link im Browser oder im Datei-Explorer?

      Händisch im Datei-Explorer. Wie gesagt, öffnen in einem neuen IE-Fenster funktioniert. Gibt es denn beim IE solch eine Einstellung, wie sich eine PDF aus dem IE (und somit auch die HTA) öffnen lässt? Denn ich möchte eigentlich das Öffnen so handhaben, wie man es z.B. auch bei Excel macht. Und daher die Frage, wie bewerkstelligt man das? Sofern es solch eine Möglichkeit gibt.

      Und ich möchte niemanden etwas "aufdrücken". Nur das "normale Öffnen" einer PDF-Datei im Adobe Reader aus der HTA heraus.

      LG Romero

      1. Tach!

        Gibt es denn beim IE solch eine Einstellung, wie sich eine PDF aus dem IE (und somit auch die HTA) öffnen lässt?

        Das hängt von ein paar Faktoren ab. Ist PDF-Plugin installiert? Ist es aktiviert? Wird es genommen, wenn .pdf angezeigt werden soll? Dann ist das eine Einstellungsfrage im PDF-Reader, ob das Dokument im Browser-Plugin oder im Stand-Alone-Reader gestartet wird.

        Wenn .pdf nicht auf das Acrobat-Plugin geleitet wird, dann ist die erste Anlaufstelle die Zuordnungstabelle von Dateiendungen zu Aktionen. Und da schickt einen der IE zur Betriebssystem-Konfiguration.

        Und ich möchte niemanden etwas "aufdrücken". Nur das "normale Öffnen" einer PDF-Datei im Adobe Reader aus der HTA heraus.

        Das was normal ist, bestimmt in dem Fall der Anwender. Oder er bestimmt es nicht, wenn er die Standardwerte beibehält. Selbst wenn man mit guten Absichten daherkommt, scheitert man regelmäßig an dieser Stelle.

        dedlfix.

        1. Das was normal ist, bestimmt in dem Fall der Anwender. Oder er bestimmt es nicht, wenn er die Standardwerte beibehält. Selbst wenn man mit guten Absichten daherkommt, scheitert man regelmäßig an dieser Stelle.

          Ja. Schon. Bei PDF, die den Adobe Reader "brauchen", fährt man gewöhnlich schon deutlich besser, indem man den Client via Header bittet (z.B. Content-Disposition:attachment), den Download-Dialog anzuwerfen. Dann wird der User ja gefragt, was passieren soll. Klar, auch hier kann der User dann den "falschen" PDF-Viewer konfigurieren. Die Fehlerquote ist aber deutlich geringer, als im Regelfall.

          1. Hy Mitleser

            Ja. Schon. Bei PDF, die den Adobe Reader "brauchen", fährt man gewöhnlich schon deutlich besser, indem man den Client via Header bittet (z.B. Content-Disposition:attachment), den Download-Dialog anzuwerfen. Dann wird der User ja gefragt, was passieren soll. Klar, auch hier kann der User dann den "falschen" PDF-Viewer konfigurieren. Die Fehlerquote ist aber deutlich geringer, als im Regelfall.

            Hab das mal in meinen Header gebastelt.

            <head>	
            	<!--...-->
            	<meta http-equiv="content-disposition" content="attachment">
            	<!--...-->
            

            aber wie kriege ich die Abfrage hin, bezüglich der Auswahl üder das, mit was die PDF geöffnet werden soll? window.open() wird es da nicht sein, da da ja die PDF im neuen IE-Fenster geladen wird.

            LG Romero

            1. Hab das mal in meinen Header gebastelt.

              <head>	
              	<!--...-->
              	<meta http-equiv="content-disposition" content="attachment">
              	<!--...-->
              

              Nee, HTTP-Header waren gemeint, nicht HTML ;-)

              aber wie kriege ich die Abfrage hin, bezüglich der Auswahl üder das, mit was die PDF geöffnet werden soll? window.open() wird es da nicht sein, da da ja die PDF im neuen IE-Fenster geladen wird.

              Verlinke einfach auf PDF selbst und sende den passenden Header dazu. Danach hast Du keine Kontrolle mehr. Aber immerhin schon bei der Vielzahl der Leute eine verbesserte Ausgangssituation.

            2. Tach!

              Hab das mal in meinen Header gebastelt.

              <head>	
              	<!--...-->
              	<meta http-equiv="content-disposition" content="attachment">
              	<!--...-->
              

              Da wirkt es sicher nicht. http-equiv-Angaben im Header beziehen sich auf das aktuelle Dokument, nicht auf darin verlinkte. Du musst das für den Request nach dem PDF in dessen Response einbauen.

              aber wie kriege ich die Abfrage hin, bezüglich der Auswahl üder das, mit was die PDF geöffnet werden soll?

              Das liegt letzlich weiterhin nicht in deiner Macht. Obiger Header ist auch lediglich eine Bitte an den Browser.

              dedlfix.

              1. Hy @all

                ich habe eine Lösung gefunden, mit der ich leben kann. Und zwar erstelle ich ein Objekt mit dem MIME-Type = application.pdf und das binde ich in eine DIV ein. Das Ganze sieht dann wie folgt aus:

                var OBJ = document.createElement("object");
                OBJ.data = Pfad_Doks + Ordner + "/" + Dateien[i];
                if( Dateien[i].split(".")[1].toUpperCase() == "PDF"  ) { OBJ.type = "application/pdf"; };
                OBJ.width = "100%";
                OBJ.height = "100%";
                DIV_PDF_DOK_Anzeige.appendChild(OBJ);
                

                Damit wird das PDF in einer überlagerten DIV auf dem Bildschirm sichtbar. Soweit funktioniert das mit der PDF, aber wie verhält es sich mit einem DOCX?

                Wie kann ich in die selbe DIV ein DOCX einbinden? Mit...

                if( Dateien[i].split(".")[1].toUpperCase() == "DOCX"  ) { OBJ.type = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; };
                

                ... bringt er mir "Schnittstelle nicht unterstützt. Schreibe ich aber OBJ.Type bzw. OBJ.ContentType, dann zeigt er gar nichts an.

                Kann mir da einer weiterhelfen?

                LG Romero

                1. Hat keiner dazu eine Idee? Wie ich ein DOCX in eine DIV bekomme? Also das Objekt-Anhängen (appendChild) an ein DIV-Element.

                  LG Romero

                  1. Hallo,

                    Hat keiner dazu eine Idee? Wie ich ein DOCX in eine DIV bekomme? Also das Objekt-Anhängen (appendChild) an ein DIV-Element.

                    integriert sich Office denn überhaupt im IE? Stellt Office ein Browser-Plugin zur Verfügung?
                    IOW: Kannst du beim Download eines Office-Dokuments wählen, ob du es "im Browser" darstellen willst, oder öffnet sich ungefragt Office als separates Programmfenster?

                    Falls letzteres, dann hast du wohl Pech, wobei natürlich auch noch die Browsereinstellungen eine Rolle spielen, wie nach dem Download mit solchen Dateien verfahren wird.

                    So long,
                     Martin

                    --
                    Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
                    - (frei übersetzt nach Douglas Adams)
                    1. Hy Martin,

                      ich habe das Dokument mal über window.open() öffnen lassen. Er öffnet dazu ein IE-Fenster und fragt dann, ob ich das Dokument "Öffnen/Speichern/Abbrechen" will. Wenn ich dann auf Öffnen drücke, öffnet sich das Dokument, wie gehabt in Word. Also ist es, wohl eher Letzteres. Oder wo genau kann ich im IE8 solch eine Browsereinstellung vornehmen?

                      LG Romero

                      1. Hi,

                        ich habe das Dokument mal über window.open() öffnen lassen. Er öffnet ...

                        wer??

                        dazu ein IE-Fenster und fragt dann, ob ich das Dokument "Öffnen/Speichern/Abbrechen" will. Wenn ich dann auf Öffnen drücke, öffnet sich das Dokument, wie gehabt in Word.

                        Okay, das ist das übliche erwartete Verhalten.

                        Oder wo genau kann ich im IE8 solch eine Browsereinstellung vornehmen?

                        AFAIK kannst du nur einstellen, ob ein bestimmter Ressourcentyp a) nur gespeichert wird oder b) ohne Rückfrage sofort geöffnet wird oder c) die Abfrage erscheint, die du beschrieben hast. Da dein IE das Dokument an Word als eigenständiges Programm übergibt, hat er wohl kein dafür geeignetes Plugin, oder es ist nicht aktiv.
                        Ich würde mal in den Einstellungen von Word nach Browser-Integration oder Download oder ähnlichem suchen. Ich kann es nicht genau sagen (bin seit über 5 Jahren von Microsoft geheilt), aber ich könnte mir gut vorstellen, dass es da etwas gibt.

                        Obwohl ... wenn ich mir so ansehe, was andere dazu sagen, scheint Office selbst da zunächst nichts mitzubringen.

                        So long,
                         Martin

                        --
                        Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
                        - (frei übersetzt nach Douglas Adams)