Anzahl der Seiten eines PDFs auslesen

  • Hallo Zusammen!

    Ich habe ein kleines Problem von dem ich noch nicht weiß wie ich es lösen kann.

    Ich schreibe gerade ein Programm das in gewissen Zeitabständen automatisch Videos, PP-Präsentationen oder ähnliches ausführt. Das Ganze hat auch reibungslos funktioniert. Mein Problem ist das nun die anforderung dazu gekommen ist PDF Dateien auch in dieses Programm zu integrieren. Diese müssen dann auch automatisch durchblättert werden. Das Problem - wie finde ich heraus wieviele Seiten das PDF hat, damit ich dem Script sagen kann wie oft es blättern muss? Wenn jemand eine Idee hat wäre das Super!


    Gruß

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

    Einmal editiert, zuletzt von akira2012 (31. August 2012 um 10:35)

  • Hallo akira2012

    Mit dieser Funktion kannst Du die Anzahl der Seiten eines PDFs auslesen.
    Viel Spass!

    _GetPDFPageCount
    [autoit]

    $File = @ScriptDir & "\a.pdf"
    MsgBox(64, "Anzahl Seiten im PDF", _GetPDFPageCount($File))
    Exit

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

    Func _GetPDFPageCount($sFile)
    Local $hFile = FileOpen($sFile)
    Local $sPDF = FileRead($hFile)
    FileClose($hFile)
    Local $aRegExp = StringRegExp($sPDF, "/Type\s*/Page[^s]", 3)
    If @error Then Return SetError(1, 0, 0)
    Return UBound($aRegExp)
    EndFunc ;==>_GetPDFPageCount

    [/autoit]

    Gruss, Veronesi

    2 Mal editiert, zuletzt von veronesi (31. August 2012 um 09:18)

  • Funktioniert super! Vielen Dank! :rock:

    EDIT: Ich hab mir gerade die Funktion mal genauer angeschaut. Funktioniert die bei allen PDF's oder nur bei denen aus denen man auch den Text markieren kann? Ehrlich gesagt versteh ich die Funktion nicht ganz. Kannst du ein paar Erläuterungen dazu schreiben? Danke!

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

    Einmal editiert, zuletzt von akira2012 (31. August 2012 um 10:40)

  • Ob diese Funktion bei allen PDFs funktioniert musst Du testen.
    Aber die sollte es. Bei meinem PDFs (alles nicht indizierte und nicht markierbare Texte) hat es funktioniert.

    Die Funktion liest die Datei ein und durchsucht die nach speziellen Tags. Diese Tags werden in den PDFs dazu verwendet um die nächste Seite zu kennzeichnen. Ich filtere mit RegExp einfach danach und zähle die Fundstellen.

    Sollte so mit allen PDFs > Version 3 funktionieren.
    Üblich ist sowieso eine PDF Version > 4.

    Freut mich, wenn es klappt.
    Gruß Veronesi