Page 1 sur 1

Fonction - comptage du nb de page dans un PDF

Posté : lun. 31 août 2020 18:30
par fusor
Bonjour à tous,

Je cherche un peu d'aide sur une fonction qui permet de compter le nombre de page dans un fichier pdf.
Si quelqu'un a la gentillesse de m'aider ça serait sympa.
J'ai un souci avec les Array et je ne pige pas.
Merci

MsgBox(0, "", pagecount("C:\exemple.pdf"))

Func pagecount($sfilename)
    Local $c = 0
    Local $pages = -1

    ; Ouvre le fichier pdf
    $handle = FileOpen($sfilename,0)
    If @ERROR Then Return SetError(1,0,0)
   
    Do
        $s = FileReadLine($handle)
        $EOF = @ERROR
       
        $c += 1
       
        ; voir les 10 premieres lignes avec /N
        If $c <= 10 Then
            If StringInStr($s, "/N") > 0 Then
                $array1 = StringRegExp($s,"/N\h(\d+)",3)
                $pages = Number($array1[0])    
                ExitLoop
            EndIf
        EndIf
       
        ; voir toutes les lignes avec '/count'
        If StringInStr($s, "/count") > 0 Then
            $array2 = StringRegExp($s,"/count\h(\d+)",3)
            $pages = Number($array2[0])
            ExitLoop
        EndIf
    Until $EOF = -1
   
    ; fermer le fichier et retour du nombre de page
    FileClose($handle)
    If $pages < 0 Then $pages = 1
    Return $pages
EndFunc
 

Re: Fonction - comptage du nb de page dans un PDF

Posté : mar. 01 sept. 2020 13:31
par fusor
Personne pour me faire marcher ce petit bout de code ?

:?

Re: Fonction - comptage du nb de page dans un PDF

Posté : mar. 01 sept. 2020 15:02
par walkson
Bonjour,
mettez $handle = FileOpen($sfilename,512) ($FO_ANSI (512) = Use ANSI reading and writing mode.) ça devrait fonctionner

Re: Fonction - comptage du nb de page dans un PDF

Posté : mar. 01 sept. 2020 19:22
par fusor
Merci pour ce premier retour.
Malheureusement, cela ne fonctionne pas.

Re: Fonction - comptage du nb de page dans un PDF

Posté : mar. 01 sept. 2020 21:19
par walkson
Ce code fonctionne après quelques modifications
Func pagecount($sfilename)
    Local $c = 0, $EOF = 0
    Local $pages = -1

    ;'OPEN the PDF file
    $handle = FileOpen($sfilename,512)
    If @error Then Return SetError(1,0,0)
    ;Get the data from the file
    Do
        $c += 1
      $s = FileReadLine($handle, $c)
        $EOF = @error



        ;Look within the top 10 lines for /N
        If $c <= 10 Then
            If StringInStr($s, "/N") > 0 Then
                $array1 = StringRegExp($s,"/N\h(\d+)",3)
                $pages = Number($array1[0])
                ExitLoop
            EndIf
        EndIf

        ;Check every line for /count
        If StringInStr($s, "/count") > 0 Then
            $array2 = StringRegExp($s,"(?i)/count\h(\d+)",3)
            $pages = Number($array2[0])
            ExitLoop
        EndIf
    Until $EOF = -1

    FileClose($handle)
    If $pages < 0 Then $pages = 1
    Return $pages
EndFunc   ;==>pagecount

Re: Fonction - comptage du nb de page dans un PDF

Posté : mer. 02 sept. 2020 15:51
par fusor
Super, ça fonctionne :P
Merci Walkson

Re: Fonction - comptage du nb de page dans un PDF

Posté : ven. 04 sept. 2020 21:48
par jguinch
Peut-être un peu tard, mais une autre solution : https://www.autoitscript.fr/forum/viewt ... 21&t=12056

Re: Fonction - comptage du nb de page dans un PDF

Posté : dim. 13 sept. 2020 10:22
par fusor
Merci, le résultat est même bien plus rapide que le mien.