PDF阅读器控件,这款控件是基于MoonPdfLib.dll的自定义控件,目前有个小bug就是pdf需要使用适合宽度模式才能使用鼠标,往下滚到下一页.最近比较忙,就没时间搞了,希望有空闲的网友修复一下
具体内容见附件
https://vbee.lanzous.com/i1wyIndviyj
Imports System.ComponentModel
Public Class PDF浏览器
Private ishide As Boolean = False
''' <summary>
''' 是否隐藏工具栏
''' </summary>
''' <returns></returns>
<Category("固有属性"), Description("是否隐藏工具栏"), Browsable(True)>
Public Property Hide_tool() As Boolean
Get
Return ishide
End Get
Set
If Value Then
Tool_pdfview.Hide()
Else
Tool_pdfview.Show()
End If
ishide = Value
End Set
End Property
Private isopen As Boolean = False
Private pdfctrl As MoonPdfLib.MoonPdfPanel
Public Sub New()
InitializeComponent()
pdfctrl = New MoonPdfLib.MoonPdfPanel
PDF浏览控件.Child = pdfctrl
''-----------
Lab_author.Text = "作者QQ:463550067"
End Sub
Private Sub PDF浏览器_Load(sender As Object, e As EventArgs) Handles MyBase.Load
isopen = False
End Sub
''' <summary>
''' 打开PDF文件
''' </summary>
''' <param name="path">路径</param>
''' <param name="password">密码</param>
Public Sub LoadPdfFile(path As String, Optional password As String = Nothing)
Try
If IO.File.Exists(path) Then
pdfctrl.OpenFile(path, password)
pdfctrl.Zoom(1)
pdfctrl.ZoomToHeight()
Lab_pages.Text = "/ " & pdfctrl.TotalPages()
isopen = True
Else
isopen = False
MessageBox.Show("文件不存在", "")
End If
Catch ex As Exception
isopen = False
MessageBox.Show(ex.Message, "")
End Try
End Sub
Private Sub Bt_打开文件_Click(sender As Object, e As EventArgs) Handles Bt_打开文件.Click
OpenFile_pdfctrl.DefaultExt = "pdf"
OpenFile_pdfctrl.Filter = "PDF文件|*.pdf"
OpenFile_pdfctrl.Title = "请选择一个PDF文件"
If OpenFile_pdfctrl.ShowDialog = DialogResult.OK Then
Dim p As String = OpenFile_pdfctrl.FileName
LoadPdfFile(p)
End If
End Sub
Private Sub Bt_放大_Click(sender As Object, e As EventArgs) Handles Bt_放大.Click
If isopen Then
pdfctrl.ZoomIn()
End If
End Sub
Private Sub Bt_缩小_Click(sender As Object, e As EventArgs) Handles Bt_缩小.Click
If isopen Then
pdfctrl.ZoomOut()
End If
End Sub
Private Sub Bt_适合高度_Click(sender As Object, e As EventArgs) Handles Bt_适合高度.Click
If isopen Then
pdfctrl.ZoomToHeight()
End If
End Sub
Private Sub Bt_适合宽度_Click(sender As Object, e As EventArgs) Handles Bt_适合宽度.Click
If isopen Then
pdfctrl.ZoomToWidth()
End If
End Sub
Private Sub Bt_单双页_Click(sender As Object, e As EventArgs) Handles Bt_单双页.Click
If isopen Then
If pdfctrl.ViewType = MoonPdfLib.ViewType.SinglePage Then
pdfctrl.ViewType = MoonPdfLib.ViewType.Facing
Else
pdfctrl.ViewType = MoonPdfLib.ViewType.SinglePage
End If
If pdfctrl.TotalPages() > 1 Then
pdfctrl.ZoomToWidth()
End If
End If
End Sub
Private Sub Bt_左旋转_Click(sender As Object, e As EventArgs) Handles Bt_左旋转.Click
If isopen Then
pdfctrl.RotateLeft()
End If
End Sub
Private Sub Bt_右旋转_Click(sender As Object, e As EventArgs) Handles Bt_右旋转.Click
If isopen Then
pdfctrl.RotateRight()
End If
End Sub
Private Sub Bt_首页_Click(sender As Object, e As EventArgs) Handles Bt_首页.Click
If isopen Then
pdfctrl.GotoFirstPage()
Txt_页码.Text = pdfctrl.GetCurrentPageNumber
End If
End Sub
Private Sub Bt_上一页_Click(sender As Object, e As EventArgs) Handles Bt_上一页.Click
If isopen Then
pdfctrl.GotoPreviousPage()
Txt_页码.Text = pdfctrl.GetCurrentPageNumber
End If
End Sub
Private Sub Bt_跳转_Click(sender As Object, e As EventArgs) Handles Bt_跳转.Click
If isopen Then
pdfctrl.GotoPage(Val(Txt_页码.Text))
End If
End Sub
Private Sub Bt_下一页_Click(sender As Object, e As EventArgs) Handles Bt_下一页.Click
If isopen Then
pdfctrl.GotoNextPage()
Txt_页码.Text = pdfctrl.GetCurrentPageNumber
End If
End Sub
Private Sub Bt_末页_Click(sender As Object, e As EventArgs) Handles Bt_末页.Click
If isopen Then
pdfctrl.GotoLastPage()
Txt_页码.Text = pdfctrl.GetCurrentPageNumber
End If
End Sub
End Class
就这样吧!省时简力