Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Adobe XI (Version 11.0.07) killt PDF-Anzeige über Active X Control (https://www.delphipraxis.net/180530-adobe-xi-version-11-0-07-killt-pdf-anzeige-ueber-active-x-control.html)

Harry Stahl 26. Mai 2014 22:30

Adobe XI (Version 11.0.07) killt PDF-Anzeige über Active X Control
 
Ich habe in meinem (FireMonkey-) Programm über Adobe Active-X (Komponenten-Import) eine PDF-Anzeigemöglichkeit eingebunden. Mit der aktuellen Adobe-Version 11.0.07 funktioniert das plötzlich nicht mehr. Auf meinem Vertriebsrechner habe ich über Windows-Systemwiederherstellung ein Downgrade auf Version Acrobat Reader 11.0.06 hergestellt, danach funktioniert alles wie gewohnt (alle noch älteren Acrobat Reader funktionieren ebenfalls normal).

Hat Jemand das Problem ebenfalls schon festgestellt? Gibt es eine andere Möglichkeit, das Problem zu beheben? Auf der Adobe-Seite habe ich keine vernünftige Möglichkeit gefunden, das dem Hersteller einmal mitzuteilen, habe ich daher einfach bei Facebook gepostet. Mal sehen, ob das was hilft...

Bernhard Geyer 26. Mai 2014 22:34

AW: Adobe XI (Version 11.0.07) killt PDF-Anzeige über Active X Control
 
Haben Sie es also jetzt auch mit dem Reader-ActiveX-Control geschafft die direkte ActiveX-Verwendung zu schrotten?
Adobe garantiert nur die Verwendung im Browser. Alles anderes ist bei Adobe ein Glücksspiel was nur zufällig über die Jahre funktioniert hat.

Die Lösung ist das du ebenfalls über den Browser (TWebbrowser) das PDF anzeigen musst.

Übrigens: Versuchen so ein Problem bei Adobe zu melden ist vergeudete Zeit! Die maximale Antwort ist, das das jetzt halt so ist.

Harry Stahl 26. Mai 2014 22:57

AW: Adobe XI (Version 11.0.07) killt PDF-Anzeige über Active X Control
 
Ja, in der VCL-Version des Programms (Vorgänger) hatte ich PDF-Dateien auch über die Web-Browser-Komponente anzeigen lassen. Da funktioniert auch die Version 11.0.07 noch. Im Firemonkey-Programm unter Windows habe ich bislang noch nicht versucht, die VCL-Webbrowser-Komponente einzubinden, nehme mal an, wenn überhaupt, geht das nur wieder mit Tricks und Umwegen... Muss ich mir mal ansehen (die Chromium Webbrowser-Komponente unterstützt ja wohl nur IOS und Android, aber nicht Windows, wenn ich das gerade richtig in Erinnerung habe).

greenmile 27. Mai 2014 07:07

AW: Adobe XI (Version 11.0.07) killt PDF-Anzeige über Active X Control
 
Nicht nur PDF crasht, auch Flash Player. Allerdings, so wie es aussieht, nur unter Windows 8/8.1. Einen Workaround gibt es leider nur indirekt: Nutze Chromium, dort ist der Fehler nicht, es betrifft nur ActiveX (wenn ich das Recht in Erinnerung habe). Eröffne am besten einen Bug bei https://bugbase.adobe.com. Ein Bugfix geht dort schneller als bei Emba (ca. 2 Monate). Allerdings musst Du ordentlich Beispiel Programme reinpacken, sonst antworten die immer "Kann nicht reproduziert werden".

Zitat:

Zitat von Harry Stahl (Beitrag 1260364)
die Chromium Webbrowser-Komponente unterstützt ja wohl nur IOS und Android, aber nicht Windows, wenn ich das gerade richtig in Erinnerung habe).

Die läuft auch unter Windows. Ich bekomme allerdings beim einbinden abstürze, allerdings verwende ich in der Form einiges mehr als nur Chromium.

Ralf Kaiser 27. Mai 2014 08:39

