Seite 1 von 1

PDF anzeigen....!?

Verfasst: Mi, 23. Apr 2008 20:02
von kallecux
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 :wink:)

Frendliche Grüße
Karl Heinz

Re: PDF anzeigen....!?

Verfasst: Mi, 23. Apr 2008 21:07
von brandelh
kallecux hat geschrieben:Wenn sein muss auch per RunShell....(nicht den Tipp per runshell :wink:)
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).

RunShell() ist die beste Lösung ! die ich kenne ;-)

Re: PDF anzeigen....!?

Verfasst: Mi, 23. Apr 2008 21:08
von AUGE_OHR
hi,
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 :wink:)
RunShell( "/C START EXPLORER.EXE DEMO.PDF" )

Verfasst: Do, 24. Apr 2008 8:22
von kallecux
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!

Verfasst: Do, 24. Apr 2008 12:07
von kallecux
@Hubert

"Wenn sein muss auch per RunShell....(nicht den Tipp per runshell ) "

Nun habe ich verstanden, was Du nicht verstanden hast.... :idea:

Das sollte ein Scherz werden! Damit wollte ich sagen, dass ich den Tipp nicht per runshell bekommen möchte....!? :D

Verfasst: Do, 24. Apr 2008 12:20
von Tom
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.

Verfasst: Do, 24. Apr 2008 12:44
von Jan
Hallo Tom,

da mische ich mich jetzt mal ein 8)

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

Verfasst: Do, 24. Apr 2008 13:47
von kallecux
HAllo Jan,

diese ID benutze ich auch:

oControl:CLSID := "{CA8A9780-280D-11CF-A24D-444553540000}"

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.

Verfasst: Do, 24. Apr 2008 14:00
von Tom
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.

Verfasst: Do, 24. Apr 2008 15:41
von Jan
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

Verfasst: Fr, 25. Apr 2008 8:36
von Rudolf
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

Verfasst: Fr, 25. Apr 2008 8:43
von Jan
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

Verfasst: Fr, 25. Apr 2008 9:17
von Martin Altmann
Hmm,
ich habe keine Ahnung (aber davon reichlich :D ) - aber vielleicht hilft Dir einer der Fixpacks?
Schau mal bei Alaska nach, da gibt es mittlerweile einige zum Thema ActiveX...

Viele Grüße,
Martin

Verfasst: Fr, 25. Apr 2008 9:46
von Jan
ich habe keine Ahnung (aber davon reichlich )
Na, das sagt hier der Richtige!

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).

Jan