AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Acrobat Reader COM / OLE API

Ein Thema von ulrich.b · begonnen am 4. Apr 2008 · letzter Beitrag vom 9. Apr 2008
Antwort Antwort
ulrich.b

Registriert seit: 21. Sep 2005
Ort: Kattau (AT)
79 Beiträge
 
Delphi 2009 Professional
 
#1

Acrobat Reader COM / OLE API

  Alt 4. Apr 2008, 14:07
Ich habe versucht, die Acrobat Reader COM API anzusprechen, und bin klaglos gescheitert.

Wenn man in C# eine Instanz von "AcroApp" zu erstellen bekommt man eine COMException:
"Retrieving the COM class factory for component with CLSID {85DE1C45-2C66-101B-B02E-04021C009402} failed due to the following error: 80040154"

Das ganze hab ich versucht mit einer Acrobat Reader 8.1.2 Installation (auf 2 versch. Systemen)

Sogar das in der SDK mitgelieferte Beispiel (BasicIacCS.cs) bricht an genau dieser stelle ab:


Code:
      private void StartAcrobatIac()
      {
         //IAC objects
         CAcroPDDoc pdDoc;
         CAcroAVDoc avDoc;

         //constant, hard coding for a pdf to open, it can be changed when needed.
         const string szPdfPathConst = "C:\\sample.pdf";

         //variables
         string szStr;
         string szName;
         int iNum = 0;

         mApp = new AcroAppClass(); //// <==== Exception !!!!

         //Show Acrobat
         mApp.Show();

         //set AVDoc object
         avDoc = new AcroAVDocClass();

         //open the PDF
         if (avDoc.Open (szPdfPathConst, ""))
Hat jemand von euch schon mit der Reader COM API gearbeitet??

EDIT: Ich hab noch das gesamte Sample (direkt aus dem SDK) hinzugefügt, ... falls es jemand selbst ausprobieren will
Angehängte Dateien
Dateityp: rar basiciaccs_124.rar (6,8 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Acrobat Reader COM / OLE API

  Alt 4. Apr 2008, 14:27
[quote="ulrich.b"]Ich habe versucht, die Acrobat Reader COM API anzusprechen, und bin klaglos gescheitert.

Code:
   CAcroPDDoc pdDoc;
   CAcroAVDoc avDoc;
Diese Klassen/Interfaces gibt es nur im Adobe Acrobat, nicht im Reader!
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
ulrich.b

Registriert seit: 21. Sep 2005
Ort: Kattau (AT)
79 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Acrobat Reader COM / OLE API

  Alt 4. Apr 2008, 21:42
Zitat von Bernhard Geyer:
Diese Klassen/Interfaces gibt es nur im Adobe Acrobat, nicht im Reader!
... versteh ich aber nicht ganz, ... denn installiert werden sie (man kann sie auch als Referenz in VS hinzufügen, bzw. mit dem OLE Viewer anzeigen (siehe Anhang)).

... aber egal, ....

wie kann ich trotzdem mit der Reader ActiveX API eine PDF öffnen und

1) ohne jeglicher GUI drucken
und
2) das Druck-Fenster anzeigen und danach, wenn auf OK gedrückt, drucken
Miniaturansicht angehängter Grafiken
clipboard01_189.png  
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Acrobat Reader COM / OLE API

  Alt 5. Apr 2008, 07:58
Zitat von ulrich.b:
... versteh ich aber nicht ganz, ... denn installiert werden sie (man kann sie auch als Referenz in VS hinzufügen, bzw. mit dem OLE Viewer anzeigen (siehe Anhang)).
Ist Adobe. Da werden manche komische Sachen gemacht. Entweder ein Packaging-Fehler oder "as Designed" Fehler da mit sicherheit 95% des Viewers-Code mit dem Acrobat gemeinsam verwendet werden

Zitat von ulrich.b:
wie kann ich trotzdem mit der Reader ActiveX API eine PDF öffnen und

1) ohne jeglicher GUI drucken
und
2) das Druck-Fenster anzeigen und danach, wenn auf OK gedrückt, drucken
Lade die PDF-Datei über den TWebBrowser und nimm dessen Print-Methode ExecWB(OLECMDID_PRINT, ...) des ControlInterface.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
ulrich.b

Registriert seit: 21. Sep 2005
Ort: Kattau (AT)
79 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Acrobat Reader COM / OLE API

  Alt 9. Apr 2008, 09:24
Zitat von Bernhard Geyer:
Lade die PDF-Datei über den TWebBrowser und nimm dessen Print-Methode ExecWB(OLECMDID_PRINT, ...) des ControlInterface.

OK. Bevor ich jetzt herumprobier, möcht ich noch folg. fragen:

Kann man das ganze (TWebbrowser und PDF laden) auch ohne sichtbares Fenster machen?
Wenn ja, .... kann man drucken, ohne das druckfenster anzuzeigen, aber nicht auf den Default-Drucker, sonderen den gewünschten Drucker als String mitgeben?

Wenn nein, .... kann man das ganze eigentlich über die "AcroRd32.exe"-Commandline steuern?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Acrobat Reader COM / OLE API

  Alt 9. Apr 2008, 10:46
AFAIK nein. Adobe-SW ist hier ziemlich biestig.

Für PDF's gibt es aber Alternativviewer. der FoxIt-Reader bietet eine sehr hohe Kompatiblität und hat eine Programmierschnittstelle. Kostet jedoch ein paar € wenn du es mit deiner SW als DLL mitliefern willst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:39 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