AW: Adobe XI (Version 11.0.07) killt PDF-Anzeige über Active X Control
 
Hallo,

Dieser Fix funktioniert:

https://forums.embarcadero.com/threa...hreadID=104983

Und hier noch die Reaktion von Adobe:

https://forums.adobe.com/message/6397283#6397283

(Man soll doch auf eine aktuelle Version seiner Entwicklungstools umsteigen, wenn es nach Adobe geht!)

Ciao,
Ralf

Harry Stahl 27. Mai 2014 17:46

AW: Adobe XI (Version 11.0.07) killt PDF-Anzeige über Active X Control
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo und erst mal vielen Dank für den Hinweis.

Irgendwie bekommen ich es aber dennoch nicht hin. Bin so vorgegangen, wie in dem Link beschrieben, habe also zunächst diese Änderungen vorgenommen:

Delphi-Quellcode:
1) open AcroPDFLib_TLB.pas
2) add this

TAcroPDF = class(TOleControl)
...
protected
procedure CreateControl;...
//ADDED
function QueryInterface(const IID: TGUID; out Obj): HResult; override;
//ADDED

3) Added this in the implementation section:

function TAcroPDF.QueryInterface(const IID: TGUID; out Obj): HResult;
begin
if IID = IServiceProvider then
Result := E_NOINTERFACE
else
inherited;
end;

4) re-build the package you are using and re-install it in the IDE
5) you should be good to go
Dann habe ich auch noch den folgenden Hinweis befolgt:

Zitat:

I used the suggestion on the Adobe forum where you create a new olectrlsAdobe .... but you have to rename the TOleControl class in the new unit. Compiled everything up and it works .... I can breath again
Habe also im Ergebnis eine angepasste "AcroPDFLib_TLB.pas" und eine neue "OleCtrlsAdobe.pas", welche die bisherige "VCL.OleCtrls.pas" ersetzt. In der neuen OleCtrlsAdobe.pas habe ich TOleControl umbenannt in TOleControlAdobe und habe das entsprechend in der "AcroPDFLib_TLB.pas" angepasst.

Dennoch erhalte ich zur Laufzeit den Fehler "OleSysError: Klasse nicht registriert".

In der Anlage habe ich mal die beiden Units beigefügt.
Was mache ich falsch?

Hinweis: Habe beim Import der Active-X-Komponente kein Package mit einer Komponente erzeugen lassen, sondern nur die Unit "AcroPDFLib_TLB.pas", die ich in mein Projekt eingebunden habe.

Ralf Kaiser 27. Mai 2014 18:31

AW: Adobe XI (Version 11.0.07) killt PDF-Anzeige über Active X Control
 
Hallo,

Also wir haben nur den ersten Tipp befolgt (also mit dem QueryInterface das in Falle von IServiceProvider E_NOINTERFACE zurückgibt)

Der zweite Tipp mit der kopierten Unit ist eigentlich Unsinn. Vor allem beides sollte man nicht zusammen anwenden.

Ach ja; Wir haben auch kein installiertes Package sondern nur die importierte Unit ins Projekt eingebunden. Funktioniert sowohl mit der Version 11.0.07 als auch mit älteren Versionen.

Allerdings handelt es sich um ein reines VCL-Projekt (XE5) und kein Firemonkey (obwohl ich mir nicht vorstellen kann, dass das einen Unterschied macht)

Ciao,
Ralf

Harry Stahl 27. Mai 2014 19:04

AW: Adobe XI (Version 11.0.07) killt PDF-Anzeige über Active X Control
 
[Edit] Es ist mir fast peinlich:

Hatte vergessen, dass ich gestern Abend hier Version XI deinstalliert hatte, weil ich eine ältere Version installieren wollte, was aber nicht ging, so dass auf dem Entwicklungs-PC gar kein Adobe mehr drauf war. :oops:

Und ja: :thumb: Es funktioniert nur mit der QueryInterface Änderung.

Also noch mal vielen Dank für den Tipp!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz