-
Notifications
You must be signed in to change notification settings - Fork 0
/
ImageExporterHelper.vb
53 lines (47 loc) · 2.21 KB
/
ImageExporterHelper.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 DevExpress.Office.Utils
Imports DevExpress.Pdf
Imports DevExpress.Spreadsheet
Imports DevExpress.XtraPrinting
Imports DevExpress.XtraPrintingLinks
Imports DevExpress.XtraRichEdit
Imports System.Drawing
Imports System.IO
Namespace FilesPreviewGenerator
Public Module ImageExporterHelper
Public Function GenerateImageFromExcel(ByVal fileName As String) As Image
Using excelDocumentAPI As Workbook = New Workbook()
excelDocumentAPI.LoadDocument(fileName)
Dim worksheet = excelDocumentAPI.Worksheets.ActiveWorksheet
Dim printableCellRange = worksheet.GetPrintableRange()
Dim docImage As OfficeImage = printableCellRange.ExportToImage()
Return docImage.NativeImage
End Using
End Function
Public Function GenerateImageFromPDF(ByVal fileName As String, ByVal largestEdgeLength As Integer) As Bitmap
Using pdfDocumentAPI As PdfDocumentProcessor = New PdfDocumentProcessor()
pdfDocumentAPI.LoadDocument(fileName)
Return pdfDocumentAPI.CreateBitmap(1, largestEdgeLength)
End Using
End Function
Public Function GenerateImageFromWord(ByVal fileName As String) As Bitmap
Using wordDocumentAPI As RichEditDocumentServer = New RichEditDocumentServer()
wordDocumentAPI.LoadDocument(fileName)
Return ExportToImage(wordDocumentAPI)
End Using
End Function
Private Function ExportToImage(ByVal component As IBasePrintable) As Bitmap
Dim pLink As PrintableComponentLinkBase = New PrintableComponentLinkBase(New PrintingSystemBase())
pLink.Component = component
pLink.CreateDocument(True)
Dim mStream As MemoryStream = New MemoryStream()
Dim options As ImageExportOptions = New ImageExportOptions()
options.ExportMode = ImageExportMode.SingleFilePageByPage
options.PageRange = "1"
pLink.ExportToImage(mStream, options)
mStream.Position = 0
Dim bm As Bitmap = New Bitmap(mStream)
mStream.Close()
Return bm
End Function
End Module
End Namespace