En VB.NET, il n’existe pas de méthode native pour afficher une miniature (vignette) d’un fichier PDF. Cependant, vous pouvez utiliser des bibliothèques open-source comme PDFium, iTextSharp, ou des solutions tierces telles que Ghostscript pour générer des images à partir des pages d’un PDF. Ces images peuvent ensuite être affichées dans une interface utilisateur (par exemple, dans un contrôle PictureBox
).
Voici un exemple de code pour charger un fichier PDF, convertir une page en image et l’afficher dans un contrôle PictureBox
.
Imports PdfiumViewer
Imports System.Drawing
Public Class Form1
Private Sub btnOpenPDF_Click(sender As Object, e As EventArgs) Handles btnOpenPDF.Click
' Boîte de dialogue pour sélectionner un fichier PDF
Dim openFileDialog As New OpenFileDialog()
openFileDialog.Filter = "Fichiers PDF (*.pdf)|*.pdf"
If openFileDialog.ShowDialog() = DialogResult.OK Then
Dim pdfPath As String = openFileDialog.FileName
' Générer une miniature (première page du PDF)
Dim thumbnail As Image = GeneratePDFThumbnail(pdfPath, 0)
' Afficher la miniature dans le PictureBox
If thumbnail IsNot Nothing Then
PictureBox1.Image = thumbnail
Else
MessageBox.Show("Impossible de générer la miniature.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End If
End Sub
' Fonction pour générer une miniature à partir d'une page PDF
Private Function GeneratePDFThumbnail(pdfPath As String, pageIndex As Integer) As Image
Try
' Charger le PDF
Using pdfDocument As PdfDocument = PdfDocument.Load(pdfPath)
' Extraire la page souhaitée en tant qu'image
Dim image As Image = pdfDocument.Render(pageIndex, 200, 200, PdfRenderFlags.Annotations)
Return image
End Using
Catch ex As Exception
MessageBox.Show("Erreur : " & ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return Nothing
End Try
End Function
End Class
OpenFileDialog
permet à l’utilisateur de sélectionner un fichier PDF.GeneratePDFThumbnail
utilise la bibliothèque PdfiumViewer pour charger le PDF et rendre une page sous forme d’image.PictureBox
: PictureBox1.Image
.Render
prend plusieurs paramètres : Changez les valeurs width
et height
dans la méthode Render
pour ajuster la taille de l’image générée.
Dim image As Image = pdfDocument.Render(pageIndex, 300, 300, PdfRenderFlags.Annotations)
Si vous souhaitez afficher plusieurs miniatures (par exemple, les premières pages du PDF), utilisez une boucle pour extraire plusieurs pages.
For i As Integer = 0 To Math.Min(pdfDocument.PageCount - 1, 4) ' Afficher jusqu'à 5 miniatures
Dim image As Image = pdfDocument.Render(i, 150, 150, PdfRenderFlags.Annotations)
' Ajouter l'image à un contrôle FlowLayoutPanel ou similaire
Dim pictureBox As New PictureBox()
pictureBox.Image = image
pictureBox.SizeMode = PictureBoxSizeMode.Zoom
pictureBox.Width = 150
pictureBox.Height = 150
FlowLayoutPanel1.Controls.Add(pictureBox)
Next
Vous pouvez sauvegarder l’image générée au format JPEG ou PNG.
thumbnail.Save("C:\Chemin\Vers\Miniature.png", Imaging.ImageFormat.Png)
MessageBox.Show("Miniature sauvegardée avec succès.")
Si PdfiumViewer ne convient pas, vous pouvez utiliser d’autres bibliothèques :
itext7.pdfimage
pour extraire des images de pages).Pour afficher plusieurs miniatures d’un fichier PDF en VB.NET, vous pouvez extraire chaque page sous forme d’image (miniature) et les afficher dans un contrôle tel que FlowLayoutPanel ou Panel. Voici un guide détaillé pour accomplir cela en utilisant la bibliothèque PdfiumViewer.
Ajoutez un FlowLayoutPanel à votre formulaire :
True
Fill
Ajoutez également un bouton pour charger le fichier PDF :
btnLoadPDF
.Voici le code complet pour charger un fichier PDF et afficher les miniatures de toutes les pages dans un FlowLayoutPanel.
Imports PdfiumViewer
Imports System.Drawing
Public Class Form1
Private Sub btnLoadPDF_Click(sender As Object, e As EventArgs) Handles btnLoadPDF.Click
' Boîte de dialogue pour sélectionner un fichier PDF
Dim openFileDialog As New OpenFileDialog()
openFileDialog.Filter = "Fichiers PDF (*.pdf)|*.pdf"
If openFileDialog.ShowDialog() = DialogResult.OK Then
Dim pdfPath As String = openFileDialog.FileName
' Afficher les miniatures dans le FlowLayoutPanel
DisplayPDFThumbnails(pdfPath)
End If
End Sub
' Fonction pour afficher les miniatures des pages PDF
Private Sub DisplayPDFThumbnails(pdfPath As String)
' Effacer les miniatures existantes
FlowLayoutPanel1.Controls.Clear()
Try
' Charger le PDF
Using pdfDocument As PdfDocument = PdfDocument.Load(pdfPath)
Dim pageCount As Integer = pdfDocument.PageCount
' Générer des miniatures pour chaque page
For pageIndex As Integer = 0 To pageCount - 1
Dim thumbnail As Image = pdfDocument.Render(pageIndex, 150, 150, PdfRenderFlags.Annotations)
' Créer un PictureBox pour afficher la miniature
Dim pictureBox As New PictureBox()
pictureBox.Image = thumbnail
pictureBox.SizeMode = PictureBoxSizeMode.Zoom
pictureBox.Width = 150
pictureBox.Height = 150
pictureBox.Margin = New Padding(5)
' Ajouter un événement Click pour afficher une grande version si nécessaire
AddHandler pictureBox.Click, Sub() ShowLargeImage(thumbnail)
' Ajouter la miniature au FlowLayoutPanel
FlowLayoutPanel1.Controls.Add(pictureBox)
Next
End Using
Catch ex As Exception
MessageBox.Show("Erreur : " & ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
' Fonction pour afficher une image en taille réelle (facultatif)
Private Sub ShowLargeImage(image As Image)
Dim previewForm As New Form()
Dim pictureBox As New PictureBox()
pictureBox.Image = image
pictureBox.Dock = DockStyle.Fill
pictureBox.SizeMode = PictureBoxSizeMode.Zoom
previewForm.Controls.Add(pictureBox)
previewForm.StartPosition = FormStartPosition.CenterScreen
previewForm.Size = New Size(800, 600)
previewForm.ShowDialog()
End Sub
End Class
OpenFileDialog
permet à l’utilisateur de sélectionner un fichier PDF.PdfiumViewer.PdfDocument.Load
.pdfDocument.Render
convertit chaque page en une image miniature. pageIndex
: L’index de la page (commence à 0).width
et height
: Dimensions de la miniature.PdfRenderFlags.Annotations
: Active l’affichage des annotations.PictureBox
.FlowLayoutPanel
permet de disposer automatiquement les PictureBox
.Changez les dimensions dans la méthode Render
:
Dim thumbnail As Image = pdfDocument.Render(pageIndex, 200, 200, PdfRenderFlags.Annotations)
Si vous voulez afficher uniquement les 5 premières pages, utilisez :
For pageIndex As Integer = 0 To Math.Min(pageCount - 1, 4)
Vous pouvez enregistrer chaque miniature au format PNG ou JPEG :
thumbnail.Save($"C:\Chemin\Miniature_Page{pageIndex + 1}.png", Imaging.ImageFormat.Png)
Render
.Lorsque vous exécutez le programme :
La tenue de registres est une méthode essentielle pour organiser et gérer des informations de…
La critique littéraire est une approche qui consiste à analyser, interpréter et évaluer un texte…
La méthode de lecture Paul et Suzanne est une méthode syllabique qui repose sur un…
La logistique est le moteur silencieux derrière la réussite de tout événement ou projet. Bien…
La résolution de problèmes est une compétence essentielle dans divers contextes professionnels et personnels. Ce…
Le problème des files d’attente est courant dans de nombreux domaines (services clients, production, logistique)…
This website uses cookies.