You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
403 lines
15 KiB
403 lines
15 KiB
Imports System.Windows.Forms
|
|
Imports System.Drawing
|
|
|
|
|
|
Class ThumbViewer
|
|
Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
|
|
Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
|
|
Private Const WM_SYSCOMMAND As Integer = 274
|
|
Private Const SC_MAXIMIZE As Integer = 61488
|
|
|
|
Private myImageList As System.Windows.Forms.ImageList = New ImageList()
|
|
Private myImageListSmall As System.Windows.Forms.ImageList = New ImageList()
|
|
Private myImageListLarge As System.Windows.Forms.ImageList = New ImageList()
|
|
Private count As Integer = 0
|
|
Private DefaultSplitsize As Integer
|
|
Dim m_data As DataTable
|
|
Dim d As New clsDok
|
|
|
|
Property Data As DataTable
|
|
Get
|
|
Return m_data
|
|
End Get
|
|
Set(value As DataTable)
|
|
|
|
m_data = value
|
|
Try
|
|
AddImages()
|
|
large_images()
|
|
Catch
|
|
End Try
|
|
End Set
|
|
End Property
|
|
|
|
Dim m_previewfilename As String
|
|
Property PreviewFilename As String
|
|
Get
|
|
Return m_previewfilename
|
|
End Get
|
|
Set(value As String)
|
|
m_previewfilename = value
|
|
End Set
|
|
End Property
|
|
|
|
Sub New()
|
|
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
myImageList.ImageSize = New Size(50, 50)
|
|
myImageListSmall.ImageSize = New Size(32, 32)
|
|
myImageListLarge.ImageSize = New Size(80, 80)
|
|
Me.TrackBar1.Minimum = 20
|
|
Me.TrackBar1.Maximum = 256
|
|
Me.TrackBar1.Value = 80
|
|
Me.DefaultSplitsize = Me.SplitContainer1.SplitterDistance
|
|
|
|
End Sub
|
|
Public Function AddImage(ByVal imagefile As Object, ByVal name As String, ByVal key As Integer)
|
|
Dim img As System.Drawing.Image
|
|
img = GetImagefromDB(imagefile)
|
|
myImageList.Images.Add(img)
|
|
myImageListSmall.Images.Add(img)
|
|
myImageListLarge.Images.Add(img)
|
|
ListView1.LargeImageList = myImageListLarge
|
|
Dim lvitem As New ListViewItem
|
|
lvitem.ImageIndex = count
|
|
lvitem.Text = name
|
|
lvitem.Tag = key
|
|
ListView1.Items.Add(lvitem)
|
|
count += 1
|
|
End Function
|
|
|
|
Public Function AddImages()
|
|
Me.ListView1.Items.Clear()
|
|
For Each r As DataRow In Me.Data.Rows
|
|
Try
|
|
Dim ext As String
|
|
ext = UCase(System.IO.Path.GetExtension(r("pfad")))
|
|
Dim img As System.Drawing.Image
|
|
Select Case ext
|
|
Case ".PDF"
|
|
img = Me.ImageList1.Images(0)
|
|
Case ".MSG"
|
|
img = Me.ImageList1.Images(3)
|
|
Case ".DOCX", ".DOCM", ".DOC", ".DOC"
|
|
img = Me.ImageList1.Images(1)
|
|
Case ".XLSX", "XLSM", ".XLS", "XLM"
|
|
img = Me.ImageList1.Images(2)
|
|
Case ".TIF", ".TIFF", ".JPG", ".PNG", ".BMP"
|
|
img = GetImagefromDB(r.Item("dokumentfile"))
|
|
Case Else
|
|
img = Me.ImageList1.Images(5)
|
|
End Select
|
|
myImageList.Images.Add(img)
|
|
myImageListSmall.Images.Add(img)
|
|
myImageListLarge.Images.Add(img)
|
|
ListView1.LargeImageList = myImageListLarge
|
|
Dim lvitem As New ListViewItem
|
|
lvitem.ImageIndex = count
|
|
lvitem.Text = r.Item("bezeichnung")
|
|
lvitem.Tag = r.Item(0)
|
|
lvitem.ToolTipText = ext
|
|
ListView1.Items.Add(lvitem)
|
|
count += 1
|
|
Catch
|
|
End Try
|
|
Next
|
|
End Function
|
|
|
|
Public Function GetImagefromDB(ByVal imgfield As Object) As Image
|
|
Dim IMGC As New ImageConverter
|
|
Dim IMGPIC As Image = CType(IMGC.ConvertFrom(imgfield), Image)
|
|
Return IMGPIC
|
|
End Function
|
|
|
|
Dim InitLIst As Boolean = False
|
|
Public Function SearchItem(ByVal Key As Integer)
|
|
Dim i As Integer = 0
|
|
InitLIst = True
|
|
For Each item As ListViewItem In Me.ListView1.Items
|
|
item.Focused = False
|
|
item.Selected = False
|
|
Next
|
|
InitLIst = False
|
|
For Each item As ListViewItem In Me.ListView1.Items
|
|
item.Focused = False
|
|
item.Selected = False
|
|
|
|
If item.Tag = Key Then
|
|
item.Focused = True
|
|
item.Selected = True
|
|
'Me.ListView1.Items(i).Focused = True
|
|
'Me.ListView1.Items(i).Selected = True
|
|
|
|
End If
|
|
i = i + 1
|
|
Next
|
|
End Function
|
|
|
|
Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged
|
|
If InitLIst Then Exit Sub
|
|
Try
|
|
Dim key As Integer
|
|
key = ListView1.FocusedItem.Tag
|
|
Dim previewfilename As String = ""
|
|
If Globals.PreViewDir = "" Then
|
|
Dim db As New clsDB
|
|
db.Get_Tabledata("dms", "", "Select * from dms_Settings where nreintrag=6")
|
|
Globals.PreViewDir = db.dsDaten.Tables(0).Rows(0).Item(2)
|
|
If Not System.IO.Directory.Exists(Globals.PreViewDir) Then
|
|
System.IO.Directory.CreateDirectory(Globals.PreViewDir)
|
|
End If
|
|
End If
|
|
Dim txt As String
|
|
txt = ListView1.FocusedItem.ToolTipText
|
|
Select Case txt
|
|
Case ".PDF"
|
|
previewfilename = d.Get_Dokument(key, Globals.PreViewDir, True, True)
|
|
Me.KpImageViewer1.Visible = False
|
|
Me.grpdokumentvorschau.Visible = False
|
|
Me.grpdokumentvorschaupdf.Visible = True
|
|
Me.GrpDokumentvorschauMail.Visible = False
|
|
Me.grpdokumentvorschaupdf.Dock = DockStyle.Fill
|
|
Try
|
|
Me.WebBrowser2.Navigate(previewfilename)
|
|
Catch
|
|
End Try
|
|
Me.pdfViewerControl1.RenderingEngine = Syncfusion.Windows.Forms.PdfViewer.PdfRenderingEngine.Pdfium
|
|
Me.pdfViewerControl1.ReferencePath = Application.StartupPath + ""
|
|
'Me.pdfViewerControl1.Load(previewfilename)
|
|
Dim p As System.Diagnostics.Process
|
|
''Me.ppdf.Dock = DockStyle.Fill
|
|
'p = Process.Start(previewfilename)
|
|
'p.WaitForInputIdle()
|
|
'SetParent(p.MainWindowHandle, ppdf.Handle)
|
|
'SendMessage(p.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0)
|
|
|
|
Case ".MSG"
|
|
Me.KpImageViewer1.Visible = False
|
|
Me.grpdokumentvorschaupdf.Visible = False
|
|
Me.grpdokumentvorschau.Visible = False
|
|
Me.GrpDokumentvorschauMail.Visible = True
|
|
Me.GrpDokumentvorschauMail.Dock = DockStyle.Fill
|
|
|
|
previewfilename = d.Get_Dokument(key, Globals.PreViewDir, True, True)
|
|
Dim msgreader As New MsgReader.Reader
|
|
Dim files = msgreader.ExtractToFolder(previewfilename, Globals.PreViewDir)
|
|
Dim err = msgreader.GetErrorMessage
|
|
webBrowser1.Navigate(files(0))
|
|
Case ".TIF", ".TIFF", ".JPG", ".PNG", ".BMP"
|
|
Me.KpImageViewer1.Visible = True
|
|
Me.grpdokumentvorschaupdf.Visible = False
|
|
Me.grpdokumentvorschau.Visible = False
|
|
Me.GrpDokumentvorschauMail.Visible = False
|
|
|
|
Me.KpImageViewer1.Dock = DockStyle.Fill
|
|
'Me.KpImageViewer1.DoResize()
|
|
|
|
For Each r As DataRow In Data.Rows
|
|
If r.Item(0) = key Then
|
|
Me.KpImageViewer1.Image = GetImagefromDB(r.Item("dokumentfile"))
|
|
End If
|
|
Next
|
|
Case Else
|
|
previewfilename = d.Get_Dokument(key, Globals.PreViewDir, True, True)
|
|
Me.KpImageViewer1.Visible = False
|
|
Me.grpdokumentvorschaupdf.Visible = False
|
|
Me.grpdokumentvorschau.Visible = True
|
|
Me.GrpDokumentvorschauMail.Visible = False
|
|
Me.grpdokumentvorschau.Dock = DockStyle.Fill
|
|
|
|
Try
|
|
'Threading.Thread.CurrentThread.Sleep(1000)
|
|
Try
|
|
DocumentViewer1.CloseDocument()
|
|
Catch
|
|
End Try
|
|
Try
|
|
Me.DocumentViewer1.LoadDocument(previewfilename)
|
|
Catch
|
|
End Try
|
|
|
|
Catch es As Gnostice.Core.XDocException
|
|
End Try
|
|
End Select
|
|
Catch
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
|
|
large_images()
|
|
Me.TrackBar1.Visible = True
|
|
End Sub
|
|
|
|
Public Sub large_images()
|
|
|
|
Dim imglst As New ImageList
|
|
|
|
imglst.ImageSize = New Size(Me.TrackBar1.Value, Me.TrackBar1.Value)
|
|
imglst.Images.Clear()
|
|
|
|
For n As Int32 = 0 To myImageListLarge.Images.Count - 1
|
|
imglst.Images.Add(myImageListLarge.Images(n))
|
|
Next
|
|
ListView1.LargeImageList = imglst
|
|
ListView1.View = View.LargeIcon
|
|
End Sub
|
|
|
|
Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click
|
|
ListView1.SmallImageList = myImageListSmall
|
|
ListView1.View = View.SmallIcon
|
|
End Sub
|
|
|
|
Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click
|
|
ListView1.View = View.List
|
|
End Sub
|
|
|
|
Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll
|
|
large_images()
|
|
End Sub
|
|
|
|
Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles ToolStripButton4.Click
|
|
If Me.SplitContainer1.Panel2.Visible Then
|
|
Me.SplitContainer1.Panel2.Visible = False
|
|
Me.DefaultSplitsize = Me.SplitContainer1.Panel1.Width
|
|
Me.SplitContainer1.SplitterDistance = Me.SplitContainer1.Width
|
|
Else
|
|
Me.SplitContainer1.Panel2.Visible = True
|
|
Me.SplitContainer1.SplitterDistance = DefaultSplitsize
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub KpImageViewer1_Load(sender As Object, e As EventArgs)
|
|
|
|
End Sub
|
|
|
|
#Region "Gnostic"
|
|
Private Sub tsActSize_Click(sender As Object, e As EventArgs) Handles tsActSize.Click
|
|
If DocumentViewer1.IsDocumentLoaded Then
|
|
DocumentViewer1.Zoom.ZoomMode = Gnostice.Documents.Controls.WinForms.ZoomMode.ActualSize
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub tsFitPage_Click(sender As Object, e As EventArgs) Handles tsFitPage.Click
|
|
If DocumentViewer1.IsDocumentLoaded Then
|
|
DocumentViewer1.Zoom.ZoomMode = Gnostice.Documents.Controls.WinForms.ZoomMode.FitPage
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub tsFitWidth_Click(sender As Object, e As EventArgs) Handles tsFitWidth.Click
|
|
If DocumentViewer1.IsDocumentLoaded Then
|
|
DocumentViewer1.Zoom.ZoomMode = Gnostice.Documents.Controls.WinForms.ZoomMode.FitWidth
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub tsZoomOut_Click(sender As Object, e As EventArgs) Handles tsZoomOut.Click
|
|
If DocumentViewer1.IsDocumentLoaded Then
|
|
DocumentViewer1.ZoomOut()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub tsZoomIn_Click(sender As Object, e As EventArgs) Handles tsZoomIn.Click
|
|
If DocumentViewer1.IsDocumentLoaded Then
|
|
DocumentViewer1.ZoomIn()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnFirstPage_Click(sender As Object, e As EventArgs) Handles btnFirstPage.Click
|
|
If DocumentViewer1.IsDocumentLoaded Then
|
|
DocumentViewer1.FirstPage()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnPrvPage_Click(sender As Object, e As EventArgs) Handles btnPrvPage.Click
|
|
If DocumentViewer1.IsDocumentLoaded Then
|
|
DocumentViewer1.PreviousPage()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnNxtPage_Click(sender As Object, e As EventArgs) Handles btnNxtPage.Click
|
|
If DocumentViewer1.IsDocumentLoaded Then
|
|
DocumentViewer1.NextPage()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnLastPage_Click(sender As Object, e As EventArgs) Handles btnLastPage.Click
|
|
If DocumentViewer1.IsDocumentLoaded Then
|
|
DocumentViewer1.LastPage()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ToolStripButton5_Click(sender As Object, e As EventArgs) Handles ToolStripButton5.Click
|
|
DocumentViewer1.RotatePagesAntiClockwise90()
|
|
End Sub
|
|
|
|
Private Sub ToolStripButton6_Click(sender As Object, e As EventArgs) Handles ToolStripButton6.Click
|
|
DocumentViewer1.RotatePagesClockwise90()
|
|
End Sub
|
|
|
|
Private Sub txtGoToPage_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles txtGoToPage.KeyDown
|
|
Select Case e.KeyCode
|
|
|
|
Case Keys.NumPad0, Keys.NumPad1, Keys.NumPad2, Keys.NumPad3, Keys.NumPad4, Keys.NumPad5,
|
|
Keys.NumPad6, Keys.NumPad7, Keys.NumPad8, Keys.NumPad9, Keys.Delete, Keys.[End],
|
|
Keys.Home, Keys.Down, Keys.Up, Keys.Left, Keys.Right, Keys.Back
|
|
e.SuppressKeyPress = False
|
|
Exit Select
|
|
|
|
Case Keys.D0, Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5,
|
|
Keys.D6, Keys.D7, Keys.D8, Keys.D9
|
|
If e.Shift Then
|
|
e.SuppressKeyPress = True
|
|
Else
|
|
e.SuppressKeyPress = False
|
|
End If
|
|
Exit Select
|
|
|
|
Case Keys.Enter
|
|
e.SuppressKeyPress = False
|
|
If txtGoToPage.Text.Trim() <> "" Then
|
|
DocumentViewer1.GoToPage(Convert.ToInt32(txtGoToPage.Text))
|
|
End If
|
|
Exit Select
|
|
Case Else
|
|
|
|
e.SuppressKeyPress = True
|
|
Exit Select
|
|
End Select
|
|
|
|
End Sub
|
|
Private Sub txtZoom_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles txtZoom.KeyDown
|
|
Select Case e.KeyCode
|
|
|
|
Case Keys.NumPad0, Keys.NumPad1, Keys.NumPad2, Keys.NumPad3, Keys.NumPad4, Keys.NumPad5,
|
|
Keys.NumPad6, Keys.NumPad7, Keys.NumPad8, Keys.NumPad9, Keys.Delete, Keys.[End],
|
|
Keys.Home, Keys.Down, Keys.Up, Keys.Left, Keys.Right, Keys.Back
|
|
e.SuppressKeyPress = False
|
|
Exit Select
|
|
|
|
Case Keys.D0, Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5,
|
|
Keys.D6, Keys.D7, Keys.D8, Keys.D9
|
|
If e.Shift Then
|
|
e.SuppressKeyPress = True
|
|
Else
|
|
e.SuppressKeyPress = False
|
|
End If
|
|
Exit Select
|
|
|
|
Case Keys.Enter
|
|
e.SuppressKeyPress = False
|
|
DocumentViewer1.Zoom.ZoomPercent = Double.Parse(txtZoom.Text)
|
|
Exit Select
|
|
Case Else
|
|
|
|
e.SuppressKeyPress = True
|
|
Exit Select
|
|
End Select
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
End Class
|