前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VB.NET winform PDF阅读器

VB.NET winform PDF阅读器

作者头像
一线编程
发布2021-04-13 15:07:27
9890
发布2021-04-13 15:07:27
举报
文章被收录于专栏:办公魔盒办公魔盒

PDF阅读器控件,这款控件是基于MoonPdfLib.dll的自定义控件,目前有个小bug就是pdf需要使用适合宽度模式才能使用鼠标,往下滚到下一页.最近比较忙,就没时间搞了,希望有空闲的网友修复一下

具体内容见附件

代码语言:javascript
复制
https://vbee.lanzous.com/i1wyIndviyj
代码语言:javascript
复制
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

就这样吧!省时简力

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 办公魔盒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档