Initial commit
This commit is contained in:
342
EDOKA_Toolset/clspdf/clspdfview.vb
Normal file
342
EDOKA_Toolset/clspdf/clspdfview.vb
Normal file
@@ -0,0 +1,342 @@
|
||||
Imports System.ComponentModel
|
||||
|
||||
Public Enum PDFLayoutMode
|
||||
DontCare ' Layout laut Dokumentvorgabe
|
||||
SinglePage ' einzelne Seite
|
||||
OneColumn ' fortlaufende Seite
|
||||
TwoColumnLeft ' fortlaufende Doppelseiten , ungerade Seiten links
|
||||
TwoColumnRight ' fortlaufende Doppelseiten , ungerade Seiten rechts
|
||||
End Enum
|
||||
|
||||
Public Enum PDFPageMode
|
||||
none ' Default-Ansicht
|
||||
bookmarks ' Ansicht Lesezeichen
|
||||
thumbs ' Ansicht Miniaturansicht
|
||||
End Enum
|
||||
|
||||
Public Enum PDFViewMode
|
||||
Fit ' Komplette Seite passt vollständig ins bereitgestellte Objekt
|
||||
FitV ' Seitenhöhe (Vertikale) passt vollständig ins Objekt
|
||||
FitH ' Seitenbreite (Horizontale) passt vollständig ins Objekt
|
||||
FitB ' Dokumentrahmen ("Bounding Box") passt vollständig ins Objekt
|
||||
FitBV ' Dokumentrahmenhöhe (Vertikale) passt vollständig ins Objekt
|
||||
FITBH ' Dokumentrahmenbreite (Horizontale) passt vollständig ins Objekt
|
||||
End Enum
|
||||
|
||||
|
||||
|
||||
Public Class clspdfview
|
||||
Inherits UserControl
|
||||
|
||||
Private m_PDFHost As PDFHost
|
||||
Private m_isInitialized As Boolean = False
|
||||
Private m_ShowToolBar As Boolean = True
|
||||
Private m_ShowScrollBars As Boolean = True
|
||||
Private m_LayoutMode As PDFLayoutMode = PDFLayoutMode.DontCare
|
||||
Private m_PageMode As PDFPageMode = PDFPageMode.none
|
||||
Private m_ViewMode As PDFViewMode = PDFViewMode.Fit
|
||||
|
||||
|
||||
#Region "Host Helper Class"
|
||||
''' <summary>
|
||||
''' Helper Class
|
||||
''' </summary>
|
||||
''' <remarks>
|
||||
''' Diese private Klasse hostet das Acrobat ActiveX Control,
|
||||
''' so dass es in das UserControl eingefügt werden kann.
|
||||
''' </remarks>
|
||||
Private Class PDFHost
|
||||
Inherits AxHost
|
||||
|
||||
''' <summary>
|
||||
''' Initialisiert den Host
|
||||
''' </summary>
|
||||
Public Sub New(ByVal sCLSID As String)
|
||||
MyBase.New(sCLSID)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Gibt ein Objekt-Verweis auf das ActiveX Control zurück
|
||||
''' </summary>
|
||||
Public ReadOnly Property Viewer() As Object
|
||||
Get
|
||||
Try
|
||||
Return Me.GetOcx
|
||||
Catch ex As Exception
|
||||
Return Nothing
|
||||
End Try
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Gibt sämtliche von der Componente verwendeten Ressourcen frei.
|
||||
''' </summary>
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
If Me.Viewer IsNot Nothing Then
|
||||
Me.Viewer.Dipose()
|
||||
End If
|
||||
MyBase.Dispose(disposing)
|
||||
End Sub
|
||||
End Class
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "Initialisierungen"
|
||||
''' <summary>
|
||||
''' Initialisiert das UserControl
|
||||
''' </summary>
|
||||
Public Sub New()
|
||||
MyBase.New()
|
||||
Me.InitializeComponent()
|
||||
End Sub
|
||||
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
If m_isInitialized Then
|
||||
m_PDFHost.Dispose()
|
||||
End If
|
||||
MyBase.Dispose(disposing)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Initialisiert die Komponente.
|
||||
''' </summary>
|
||||
''' <remarks>
|
||||
''' Über Late Binding wird versucht, eine Instanz des Acrobat Readers
|
||||
''' zu erzeugen. Auf dem Zielsystem muss der Reader in der Version 7
|
||||
''' oder höher installiert sein. Ist dies nicht der Fall, wird eine
|
||||
''' Fehlermeldung ausgegeben.
|
||||
''' </remarks>
|
||||
Private Sub InitializeComponent()
|
||||
Dim t As Type = Type.GetTypeFromProgID("AcroPDF.PDF")
|
||||
If t IsNot Nothing Then
|
||||
m_PDFHost = New PDFHost(t.GUID.ToString)
|
||||
DirectCast((m_PDFHost), ISupportInitialize).BeginInit()
|
||||
SuspendLayout()
|
||||
m_PDFHost.TabIndex = 0
|
||||
m_PDFHost.Visible = True
|
||||
m_PDFHost.Name = "PDFHost"
|
||||
m_PDFHost.Dock = DockStyle.Fill
|
||||
Controls.Add(m_PDFHost)
|
||||
DirectCast((m_PDFHost), ISupportInitialize).EndInit()
|
||||
ResumeLayout(False)
|
||||
PerformLayout()
|
||||
m_isInitialized = True
|
||||
Else
|
||||
m_isInitialized = False
|
||||
MessageBox.Show("Der Acrobat Reader Version 7 oder höher konnte nicht initialisiert werden." _
|
||||
& vbCrLf & "Bitte installieren Sie den Acrobat Reader in der Version 7 oder höher." _
|
||||
, "Überprüfung Acrobat Reader", MessageBoxButtons.OK, MessageBoxIcon.Error)
|
||||
End If
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "Properties"
|
||||
''' <summary>
|
||||
''' Die Eigenschaft liefert True zurück, wenn der Acrobat Reader
|
||||
''' initialisiert wurde, anderenfalls False.
|
||||
''' </summary>
|
||||
<Browsable(False)> _
|
||||
Public ReadOnly Property isInitialized() As Boolean
|
||||
Get
|
||||
Return m_isInitialized
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Legt den Layout Modus für das PDF-Dokument fest, oder liest diese aus.
|
||||
''' </summary>
|
||||
<Description("Legt den Layout Modus für das PDF-Dokument fest, oder liest diese aus."), _
|
||||
Category("Darstellung"), _
|
||||
DefaultValue(GetType(PDFLayoutMode), "DontCare")> _
|
||||
Public Property LayoutMode() As PDFLayoutMode
|
||||
Get
|
||||
Return m_LayoutMode
|
||||
End Get
|
||||
Set(ByVal value As PDFLayoutMode)
|
||||
m_LayoutMode = value
|
||||
Try
|
||||
m_PDFHost.Viewer.setLayoutMode(m_LayoutMode.ToString)
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Set
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Legt den Modus für die Seitendarstellung fest,oder liest diese aus.
|
||||
''' </summary>
|
||||
<Description("Legt den Modus für die Seitendarstellung fest,oder liest diese aus."), _
|
||||
Category("Darstellung"), _
|
||||
DefaultValue(GetType(PDFPageMode), "none")> _
|
||||
Public Property PageMode() As PDFPageMode
|
||||
Get
|
||||
Return m_PageMode
|
||||
End Get
|
||||
Set(ByVal value As PDFPageMode)
|
||||
m_PageMode = value
|
||||
Try
|
||||
m_PDFHost.Viewer.setPageMode(m_PageMode.ToString)
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Set
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Bestimmt, ob die ToolBar angezeigt werden soll.
|
||||
''' </summary>
|
||||
<Description("Bestimmt, ob die ToolBar angezeigt werden soll."), _
|
||||
Category("Layout"), _
|
||||
DefaultValue(True)> _
|
||||
Public Property ShowToolBar() As Boolean
|
||||
Get
|
||||
Return m_ShowToolBar
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
m_ShowToolBar = value
|
||||
Try
|
||||
m_PDFHost.Viewer.setShowToolbar(value)
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Set
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Bestimmt, ob die ScrollBars angezeigt werden sollen.
|
||||
''' </summary>
|
||||
<Description("Bestimmt, ob die ScrollBars angezeigt werden sollen."), _
|
||||
Category("Layout"), _
|
||||
DefaultValue(True)> _
|
||||
Public Property ShowScrollBars() As Boolean
|
||||
Get
|
||||
Return m_ShowScrollBars
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
m_ShowScrollBars = value
|
||||
Try
|
||||
m_PDFHost.Viewer.setShowScrollbars(value)
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Set
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Legt den Modus für die Seiteneinpassung fest, oder liest diese aus.
|
||||
''' </summary>
|
||||
<Description("Legt den Modus für die Seiteneinpassung fest, oder liest diese aus."), _
|
||||
Category("Darstellung"), _
|
||||
DefaultValue(GetType(PDFViewMode), "Fit")> _
|
||||
Public Property ViewMode() As PDFViewMode
|
||||
Get
|
||||
Return m_ViewMode
|
||||
End Get
|
||||
Set(ByVal value As PDFViewMode)
|
||||
m_ViewMode = value
|
||||
Try
|
||||
m_PDFHost.Viewer.setView(m_ViewMode.ToString)
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Set
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "Methoden"
|
||||
''' <summary>
|
||||
''' Geht im Undo-Buffer zur vorherigen Ansicht.
|
||||
''' </summary>
|
||||
Public Sub GoBackward()
|
||||
Try
|
||||
m_PDFHost.Viewer.GoBackwardStack()
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Sub GoForward()
|
||||
Try
|
||||
m_PDFHost.Viewer.GoForwardStack()
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Sub GotoPage(ByVal PageNumber As Integer)
|
||||
Try
|
||||
m_PDFHost.Viewer.setCurrentPage(PageNumber)
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Sub GotoFirstPage()
|
||||
Try
|
||||
m_PDFHost.Viewer.GotoFirstPage()
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Sub GotoLastPage()
|
||||
Try
|
||||
m_PDFHost.Viewer.GotoLastPage()
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Sub GotoNextPage()
|
||||
Try
|
||||
m_PDFHost.Viewer.GotoNextPage()
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Sub GotoPreviousPage()
|
||||
Try
|
||||
m_PDFHost.Viewer.GotoPreviousPage()
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Function LoadFile(ByVal FileName As String) As Boolean
|
||||
Try
|
||||
Dim b As Boolean = m_PDFHost.Viewer.LoadFile(FileName)
|
||||
If b Then
|
||||
Me.ShowToolBar = m_ShowToolBar
|
||||
Me.ShowScrollBars = m_ShowScrollBars
|
||||
Me.LayoutMode = m_LayoutMode
|
||||
Me.PageMode = m_PageMode
|
||||
Me.ViewMode = m_ViewMode
|
||||
End If
|
||||
Return b
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Sub PrintWithDialog()
|
||||
Try
|
||||
m_PDFHost.Viewer.PrintWithDialog()
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Sub Zoom(ByVal Percent As Single)
|
||||
Try
|
||||
m_PDFHost.Viewer.setZoom(Percent)
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user