Fichiers Pdf dans un WebBrowser

JulienHch Messages postés 22 Statut Membre -  
JulienHch Messages postés 22 Statut Membre -
Bonjour,

Je dispose dans un dossier plusieurs fichiers PDF de longueur variables (1 ou plusieurs pages)
Dans un formulaire j'aimerai, que dès qu'on l'affichage on fasse défiler ces PDF.

Par exemple, à l'ouverture du formulaire, on affiche le PDF "A" (1 seul page), 10 seconde plus tard le PDF "B" ( 3 pages), donc 10 secondes plus tard la deuxième page de ce PDF et ainsi de suite et tout ça dans un web browser, et une fois tout les fichiers PDF passés on recommence le cycle d'affichage du début (le contrôle AcroPDF ne fonctionne pas chez moi)

Je sais comment récupérer le nombre de page, je sais afficher du contenu dans un web browser, le soucis étant le changement de page dans ce dernier je n'ai aucune idée de comment on pourrait faire malgrès les différents tests que j'ai effectué.

Cordialement :)

2 réponses

  1. JulienHch Messages postés 22 Statut Membre
     
    Je joins mon code :

    dans le module :

    Sub click()
    Dim i As Integer
    i = 1

    chemin = "C:\Users\Administrateur\Desktop\Affichage dynamique\PROCEDURE\"
    sFichier = Dir(chemin & "*pdf")

    While Len(sFichier) > 0:
    UserForm1.ListBox1.AddItem sFichier
    sFichier = Dir()
    Wend

    With UserForm1

    If GetPageNum(chemin & UserForm1.ListBox1.List(0)) > 1 Then
    While i <> GetPageNum(chemin & UserForm1.ListBox1.List(0)):

    UserForm1.WebBrowser1.Refresh

    .TextBox1.Text = chemin & UserForm1.ListBox1.List(0) & "#zoom=80%&page=" & i
    .Show vbModeless
    i = i + 1
    Application.Wait (Now + TimeValue("00:00:05"))
    UserForm1.WebBrowser1.Navigate ("about:blank")

    Wend
    Else

    .TextBox1.Text = chemin & UserForm1.ListBox1.List(0) & "#zoom=80%&page=1"
    .Show vbModeless

    End If

    End With

    End Sub

    Function GetPageNum(PDF_File As String)

    Dim FileNum As Long
    Dim strRetVal As String
    Dim RegExp

    Set RegExp = CreateObject("VBscript.RegExp")

    RegExp.Global = True
    RegExp.Pattern = "/Type\s*/Page[^s]"
    FileNum = FreeFile

    Open PDF_File For Binary As #FileNum

    strRetVal = Space(LOF(FileNum))

    Get #FileNum, , strRetVal

    Close #FileNum

    GetPageNum = RegExp.Execute(strRetVal).Count

    End Function

    dans le user form :

    Private Sub UserForm_Initialize()

    ListBox1.Visible = False
    TextBox1.Visible = False

    End Sub
    Private Sub Textbox1_Change()

    WebBrowser1.Navigate TextBox1.Text

    End Sub
    0
  2. JulienHch Messages postés 22 Statut Membre
     
    j'ai commencé par tester que pour 1 seul fichier excel, quand je test en mode pas à pas ça fonction comme je le souhaite, cependant quand je le laisse tourner automatiquement, le formulaire reste figé sur la première page, et se débloque quand il a fini de traiter toute les pages...

    Si vous avez une idée ?
    0