Fichiers Pdf dans un WebBrowser

Fermé
JulienHch Messages postés 22 Date d'inscription mardi 19 février 2019 Statut Membre Dernière intervention 10 avril 2019 - Modifié le 10 avril 2019 à 08:08
JulienHch Messages postés 22 Date d'inscription mardi 19 février 2019 Statut Membre Dernière intervention 10 avril 2019 - 10 avril 2019 à 08:58
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 :)
A voir également:

2 réponses

JulienHch Messages postés 22 Date d'inscription mardi 19 février 2019 Statut Membre Dernière intervention 10 avril 2019
Modifié le 10 avril 2019 à 08:56
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
JulienHch Messages postés 22 Date d'inscription mardi 19 février 2019 Statut Membre Dernière intervention 10 avril 2019
Modifié le 10 avril 2019 à 08:58
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