-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathForm1.vb
53 lines (45 loc) · 2.1 KB
/
Form1.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Imports System
Imports System.Collections.Generic
Imports System.IO
Imports System.Windows.Forms
Namespace FilesPreviewGenerator
Public Partial Class Form1
Inherits Form
Private files As List(Of FileInfo)
Public Sub New()
InitializeComponent()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
InitData()
gridControl1.DataSource = files
InitViewSettings()
AddHandler winExplorerView1.GetThumbnailImage, AddressOf WinExplorerView_GetThumbnailImage
End Sub
Private Sub InitData()
files = New List(Of FileInfo)()
Dim fileNames As String() = Directory.GetFiles("Documents\")
For Each item As String In fileNames
files.Add(New FileInfo(item, Path.GetFileName(item), Path.GetExtension(item)))
Next
End Sub
Private Sub InitViewSettings()
winExplorerView1.OptionsImageLoad.CacheThumbnails = True
winExplorerView1.OptionsImageLoad.LoadThumbnailImagesFromDataSource = False
winExplorerView1.OptionsImageLoad.AsyncLoad = True
winExplorerView1.OptionsView.Style = DevExpress.XtraGrid.Views.WinExplorer.WinExplorerViewStyle.ExtraLarge
End Sub
Private Sub WinExplorerView_GetThumbnailImage(ByVal sender As Object, ByVal e As DevExpress.Utils.ThumbnailImageEventArgs)
Dim filePath As String = files(e.DataSourceIndex).Path
Dim documentFormat As String = files(e.DataSourceIndex).DocumentFormat
Select Case documentFormat
Case ".pdf"
Dim largestEdgeLength As Integer = Math.Max(e.DesiredThumbnailSize.Width, e.DesiredThumbnailSize.Height)
e.ThumbnailImage = GenerateImageFromPDF(filePath, largestEdgeLength)
Case ".xlsx"
e.ThumbnailImage = GenerateImageFromExcel(filePath)
Case ".docx"
e.ThumbnailImage = GenerateImageFromWord(filePath)
End Select
End Sub
End Class
End Namespace