PDF im Container öffnen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
15 Beiträge • Seite 1 von 1
15 Beiträge Seite 1 von 1

PDF im Container öffnen

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
Hallo zusammen,

ich habe die Herausforderung, dass ein PDF-Dokument im SAPGUI in einem Container geöffnet werden soll. Mein erster Gedanke war, dass SAP da ein paar Demoprogramme hat und ich habe mir SAP_PDF_VIEWER_DEMO genauer angeschaut. Dort wird ein Objekt der Klasse cl_gui_pdfviewer verwendet. Doch wenn ich eine Kopie des Programms mache, um eine eigene URL für den Aufruf zu hinterlegen (z.B. https://assets.cdn.sap.com/sapcom/docs/ ... f511fa.pdf ) , dann öffnet sich vom Betriebssystem ein Fenster, das mich fragt, ob ich die DAtei speichern oder öffnen will. Wenn ich Öffnen wähle, dann startet das Default-Programm zur PDF-Anzeige (bei mir Chrome) und zeigt das PDF nicht im Container an.

Die Frage ist nun: kann ich da in der Klasse mit Parametern oder ähnlichem das Verhalten beeinflussen oder ist das das normale Verhalten des Betriebssystem (Win10) und kann ich das irgendwo steuern?

Danke im voraus...

Tot ziens
Barney

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: PDF im Container öffnen

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Normalerweise wird bei der PDF-Anzeige im Hintergrund der IE gestartet und wenn bei diesem die direkte Anzeige eingestellt ist (Acrobat-Viewer ist installiert oder pdf.js wird verwendet) wird das PDF dargestellt.
Was die Klasse CL_GUI_PDFVIEWER hier anders macht kann ich dir leider nicht sagen. Ich verwende eigentlich immer den CL_GUI_HTML_VIEWER und der IE ist so eingestellt, dass PDFs sofort angezeigt werden.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: PDF im Container öffnen

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
Wenn ich es richtig gesehen habe, verwendet CL_GUI_PDFVIEWER am Ende selber die Klasse CL_GUI_HTML_VIEWER. Beides kenne ich leider nicht so gut. Ich hatte den IE mal als Standard-Anwendung für PDF eingerichtet, aber davon war mein Testprogramm wenig beeindruckt (genau genommen fragt mich der IE, was ich mit der Datei machen will und wenn ich "Öffnen" sage, passiert nix :o )

Ich habe mir das Coding vom CONSTRUCTOR von CL_GUI_PDFVIEWER angeschaut und wenn ich es richtig verstehe, wird das mit der Anzeige im Container nur funktionieren, wenn der Reader in der Version 4-6 installiert ist.

Wie würdest Du denn das PDF über CL_GUI_HTML_VIEWER aufrufen? Wird das dann auch im GUI angezeigt oder öffnet sich ein neues IE-Fenster?

Ich brauch die Anzeige im GUI, denn der User soll - wenn er einige Dokumente aufgerufen hat - nicht vor einem Bildschirm mit zig offenen Fenstern sitzen... ;-)

Re: PDF im Container öffnen

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
Ich bin ein paar neue Erkenntnisse gewonnen.

1. Von der Klasse CL_GUI_PDFVIEWER sollte man tunlichst die Finger lassen, denn ab einen bestimmten Releasestand SAP_APPL 600 wurde die Konstruktor-Methode fleißig auskommentiert, so dass die Klasse quasi unbenutzbar ist.
2. Ich habe mir ein kleines Testprogramm geschrieben, das die Klasse cl_gui_html_viewer nutzt. Und obwohl der Parameter IN_PLACE = 'X' ist, wird das PDF immer noch im aktuellen Browser angezeigt. Dabei ist es egal, ob Chrome, Edge oder IE als Standard-App für PDFs definiert sind. Nur dass der IE11 leider irgendwo hängen bleibt, wenn ich sage, dass die Datei geöffnet werden soll.

Code: Alles auswählen.

DATA(o_dock) = NEW cl_gui_docking_container( ratio = 50
                                               side = cl_gui_docking_container=>dock_at_bottom
                                               no_autodef_progid_dynnr = 'X' ).

* HTML-Viewer
  DATA(o_html) = NEW cl_gui_html_viewer( parent = o_dock ).
* HTML anzeigen
  o_html->show_url( url = 'https://assets.cdn.sap.com/sapcom/docs/2014/11/e494a920-3b7c-0010-82c7-eda71af511fa.pdf'
                    in_place = 'X' ).

