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 )
kallecux hat geschrieben:Wenn sein muss auch per RunShell....(nicht den Tipp per runshell )
Das verstehe ich jetzt aber nicht
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).
kallecux hat geschrieben:
gern diskutiert, aber ohne Erfolg. PDF.PdfCtrl.5 oder ..6 oder ..7? Ich verzweifele.
wieso was hast du für Probleme ?
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.
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 )
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.
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.
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.
auf einigen Rechnern funktioniert das auch, aber auf meinem eigenen z.B. nicht. - Dort ist neben AcrobatReader 8 noch der Acrobat 5.0 (nicht Reader) installiert.
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.
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?
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.
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.
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...
Ich hab mal eine Anfrage an Alaska abgeschickt. In der Hoffung, daß die mir darauf eine Antwort geben (ich bin mir da nicht so sicher wegen meiner "kleinen" Subscription).