PDF anzeigen....!?
Moderator: Moderatoren
PDF anzeigen....!?
Hallo Alaska Freunde,
gern diskutiert, aber ohne Erfolg. PDF.PdfCtrl.5 oder ..6 oder ..7? Ich verzweifele.
Ich möchte einfach nur ein PDF anzeigen, gerne auch im original Acrobat Reader und nicht in einem Xbase-Fenster. Kann mir bitte jemand einen Tipp geben? Wenn sein muss auch per RunShell....(nicht den Tipp per runshell )
Frendliche Grüße
Karl Heinz
gern diskutiert, aber ohne Erfolg. PDF.PdfCtrl.5 oder ..6 oder ..7? Ich verzweifele.
Ich möchte einfach nur ein PDF anzeigen, gerne auch im original Acrobat Reader und nicht in einem Xbase-Fenster. Kann mir bitte jemand einen Tipp geben? Wenn sein muss auch per RunShell....(nicht den Tipp per runshell )
Frendliche Grüße
Karl Heinz
Beste Grüße
Karl Heinz
Karl Heinz
- brandelh
- Foren-Moderator
- Beiträge: 15710
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 73 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: PDF anzeigen....!?
Das verstehe ich jetzt aber nichtkallecux hat geschrieben:Wenn sein muss auch per RunShell....(nicht den Tipp per runshell )
Zu dem Thema gab es auch schon einige Abhandlungen hier, ich bin damals an der Unberechenbarkeit der ActiveX Version fast verzweifelt (teilweise über 20 Sekunden bis zur Anzeige).
RunShell() ist die beste Lösung ! die ich kenne
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: PDF anzeigen....!?
hi,
schon mal in der Registry nach PDF.OCX gesucht und den Path verglichen?
... unter den "Inproserver32" finden sich oft noch die "alten Path" wenn ein
"update" durchgeführt wurde.
wieso was hast du für Probleme ?kallecux hat geschrieben: gern diskutiert, aber ohne Erfolg. PDF.PdfCtrl.5 oder ..6 oder ..7? Ich verzweifele.
schon mal in der Registry nach PDF.OCX gesucht und den Path verglichen?
... unter den "Inproserver32" finden sich oft noch die "alten Path" wenn ein
"update" durchgeführt wurde.
RunShell( "/C START EXPLORER.EXE DEMO.PDF" )kallecux hat geschrieben: Ich möchte einfach nur ein PDF anzeigen, gerne auch im original Acrobat Reader und nicht in einem Xbase-Fenster. Kann mir bitte jemand einen Tipp geben? Wenn sein muss auch per RunShell....(nicht den Tipp per runshell )
gruss by OHR
Jimmy
Jimmy
Danke für die Antworten, wenn ich die Beiträge studiere, wird - wie Hubert schon angedeutet hat - das Thema unterschiedlich kommentiert - in jedem fall immer mit dem Hinweis, dass das Eine oder Andere nicht einwandfrei funktioniert.
@AUGEOHR Auch das Thema PDF.OCX soll nicht immer klappen. Ich werde die RunShell Variante nehmen, da ich viele Installationen auf verschiedenen Rechnern habe.
Danke!
@AUGEOHR Auch das Thema PDF.OCX soll nicht immer klappen. Ich werde die RunShell Variante nehmen, da ich viele Installationen auf verschiedenen Rechnern habe.
Danke!
Beste Grüße
Karl Heinz
Karl Heinz
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Hallo, Karl Heinz.
Wer PDF "richtig" steuern will, also zum Beispiel einen Ausdruck im Hintergrund generieren o.ä., kommt m.E. am OCX nicht vorbei. Leider ändert Acrobat mit jeder Version die CLSID. Acrobat 7 hatte "AcroPDF.PDF", bei Version 6 war es "PDF.PdfCtrl.6", bei Version 5 "PDF.PdfCtrl.5", davor "PDF.PdfCtrl.1". Die Version acht hat die CLSID "AcroPDF.PDF.1", wenn ich das richtig sehe. Im Prinzip muss man die IDs sammeln und jeweils prüfen, ob sich eine AX-Instanz mit der ID erzeugen lässt. Aber "RunShell" ist m.E. höchstens second best, weil jeder Windows-Nutzer die Standardprogramme ändern kann - und das meiner Erfahrung nach auch tut. Zudem lässt sich, wie gesagt, über Runshell wenig steuern. Wenn man PDF-Anzeigen richtig ins Programm integrieren will, muss man mit OCX arbeiten.
Wer PDF "richtig" steuern will, also zum Beispiel einen Ausdruck im Hintergrund generieren o.ä., kommt m.E. am OCX nicht vorbei. Leider ändert Acrobat mit jeder Version die CLSID. Acrobat 7 hatte "AcroPDF.PDF", bei Version 6 war es "PDF.PdfCtrl.6", bei Version 5 "PDF.PdfCtrl.5", davor "PDF.PdfCtrl.1". Die Version acht hat die CLSID "AcroPDF.PDF.1", wenn ich das richtig sehe. Im Prinzip muss man die IDs sammeln und jeweils prüfen, ob sich eine AX-Instanz mit der ID erzeugen lässt. Aber "RunShell" ist m.E. höchstens second best, weil jeder Windows-Nutzer die Standardprogramme ändern kann - und das meiner Erfahrung nach auch tut. Zudem lässt sich, wie gesagt, über Runshell wenig steuern. Wenn man PDF-Anzeigen richtig ins Programm integrieren will, muss man mit OCX arbeiten.
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Hallo Tom,
da mische ich mich jetzt mal ein
Ich habe gerade diese Woche selber das Beispiel von Alaska aus den Samples für mein Projekt eingebaut, allerdings rufe ich damit immer eine fest codierte Datei auf (das Handbuch). Und dabei auch die {CA8A9780-280D-11CF-A24D-444553540000} aus dem Beispiel übernommen. Die 1.9 ist ja schon ein paar Tage alt, ich kann mir nicht vorstellen, daß die schon für den Adobe 8 gedacht war (ist aber nur geraten). Aber es funktioniert damit.
Wenn es denn doch nicht geht: Wo bekomme ich denn die Kennungen her? Im Prinzip muß ich ja vermutlich bei der 4er Version anfangen. Und wie setze ich die Abfrage ein, ob es denn geklappt hat mit der Version? ActiveX ist für mich absolutes Neuland, ich habe keine Ahnung wie man abfragt, ob es das Objekt überhaupt gibt, das man da aufgerufen hat.
Jan
da mische ich mich jetzt mal ein
Ich habe gerade diese Woche selber das Beispiel von Alaska aus den Samples für mein Projekt eingebaut, allerdings rufe ich damit immer eine fest codierte Datei auf (das Handbuch). Und dabei auch die {CA8A9780-280D-11CF-A24D-444553540000} aus dem Beispiel übernommen. Die 1.9 ist ja schon ein paar Tage alt, ich kann mir nicht vorstellen, daß die schon für den Adobe 8 gedacht war (ist aber nur geraten). Aber es funktioniert damit.
Wenn es denn doch nicht geht: Wo bekomme ich denn die Kennungen her? Im Prinzip muß ich ja vermutlich bei der 4er Version anfangen. Und wie setze ich die Abfrage ein, ob es denn geklappt hat mit der Version? ActiveX ist für mich absolutes Neuland, ich habe keine Ahnung wie man abfragt, ob es das Objekt überhaupt gibt, das man da aufgerufen hat.
Jan
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
So gut wie alle registrierten Controls stellten die CLSID parallel auch als GUID (Global Unique Identifier) zur Verfügung, und es ist egal, ob man:
oCtrl:CLSID := "{CA8A9780-280D-11CF-A24D-444553540000}"
oder
oCtrl:CLSID := "AcroPDF.PDF"
schreibt, weil es dasselbe bezeichnet. Die CLSIDs oder GUIDs findet man entweder direkt in der Registry oder über die entsprechenden Properties, die Tools wie OLEVIEW32 anzeigen. Beides wechselt mit jeder Acrobat-Version. Das Sample aus Xbase 1.9 ist für den Acrobat 7 gemacht.
oCtrl:CLSID := "{CA8A9780-280D-11CF-A24D-444553540000}"
oder
oCtrl:CLSID := "AcroPDF.PDF"
schreibt, weil es dasselbe bezeichnet. Die CLSIDs oder GUIDs findet man entweder direkt in der Registry oder über die entsprechenden Properties, die Tools wie OLEVIEW32 anzeigen. Beides wechselt mit jeder Acrobat-Version. Das Sample aus Xbase 1.9 ist für den Acrobat 7 gemacht.
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Tom,
da mir das keine Ruhe gelassen hat habe ich mich mal etwas umgefragt. Und 2 Antworten bekommen:
1) ActiveX wird erst seit der Version 7 offiziell unterstützt.
2) Statt der CLSID sollte ich doch lieber "registered name" des Readers nehmen.
Zu 1: Wie gesagt, ich nehme die CLSID aus dem Alaska-Beispiel, und das läuft auch unter Version 8. Ich bin nun ganz leicht irritiert, woher denn dann die angesprochenen Versions-Probleme kommen können. Wenn es doch nur diese beiden 7+8 gibt, die ActiveX bieten, und beide mit dieser CLSID laufen.
Zu 2: Was ist das, woher nehme ich das, geht das unter Xbase++ überhaupt?
Jan
da mir das keine Ruhe gelassen hat habe ich mich mal etwas umgefragt. Und 2 Antworten bekommen:
1) ActiveX wird erst seit der Version 7 offiziell unterstützt.
2) Statt der CLSID sollte ich doch lieber "registered name" des Readers nehmen.
Zu 1: Wie gesagt, ich nehme die CLSID aus dem Alaska-Beispiel, und das läuft auch unter Version 8. Ich bin nun ganz leicht irritiert, woher denn dann die angesprochenen Versions-Probleme kommen können. Wenn es doch nur diese beiden 7+8 gibt, die ActiveX bieten, und beide mit dieser CLSID laufen.
Zu 2: Was ist das, woher nehme ich das, geht das unter Xbase++ überhaupt?
Jan
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Hallo,
das Problem mit der Geschwindigkeit habe ich vorläufig mal gelöst, ich zeige auch PDF's über ActiveX in meinen Applikationen an, die Dauer bis das ganze dann stabil am Bildschirm steht ist unakzeptabel. Es gibt aber das Tool PDFSpeedup mit dem einige Komponenten erst dann nachgeladen werden, wenn man sie im PDF braucht. Findet man unter wwww.acropdf.com. Habe aber auch schon überlegt den FOXIT Reader einzubauen, der ist auch wesentlich schneller und da ändert sich nichts so schnell bei den Versionen.
Grüsse
Rudolf
das Problem mit der Geschwindigkeit habe ich vorläufig mal gelöst, ich zeige auch PDF's über ActiveX in meinen Applikationen an, die Dauer bis das ganze dann stabil am Bildschirm steht ist unakzeptabel. Es gibt aber das Tool PDFSpeedup mit dem einige Komponenten erst dann nachgeladen werden, wenn man sie im PDF braucht. Findet man unter wwww.acropdf.com. Habe aber auch schon überlegt den FOXIT Reader einzubauen, der ist auch wesentlich schneller und da ändert sich nichts so schnell bei den Versionen.
Grüsse
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Ich habe das Problem, daß ich bei einem Wechsel in einen anderen Dialog = anderer Thread = andere Tabpage und wieder zurück die Menüleisten oben und links nicht mehr angezeigt bekomme. Erst wenn ich mit der Maus drüber fahre, erscheinen die nach und nach wieder. Ab und an ist auch die pdf selber nicht mehr zu sehen, nur das leere Reader-Fenster. Kurz Scrollen bringt das Dokument wieder zum Vorschein.
Ein Wechsel über den Taskmanager in ein komplett anderes Programm und wieder zurück funktioniert dagegen einwandfrei.
Jan
Ein Wechsel über den Taskmanager in ein komplett anderes Programm und wieder zurück funktioniert dagegen einwandfrei.
Jan
- Martin Altmann
- Foren-Administrator
- Beiträge: 16586
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hmm,
ich habe keine Ahnung (aber davon reichlich ) - aber vielleicht hilft Dir einer der Fixpacks?
Schau mal bei Alaska nach, da gibt es mittlerweile einige zum Thema ActiveX...
Viele Grüße,
Martin
ich habe keine Ahnung (aber davon reichlich ) - aber vielleicht hilft Dir einer der Fixpacks?
Schau mal bei Alaska nach, da gibt es mittlerweile einige zum Thema ActiveX...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.