An der Stelle komme ich immer noch nicht weiter... :-(

Re: PDF im Container öffnen

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
hm.. Funktioniert bei mir wie von dir erwartet...
Sieht zwar sch3(%e aus, da "Seitenminiaturen" links und "Tools" rechts vom Dokument angezeigt werden, aber das PDF wird im Docking-Container angezeigt.

Code: Alles auswählen.

REPORT.
PARAMETERS p.

INITIALIZATION.
  data(o_dock) = NEW cl_gui_docking_container( ratio = 50
                  side = cl_gui_docking_container=>dock_at_bottom
                  no_autodef_progid_dynnr = 'X' ).

* HTML-Viewer
  DATA(o_html) = NEW cl_gui_html_viewer( parent = o_dock ).
* HTML anzeigen
  o_html->show_url( url = 'https://assets.cdn.sap.com/sapcom/docs/2014/11/e494a920-3b7c-0010-82c7-eda71af511fa.pdf'
                    in_place = 'X' ).
Der CL_GUI_HTML_VIEWER basiert auf einer alten Version IE (8.0, 9-9??)! Das hat nichts mit den zugeordneten Dateiendungen zu tun.

Re: PDF im Container öffnen

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
ewx hat geschrieben:Der CL_GUI_HTML_VIEWER basiert auf einer alten Version IE (8.0, 9-9??)! Das hat nichts mit den zugeordneten Dateiendungen zu tun.
Nicht ganz.
Der CL_GUI_HTML_VIEWER basiert schon immer auf der aktuell im System installierten IE-Version, nur nutzt SAP hier einige Tricks um ihn in den Kombatibilitätsmodus (IE 7) zu versetzen.
Bis zum PL5 des 7.40er GUI wurde IMMER der Kombatibilitätsmodus aktiviert.
Mit der Anweisung "<meta http-equiv="X-UA-Compatible" content="IE=8" />" kann man aber jederzeit eine höhere IE-Version auswählen. "Edge" wäre übrigens IE11 oder aber auch dessen Nachfolger in Win10.
Ab oben erwähnten Patch-Level berücksichtig SAP auch die Einstellungen in der Registry für den Kompatibilitätmodus: https://msdn.microsoft.com/en-us/librar ... _emulation
Wobei hier aber aufzupassen ist, da die SAPgui Installation automatisch bei jedem Patch für sich immer die höchste am System vorhandene IE Version einträgt und bestehende Einstellungen überschreibt.

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag (Insgesamt 2):
ewxBarney

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: PDF im Container öffnen

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
Danke für die Antworten...

wenn ich mein Verständnis kurz zusammenfassen: mit der Zuordnung der Endung zu der Standardanwendung hat das Problem herzlich wenig zu tun. Standardmäßig würde die SAPGUI immer den IE aufrufen.

Soweit richtig? Jetzt stellt sich die Frage, warum bei mir das PDF zum Verrecken nicht im Container angezeigt wird, sondern dass immer die externe Anwendung gestartet wird (je nach Zuordnung Chrome, Edge oder IE).
Ich weiß nicht, ob das irgendwas damit zu tun: In meiner Registry ist der Wert für FEATURE_BROWSER_EMULATION bei SAPLOGON.exe und SAPLGPAD.exe 0x00002328 (9000).
Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode. Default value for Internet Explorer 9.
Important In Internet Explorer 10, Webpages containing standards-based !DOCTYPE directives are displayed in IE10 Standards mode.
Danke und Tot ziens

P.S.: Stutzig macht mich aber folgendes Verhalten, wenn der IE am Start ist: Beim Aufruf des PDF kommt der Downloadmanager und fragt, was ich mit der Datei machen soll. Wenn ich Öffnen sage, passiert nix. Der Downloadmanager reagiert einfach nicht. Bei Chrome kommt auch eine Abfrage, aber hier wird nach der entsprechenden Auswahl das PDF geöffnet.

Re: PDF im Container öffnen

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
... Beim Aufruf des PDF kommt der Downloadmanager und fragt, was ich mit der Datei machen soll. Wenn ich Öffnen sage, passiert nix ...
Ein Grund dafür könnte die SAPGUI "Firewall" sein. Prüfe doch mal die SAPGUI Einstellungen.
Reiter SICHERHEIT-> SICHERHEITSEINSTELLUNGEN.
gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: PDF im Container öffnen

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
Tron hat geschrieben:Moin.
... Beim Aufruf des PDF kommt der Downloadmanager und fragt, was ich mit der Datei machen soll. Wenn ich Öffnen sage, passiert nix ...
Ein Grund dafür könnte die SAPGUI "Firewall" sein. Prüfe doch mal die SAPGUI Einstellungen.
Reiter SICHERHEIT-> SICHERHEITSEINSTELLUNGEN.
gruß Jens
Danke für den Hinweis... da ich noch nie mit den Sicherheitseinstellungen zu tun hatte, bin ich da nun etwas lost. Wenn ich mir das ganze anschaue, sieht das erstmal nicht so schlecht aus (siehe Anhang), oder?

Noch 'ne Ergänzung: wenn ich eine PDF-Datei auf dem Desktop doppelklicke, dann habe ich das gleiche Problem. Ich glaube nicht, dass es am SAP liegt...

Re: PDF im Container öffnen

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
...
Deaktiviere doch mal (komplett) zum Test und schließe alle Instanzen.
Dann noch mal versuchen.
gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: PDF im Container öffnen

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
Tron hat geschrieben:...
Deaktiviere doch mal (komplett) zum Test und schließe alle Instanzen.
Dann noch mal versuchen.
gruß Jens
Hi, ich habe sämtliche Regeln deaktiviert, aber das Verhalten bleibt das gleiche: das System ignoriert den Container und öffnet das PDF im Browser... :cry:

Hat da noch jemand eine schlaue Idee? Ich bin absolut ratlos...

Tot ziens

Re: PDF im Container öffnen

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Vielleicht ist das hier auch schon mal erwähnt worden (bin zu faul zum Lesen), aber ich kann mich dunkel erinnern, dass man in den Einstellungen vom Acrobat Reader (zumindest in einer der älteren Versionen) auch die Anzeige im Browser konfigurieren konnte. Ich glaube wir hatten da in der Firma auch mal einen Fehler wo man die Inplace-Anzeige aus- und wiedereinschalten musste damit es funktioniert. Ich hab leider nur mehr den Reader in Version DC unter Windows 10 zur Verfügung und da gibts es nur noch die Einstellungsmöglichkeit über die "Standardapplikation". Aber vielleicht hilft es ja auf die Standard Windows Applikation und dann wieder auf den Reader zu wechseln.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: PDF im Container öffnen

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
Vielleicht kommen wir der Sache näher... der Adobe Reader ist bei mir nicht installiert...

Re: PDF im Container öffnen

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Ok, vielleicht war ich in meiner ersten Antwort vielleicht doch zu optimistisch:
Microsoft hat es selbst im IE11 nicht geschafft die Voraussetzungen für "pdf.js" (vollständig) zu erfüllen:
https://github.com/mozilla/pdf.js/wiki/ ... ostmessage
https://github.com/mozilla/pdf.js/wiki/ ... -supported
https://github.com/mozilla/pdf.js/wiki/ ... -supported
Ergo gibt es daher keine native Darstellung im Browser und der Adobe Reader wird benötigt.

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Barney

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: PDF im Container öffnen

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
a-dead-trousers hat geschrieben:Ok, vielleicht war ich in meiner ersten Antwort vielleicht doch zu optimistisch:
Microsoft hat es selbst im IE11 nicht geschafft die Voraussetzungen für "pdf.js" (vollständig) zu erfüllen:
Ergo gibt es daher keine native Darstellung im Browser und der Adobe Reader wird benötigt.

lg ADT
Das deckt sich mit meiner Erfahrung. Ich habe den Reader nun installiert und - schwupps - jetzt funktioniert es...

Dank Dir!

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2980
Views
Excel aus SAP öffnen
von fpet » 18.04.2006 16:28 • Verfasst in ABAP® Core
7
Antw.
4725
Views
TIF-Dokument öffnen
von Chilledkroete » 11.07.2013 15:26 • Verfasst in ABAP® Core
3
Antw.
2204
Views
Listbox automatisch öffnen
von Mr. ABAP » 19.10.2006 13:39 • Verfasst in Dialogprogrammierung
2
Antw.
2483
Views
Excel Datei öffnen
von lernen.2007 » 19.01.2008 11:58 • Verfasst in ABAP® für Anfänger
3
Antw.
3467
Views
Öffnen von PDF-Files auf Applikationsserver
von schuessler » 19.11.2007 20:19 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zeilenumbrüche ersetzen
vor 20 Minuten von ralf.wenzel 3 / 15
Dialog-Container mit Toolbar/Status
vor 19 Stunden von tar gelöst 19 / 2084
SAP Trial Version für SAP Fiori
Gestern von tar 2 / 1444

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zeilenumbrüche ersetzen
vor 20 Minuten von ralf.wenzel 3 / 15
Dialog-Container mit Toolbar/Status
vor 19 Stunden von tar gelöst 19 / 2084
SAP Trial Version für SAP Fiori
Gestern von tar 2 / 1444

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 505
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2143
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8738