PDF Anzege in GUI

  • Hallo Leute,

    ich bin Noob und versuche gerade ein Autoit zu schreiben das mir aus einem Ordner (und den Unterordnern) alle PDF Dateien in eine
    Listbox oder Dropdown einfügt. Ich würde danach gerne eine Auswahl treffen (eine Datei!!) die ich auch im gleichen GUI angezeigt bekomme.
    Es wäre auch noch schön wenn ich das PDF vergrößern (Zoomen) könnte.
    Wenn jemand mir ein paar "denkanstöße" geben könnte wäre ich sehr Dankbar.

    Danke im vorraus :rock:

  • [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    ; Install a custom error handler
    Global $oMyError = ObjEvent("AutoIt.Error","_ComErrFunc")

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

    _Show_PDF()

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

    Func _Show_PDF()

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

    ; Get file to display
    Local $sFile = FileOpenDialog("Choose PDF", "M:\Documents", "PDF Files(*.pdf)", 3) ; put your own start folder here
    If @error Then
    MsgBox(0, "Error", "No file selected")
    Return
    EndIf

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

    ; Declare objects
    Local $oPDF = ObjCreate("AcroPDF.PDF.1");
    $oPDF.src = $sFile

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

    ; Create GUI
    GUICreate("AutoIt PDF Reader", 800, 570)
    Local $GUI_ActiveX = GUICtrlCreateObj($oPDF, 10, 10, 780, 550)
    GUICtrlSetStyle($GUI_ActiveX, $WS_VISIBLE)
    GUICtrlSetResizing($GUI_ActiveX, $GUI_DOCKAUTO) ; Auto Resize Object
    GUISetState()

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

    While 1

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

    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch

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

    WEnd

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

    ; Clear up
    $oPDF = ""
    $GUIActiveX = ""

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

    Exit

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

    EndFunc

    [/autoit]

    QUelle: http://www.autoitscript.com/forum/topic/10…345#entry770345

  • Mit SumatraPDF kannst du es so machen:

    Spoiler anzeigen
    [autoit]

    #include<Array.au3>
    #include <GUIConstants.au3>

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

    #Region - GUI Create

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

    $hGUI = GUICreate("test")
    $pdfContainer = GUICtrlCreateLabel("", 10, 40, 200, 200)
    Run("sumatrapdf.exe -plugin " & Number(GUICtrlGetHandle($pdfContainer)) & " C:\Pfad\zum.pdf")
    Do
    Sleep(100)
    $hSumatra = ControlGetHandle(GUICtrlGetHandle($pdfContainer), "", "SUMATRA_PDF_FRAME1")
    Until $hSumatra

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

    $close = GUICtrlCreateButton("Close PDF", 10, 0, 100, 20)
    $resize = GUICtrlCreateButton("Resize", 200, 0, 100, 20)

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

    #EndRegion
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $close
    GUICtrlDelete($pdfContainer)
    Case $resize
    $w = Random(200, 300, 1)
    $h = Random(200, 300, 1)
    GUICtrlSetPos($pdfContainer, 10, 40, $w, $h)
    WinMove($hSumatra, "", 0, 0, $w, $h)

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

    EndSwitch
    WEnd

    [/autoit]


    Download: http://blog.kowalczyk.info/software/sumatrapdf/ (Javascript aktivieren!)
    Um die PDF zu schließen entweder $pdfContainer löschen oder ein WinClose and $hSumatra senden.

  • Hallo Leute,

    vielen danke für eure Antworten.
    Hat ein wenig länger gedauert um sie durchzusehen.
    Habe fast die Lösung .... aber leider nur fast......

    [autoit]


    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.6.1
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    ; Install a custom error handler
    Global $oMyError = ObjEvent("AutoIt.Error","_ComErrFunc")

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

    _Show_PDF()

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

    Func _Show_PDF()

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

    ; Get file to display
    Local $sFile = FileOpenDialog("Choose PDF", "C:\", "PDF Files(*.pdf)", 3) ; put your own start folder here
    If @error Then
    MsgBox(0, "Error", "No file selected")
    Return
    EndIf

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

    ; Declare objects
    Local $oPDF = ObjCreate("AcroPDF.PDF.1");
    $oPDF.src = $sFile

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

    ; Create GUI
    GUICreate("AutoIt PDF Reader", 800, 570)
    Local $GUI_ActiveX = GUICtrlCreateObj($oPDF, 10, 10, 780, 550)
    GUICtrlSetStyle($GUI_ActiveX, $WS_VISIBLE)
    GUICtrlSetResizing($GUI_ActiveX, $GUI_DOCKAUTO) ; Auto Resize Object
    GUISetState()

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

    While 1

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

    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch

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

    WEnd

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

    ; Clear up
    $oPDF = ""
    $GUIActiveX = ""

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

    Exit

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

    EndFunc

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


    hier der Fehler den ich bekomme..... wenn ein Kollege dieses Autoit ausführt ist alles super ... wenn er eine EXE daraus macht kann ich die sie öffen und alles funktioniert....

    Aber wenn ich dieses Script aufführe bekomme ich einen Fehler
    Warum geht es bei mir nicht als Script ????


    >"C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\PDF in GUI.au3" /autoit3dir "C:\Program Files (x86)\AutoIt3" /UserParams
    +>16:19:43 Starting AutoIt3Wrapper v.2.0.3.0 Environment(Language:0407 Keyboard:00000407 OS:WIN_7/ CPU:X64 OS:X64)
    >Running AU3Check (1.54.19.0) from:C:\Program Files (x86)\AutoIt3
    +>16:19:43 AU3Check ended.rc:0
    >Running:(3.3.6.1):C:\Program Files (x86)\AutoIt3\autoit3_x64.exe "C:\PDF in GUI.au3"
    C:\PDF in GUI.au3 (30) : ==> Variable must be of type "Object".:
    $oPDF.src = $sFile
    $oPDF^ ERROR
    ->16:19:50 AutoIT3.exe ended.rc:1
    >Exit code: 1 Time: 8.050

    Einmal editiert, zuletzt von Merchant1970 (9. Februar 2012 um 07:19)

  • noch ein Nachtrag.....
    32Bit funktioniert das Script und die EXE.....
    64Bit funktioniert es nicht und ich bekomme den Fehler wie oben beschrieben....


    Danke für eure Mühe.....