Menu

Fichiers Pdf dans un WebBrowser

Messages postés
22
Date d'inscription
mardi 19 février 2019
Statut
Membre
Dernière intervention
10 avril 2019
-
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 :)
Afficher la suite 

Votre réponse

2 réponses

Messages postés
22
Date d'inscription
mardi 19 février 2019
Statut
Membre
Dernière intervention
10 avril 2019
0
Merci
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
Commenter la réponse de JulienHch
Messages postés
22
Date d'inscription
mardi 19 février 2019
Statut
Membre
Dernière intervention
10 avril 2019
0
Merci
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 ?
Commenter la réponse de JulienHch