PDF einbinden klappt nicht

  • Hallo Leute,

    ich möchte in eine GUI mit mehreren Tabs in einem der Tabs ein PDF einbinden.

    [autoit]


    #include <GUIConstants.au3>

    [/autoit][autoit][/autoit][autoit]

    ; GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] )
    $Form1 = GUICreate("AForm1", 800, 600,10, 10);522, 529, 236, 125)
    ; GUICtrlCreateTab ( left, top [, width [, height [, style [, exStyle]]]] )
    $Tab1 = GUICtrlCreateTab( 5, 5, 700, 500)
    $TabSheet1 = GUICtrlCreateTabItem("Ein vorerst leerer Tab")
    $TabSheet2 = GUICtrlCreateTabItem("PDF Tab")

    [/autoit][autoit][/autoit][autoit]

    $AObj1 = ObjCreate("AcroPDF.PDF.1")
    $AObj1.src= @ScriptDir & "\Test.pdf"
    ;GUICtrlCreateObj ( ObjectVar, left, top [, width [, height]] )
    $AObj1_ctrl = GUICtrlCreateObj($AObj1, 25, 35, 650, 450)

    [/autoit][autoit][/autoit][autoit]

    GUICtrlCreateTabItem("") ; Beendet die Tab Definition
    GUISetState(@SW_SHOW)

    [/autoit][autoit][/autoit][autoit]

    ; Der doppelte "Switch" ist eine Vorbereitung für eine 2. GUI
    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    case $GUI_EVENT_CLOSE
    Switch $nMsg[1]
    Case $Form1
    GUIDelete ($Form1)
    ExitLoop
    EndSwitch
    EndSwitch
    sleep (100)
    WEnd

    [/autoit]

    Das PDF wird im 2. Tab auch angezeigt, sobald man aber reinklickt, reagiert das Fenster nicht mehr. Man kann es nicht mal verschieben. Es reagiert erst wieder wenn man den Acrobat Reader im Taskmanager killt.

    Kann mir einer weiter helfen?

    mfg
    maddin

    Einmal editiert, zuletzt von MCrookieDe (20. Juni 2012 um 20:19)

  • Hi,

    füge mal das ganz oben in's Skript ein, dann funktioniert es wahrscheinlich.

    [autoit]

    #AutoIt3Wrapper_UseX64=n

    [/autoit]

    Ups, ich sehe gerade, dass das Anzeigen bei dir ja grundsätzlich funktioniert. Bei mir klappt es auf Grund Windows 7 (64Bit) ohne die Zeile gleich überhaupt nicht.

    Dann wird das wohl nicht die Lösung sein... aber vielleicht wundert sich ja mal jemand, warum er kein Objekt erstellen kann und kann dann mit diesem Hinweis was anfangen 8) .

    Gruß Trainer

    Einmal editiert, zuletzt von ip_trainer (14. Juni 2012 um 03:11)

  • Hi,
    also auf der Arbeit hab ich Win7 64 bit + Reader x. Zuhause WinXP 32 Bit Acrobat8. Beide zeigen das gleiche Fehlerbild, man sieht die PDF, sobald man ins Fenster klickt, reagiert die GUI und alles drin nicht mehr. Habe trotzdem mal #AutoIt3Wrapper_UseX64=n ausprobiert, hat aber wie schon vermutet nichts gebracht. Ich gehe auch gern ganz andere Wege, Hauptsache es funktioniert am Ende. Wie würde es denn mit Hilfe von embedded-IE + PDF aussehen? Habe über Google zumindest keine Hilfreichen Code Schnipsel mit diesen Keywords gefunden. Ich bin noch nicht so fit in autoIT. Man liest öfter man solle statt Adobe den foxit reader nehmen. Von mir aus auch das, aber ein Beispiel bräuchte ich auch hier.

    Hoffe Ihr könnt mir weiterhelfen.
    Gruss
    Maddin

  • Hi Maddin,

    hier mal ein Beispiel, wie man es mit dem IE lösen könnte, aber um es gleich zu sagen: der Effekt ist der gleiche :( ...

    Obwohl die GUI keine Tabs etc. hat, reagiert sie nicht mehr, sobald man einmal auf das PDF geklickt hat (edit: eigentlich reagiert sie von Anfang an auf gar nichts).
    Und seltsamerweise funktioniert auch dieses Skript bei mir nur mit der ersten Zeile, ansonsten wird das PDF in einem neuen Fenster geöffnet und im IE "Navigation abgebrochen" angezeigt.
    Fazit: es scheint also irgendwie direkt am Adobe-Plugin zu liegen - das stielt der GUI irgendwie den Focus oder so. Von daher wäre der Foxit vielleicht wirklich die beste Wahl.
    Hat jemand ein Beispiel dafür?

    Gruß
    Trainer

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_UseX64=n

    [/autoit] [autoit][/autoit] [autoit]

    #include-once
    #include <GUIConstantsEx.au3>
    #include <IE.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $oIE = _IECreateEmbedded ()
    GUICreate("Test", 800, 600)
    $test = GUICtrlCreateObj($oIE, 10, 10, 750, 550)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _IENavigate ($oIE, @ScriptDir & "\Test.pdf")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd

    [/autoit]
  • Ja, ich hab's grad auch ausprobiert, bei mir selber Effekt.
    Selbst der Versuch, eine temporäre HTML-Datei mit einem Frame, in das die PDF-Datei eingebunden ist, aufzurufen, hat den selben Effekt... Äußerst komisch.
    Bei weiterem rumexperementieren habe ich gemerkt, dass nicht nur die GUI "abschmiert". Das ganze Script bleibt bei der Zeile hängen. Da ist wirklich irgendwo ein gewaltiger Wurm drinne.


    lg chess

  • Hi, also wenn ich in meiner Version alle Tab Funktionen auskommentiere, geht es komischerweise. Ich kann in dem PDF herumscrollen, zoomen und trotzdem die GUI verschieben oder schliessen. Das hat irgentwie mit dem Tab zu tun? ?(

  • Hallo,

    eingefügte Objekte werden in eine GUI eingebunden und ... $WS_CLIPCHILDREN should used in GUICreate().
    Soll mit Tabs gearbeitet werden muss für jedes TAB eine eigene GUI erzeugt werden.

    Mit den zahlreichen Beispielen für "TabOnTab" oder "TabInTab" bereitet das Einbinden von PDFs (am besten über IE-Objekt) keine Probleme.

    Mfg, Reinhard

  • Hallo,

    eingefügte Objekte werden in eine GUI eingebunden und ... $WS_CLIPCHILDREN should used in GUICreate().
    Soll mit Tabs gearbeitet werden muss für jedes TAB eine eigene GUI erzeugt werden.

    Mit den zahlreichen Beispielen für "TabOnTab" oder "TabInTab" bereitet das Einbinden von PDFs (am besten über IE-Objekt) keine Probleme.

    Mfg, Reinhard

    Das habe ich leider nicht kapiert. Ich habe es jetzt ganz anders gelöst. Alle Tabs entfernt und eine Tab ählichen Reihe von Buttons erstellt. Bei Klick auf den jeweiligen Button wird das jeweilige gebrauchte GUICtrl erzeugt und alle anderen mit GUICtrlDelete gelöscht. Das ist zwar noobstyle, funktioniert aber.

    Trotzdem Danke für die Vorschläge.

    Gruß
    Maddin