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

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