编辑
2025-09-18
C#
00

目录

环境准备
安装 PdfiumViewer
设计用户界面
实现功能
测试应用程序
其他功能
导航PDF页面
缩放功能
取得文字
总结

在开发应用程序时,有时我们需要在WinForms应用程序中预览PDF文件。本文将详细介绍如何实现这一功能。我们将使用一些开源或第三方库来简化这一过程。

环境准备

在开始之前,请确保你已经安装了以下工具和库:

  • Visual Studio(或其他C#开发工具)
  • .NET Framework 或 .NET Core
  • PdfiumViewer

安装 PdfiumViewer

PdfiumViewer 提供了一个方便的方法在WinForms应用程序中展示PDF文件。你可以通过以下命令安装这个库:

PowerShell
Install-Package PdfiumViewer.Core

或者在 Visual Studio 的NuGet包管理器中搜索PdfiumViewer并安装。

image.png

不要忘记了这个PdfiumViewer.Native.x86_64.v8-xfa

image.png

设计用户界面

我们需要为用户提供一个按钮来打开PDF文件,以及一个控件来显示PDF文件。

实现功能

接下来,我们将为按钮配置点击事件,以便选择和加载PDF文件。

  1. Form1.cs 中添加如下代码:
C#
using System; using System.Windows.Forms; using PdfiumViewer; namespace PdfPreviewApp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void buttonOpenPdf_Click(object sender, EventArgs e) { openFileDialog.Filter = "PDF Files|*.pdf"; openFileDialog.Title = "Select a PDF File"; if (openFileDialog.ShowDialog() == DialogResult.OK) { try { var pdfDocument = PdfDocument.Load(openFileDialog.FileName); pdfViewer.Document = pdfDocument; } catch (Exception ex) { MessageBox.Show("Error loading PDF: " + ex.Message); } } } } }

测试应用程序

  1. 启动你的应用程序。
  2. 点击“Open PDF”按钮。
  3. 在文件选择对话框中选择一个PDF文件。
  4. 预览PDF文件应出现于主窗体中。

image.png

其他功能

导航PDF页面

你可以通过添加一些按钮来实现导航(例如下一页、上一页等),并将它们与 pdfViewer 的方法绑定。例如:

C#
private void btnNext_Click(object sender, EventArgs e) { if (pdfViewer1.Renderer.Page < pdfViewer1.Document.PageCount - 1) { pdfViewer1.Renderer.Page++; } } private void btnPre_Click(object sender, EventArgs e) { if (pdfViewer1.Renderer.Page > 0) { pdfViewer1.Renderer.Page--; } }

缩放功能

你还可以添加缩放功能,例如缩放为合适窗口大小或者实际大小:

C#
private void btnZoomIn_Click(object sender, EventArgs e) { pdfViewer1.Renderer.ZoomIn(); } private void btnZoomOut_Click(object sender, EventArgs e) { pdfViewer1.Renderer.ZoomOut(); }

image.png

取得文字

C#
var txt= pdfDocument.GetPdfText(1);

总结

通过本文,我们学习了如何在WinForms应用程序中使用 PdfiumViewer 库预览 PDF 文件。使用这个库,我们可以轻松地加载和显示 PDF 文档,并实现基本的导航和缩放功能。希望这些示例和步骤能帮助你在自己的应用程序中实现PDF预览功能。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!