Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Early Binding
#1
Hallo VBA Sportler,
ich möchte eine PDF-Datei auf einer bestimmten Seite öffnen.  
Das mache ich so:


Code:
Option Explicit
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Sub PDF_Datei_an_best_Seite_öffnen()
Dim strParameter, strPfad
strParameter = "/A " & Chr(34) & "page=" & 120 & Chr(34) & " " & "C:\T\A.pdf"
strPfad = "C:\Program Files (x86)\Foxit Software\Foxit PhantomPDF\FoxitPhantomPDF.exe"
Dim shX As Object
Set shX = CreateObject("Shell.Application")
Call ShellExecute(0&, "open", strPfad, strParameter, "", 1)
End Sub

Die PDF Datei wird dabei auf der Seite 120 geöffnet.


Mein Problem: Wie schaffe ich das Ganze mit Early Binding?


Code:
Sub Alternative_mit_EarlyBinding()
Dim strParameter, strPfad
strParameter = "/A " & Chr(34) & "page=" & 120 & Chr(34) & " " & "C:\T\A.pdf"
strPfad = "C:\Program Files (x86)\Foxit Software\Foxit PhantomPDF\FoxitPhantomPDF.exe"
Dim shX As Shell32.Shell
Set shX = New Shell32.Shell

'Problemstelle: Wie müssen hier die Parameter gesetzt werden?
shX.ShellExecute ????????????????????
End Sub


Ich hoffe ihr könnt mir helfen und den entsprechenden Code ergänzen.
Antworten Top
#2
Hallo!

Wenn es für Foxit keine passende Steuerdatei gibt kannst Du weder mit Early-Binding noch Late-Binding arbeiten. Derzeit arbeitest Du ja mit API. Ich wüsste nicht dass es für Foxit eine Steuerdatei gibt.

Gruß, René
Antworten Top
#3
Moin!
Es gibt schon ein paar Libraries:
   
Man müsste mal (auf deren Website) schauen, was es da für Möglichkeiten gibt.
(Ich habe nur den Reader, der Phantom hat ja noch diverse zusätzliche Funktionen)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Laut Internet-Recherche gibt es immer nur API-Referenzen, auch bei Foxit direkt. Das unter "Verweise" auch Foxit (und andere Programme) angezeigt werden sagt meiner Erfahrung nach nicht dass man damit auch per Verweise zugreifen kann. Für Foxit gibt es ein Steuerelement, ähnlich dem Browsersteuerelement, welches aber nur per API oder durch ein Steuerelement angesteuert werden kann. Es gibt zahlreiche Steuerelemente, z.B. das "signotec SignoSign Steuerelement", welche nur per API oder durch das Steuerelement angesteuert werden können, per "Set obj = CreateObject" oder "Set obj = New" jedoch nicht. Also eine direkte Ansteuerung ohne "Objektverweise", man muss also nicht erst eine Objektinstanz erzeugen. Die Ansteuerung erfolgt direkt durch das Steuerelement, welches sich z.B. in einer Userform befindet.
Antworten Top
#5
http://www.foxitsdk.com/sdk-docs/
[-] Folgende(r) 1 Nutzer sagt Danke an mumpel für diesen Beitrag:
  • RPP63
Antworten Top
#6
Hi mumpel,

du scheinst ja doch ein bißchen Ahnung von den API's zu haben. Deshalb ließ bitte noch mal meine Frage durch.

Der erste Code oben funktioniert. Er funktioniert mit dem Foxit Programm. Die PDF Datei wird auf der richtigen Seite

geöffnet. Ich suche jetzt nur noch die Alternativlösung mittels Early Binding.

Problemstelle habe ich oben angekreutzt.

Da nun die meisten aber nicht Foxit, sondern Acrobat benutzen, werde ich kurzfristig hier noch ergänzend vortragen.
Antworten Top
#7
Moin René!
Danke für die Aufklärung.
War ein Schnellschuss meinerseits.  Blush

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
Von API habe ich keine Ahnung. Die SDKs von Foxit sind alle nur auf Englisch. Da brauche ich ein paar Tage um mich einzuarbeiten. Ich könnte auch nur ins Blaue hinein programmieren, da ich Foxit nicht habe.

"Early Binding" ist, wie ich bereits erwähnte, nicht möglich. Das Erstellen von PDF per Objektinstanz existiert in Foxit nicht.
Antworten Top
#9
(08.05.2017, 18:37)RPP63 schrieb: (...) War ein Schnellschuss meinerseits (...)
Träumen ist erlaubt. ;)
Antworten Top
#10
Übrigens:
Das Öffnen einer bestimmten Seite einer PDF-Seite hängt vom Leseprogramm ab, da hat jedes Programm seine eigenen Parameter. Da hier aber anscheinend die "Shell.Application" im Einsatz ist müsste einer ran der die Shell-Parameter kennt.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste