增强 PDF 文档的交互性对于优化文档管理和改善用户体验至关重要。通过在 .NET 框架中使用 C# 创建 PDF 动作,开发者可以为 PDF 文档添加各种动态元素,比如文件链接、导航按钮、网页链接以及音频等。这些元素不仅能够实现诸如跳转至特定页面、打开目标网站、访问相关文件或播放音乐等功能,还能显著提高文档的实用性与用户满意度。本文将介绍如何使用 Spire.PDF for .NET 库,通过 C# 在 PDF 文档中创建动作。
- 用 C# 向 PDF 添加动作的基本操作步骤
- 用 C# 在 PDF 中创建导航动作
- 用 C# 在 PDF 中创建文件打开动作
- 用 C# 在 PDF 中创建音频动作
- 用 C# 在 PDF 中创建网页链接动作
- 用 C# 在 PDF 中创建 JavaScript 动作
安装 Spire.PDF for .NET
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDF
用 C# 向 PDF 添加动作的操作步骤
通过 C# 向 PDF 添加动作可集成多种交互元素,从而增强用户体验,例如导航按钮、文件链接或音效触发器。借助 Spire.PDF for .NET 库,开发者可以利用关键类和方法创建各种动作。以下是使用 Spire.PDF for .NET 添加 PDF 动作的一般流程:
- 创建 PdfDocument 类的实例,并通过 PdfDocument.LoadFromFile() 方法加载 PDF 文档。
- 使用 PdfDocument.Pages[] 属性获取页面。
- 创建表示动作的类的实例,并设置其属性。
- 使用动作在页面的矩形区域内创建 PdfActionAnnotation 类的实例。
- 为动作添加提示文字(可选)。
- 使用 PdfPageBase.Annotations.Add() 方法将动作注释添加到页面。
- 使用 PdfDocument.SaveToFile() 方法保存生成的文档。
用 C# 在 PDF 中创建导航动作
通过 PdfGoToAction 类可以创建导航动作,允许在文档内导航到指定目标位置。为实现这一功能,开发者可以创建一个 PdfDestination 对象,并将其作为参数传递给 PdfGoToAction 实例,然后将其添加到 PDF 文档中。以下是在 PDF 中添加导航动作的代码示例:
- C#
using Spire.Pdf;
using Spire.Pdf.Actions;
using Spire.Pdf.Annotations;
using Spire.Pdf.General;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace AddNavigationButtonPDF
{
class Program
{
static void Main(string[] args)
{
// 创建 PdfDocument 的实例
PdfDocument pdf = new PdfDocument();
// 加载 PDF 文件
pdf.LoadFromFile("示例.pdf");
// 创建 PdfDestination 实例并设置目标位置
PdfDestination destination = new PdfDestination(pdf.Pages[1]);
destination.Location = new PointF(0, 0);
destination.Mode = PdfDestinationMode.Location;
destination.Zoom = 0.8f;
// 基于目标位置创建 PdfGoToAction 实例
PdfGoToAction action = new PdfGoToAction(destination);
// 创建矩形并绘制到第一页
RectangleF rect = new RectangleF(70, pdf.PageSettings.Size.Height - 120, 140, 20);
pdf.Pages[0].Canvas.DrawRectangle(PdfBrushes.LightGray, rect);
// 在矩形中绘制文本
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("HarmonyOS Sans SC", 14f, FontStyle.Bold), true);
PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center);
pdf.Pages[0].Canvas.DrawString("跳转到第2页", font, PdfBrushes.Green, rect, stringFormat);
// 基于矩形和动作创建 PdfActionAnnotation 实例
PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, action);
// 将动作注释添加到第一页
pdf.Pages[0].Annotations.Add(actionAnnotation);
// 保存文档
pdf.SaveToFile("output/导航动作.pdf");
pdf.Close();
}
}
}
用 C# 在 PDF 中创建文件打开动作
PdfLaunchAction 类用于创建 PDF 中的文件打开动作,允许用户通过点击 PDF 页面上的按钮等方式时打开指定文件。在实现此动作时,开发者可以设置文件路径(绝对路径或相对路径),并决定文件是否在新窗口中打开。以下是为 PDF 文档添加文件打开动作的代码示例:
- C#
using Spire.Pdf;
using Spire.Pdf.Actions;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace AddFileLaunchActionPDF
{
class Program
{
static void Main(string[] args)
{
// 创建 PdfDocument 的实例
PdfDocument pdf = new PdfDocument();
// 加载 PDF 文件
pdf.LoadFromFile("示例.pdf");
// 获取第一页
PdfPageBase page = pdf.Pages[0];
// 在页面上绘制矩形
RectangleF rect = new RectangleF(50, 50, 180, 20);
page.Canvas.DrawRectangle(PdfBrushes.LightGray, rect);
// 在矩形内绘制文本
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("HarmonyOS Sans SC", 14f, FontStyle.Bold), true);
PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center);
pdf.Pages[0].Canvas.DrawString("点击打开 示例2.pdf", font, PdfBrushes.Green, rect, stringFormat);
// 创建 PdfLaunchAction 实例
PdfLaunchAction action = new PdfLaunchAction("C:/示例2.pdf", PdfFilePathType.Absolute);
// 设置启动模式为在新窗口中打开
action.IsNewWindow = true;
// 基于矩形和启动动作创建 PdfActionAnnotation 实例
PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, action);
// 将动作注释添加到第一页
page.Annotations.Add(actionAnnotation);
// 保存文档
pdf.SaveToFile("output/文件打开动作.pdf");
pdf.Close();
}
}
}
用 C# 在 PDF 中创建音频动作
开发者可以通过 PdfSoundAction 类将音频嵌入到 PDF 文档中,使音频在响应特定触发事件时播放,例如打开文件或点击按钮。以下是在 PDF 文档中创建音效动作的代码示例:
- C#
using Spire.Pdf;
using Spire.Pdf.Actions;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using Spire.Pdf.General;
using System.Drawing;
namespace AddSoundActionPDF
{
class Program
{
static void Main(string[] args)
{
// 创建 PdfDocument 的实例
PdfDocument pdf = new PdfDocument();
// 加载 PDF 文件
pdf.LoadFromFile("示例.pdf");
// 获取第一页
PdfPageBase page = pdf.Pages[0];
// 在页面上绘制提示图像
PdfImage image = PdfImage.FromFile("Sound.png");
page.Canvas.DrawImage(image, new PointF(30, 30));
// 创建 PdfSoundAction 实例并设置其属性
PdfSoundAction action = new PdfSoundAction("Wave.wav");
// 设置声音参数
action.Sound.Bits = 16;
action.Sound.Channels = PdfSoundChannels.Stereo;
action.Sound.Encoding = PdfSoundEncoding.Signed;
action.Sound.Rate = 44100;
// 设置播放选项
action.Volume = 0;
action.Repeat = true;
action.Mix = true;
action.Synchronous = true;
// 基于提示图像的位置创建 PdfActionAnnotation 实例,用于声音动作
RectangleF rect = new RectangleF(30, 30, image.Width, image.Height);
PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, action);
// 将动作注释添加到第一页
page.Annotations.Add(actionAnnotation);
// 设置在文档打开后播放声音动作
pdf.AfterOpenAction = action;
// 保存文档
pdf.SaveToFile("output/声音动作.pdf");
pdf.Close();
}
}
}
用 C# 在 PDF 中创建网页链接动作
开发者可以使用 PdfUriAction 类在 PDF 文档中创建网页链接动作,允许用户在执行特定操作(如点击按钮)时打开一个网页链接。以下是在 PDF 文档中创建网页链接动作的代码示例:
- C#
using Spire.Pdf;
using Spire.Pdf.Actions;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace AddSoundActionPDF
{
class Program
{
static void Main(string[] args)
{
// 创建 PdfDocument 的实例
PdfDocument pdf = new PdfDocument();
// 加载 PDF 文件
pdf.LoadFromFile("示例.pdf");
// 获取第一页
PdfPageBase page = pdf.Pages[0];
// 在页面上绘制矩形
RectangleF rect = new RectangleF(30, 30, 120, 20);
page.Canvas.DrawRectangle(PdfBrushes.LightGray, rect);
// 在矩形内绘制文本
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("HarmonyOS Sans SC", 14f, FontStyle.Bold), true);
PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center);
page.Canvas.DrawString("点击跳转至百度搜索", font, PdfBrushes.LightSkyBlue, rect);
// 创建 PdfUriAction 实例并设置其属性
PdfUriAction action = new PdfUriAction();
action.Uri = "https://www.baidu.com/";
// 使用网页链接动作和矩形创建 PdfActionAnnotation 实例
PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, action);
// 将动作注释添加到第一页
page.Annotations.Add(actionAnnotation);
// 保存文档
pdf.SaveToFile("output/网页链接动作.pdf");
pdf.Close();
}
}
}
用 C# 在 PDF 中创建 JavaScript 动作
PdfJavaScriptAction 代表 PDF 中的 JavaScript 动作,它可以帮助开发人员创建复杂的交互,如表单验证、数据计算和自定义用户界面。下面是用 C# 在 PDF 文档中添加简单的 JavaScript 动作的代码示例:
- C#
using Spire.Pdf;
using Spire.Pdf.Actions;
namespace AddJavaScriptActionPDF
{
class Program
{
static void Main(string[] args)
{
// 创建PdfDocument实例
PdfDocument pdf = new PdfDocument();
// 载入PDF文件
pdf.LoadFromFile("示例.pdf");
// 定义JavaScript代码
var jsCode =
"app.alert({" +
" cMsg: '欢迎阅读《火星:太阳系中的红色行星》。\\n\\n本文将详细介绍火星的基本信息、探索历史及其重要里程碑。', " +
" nIcon: 3, " +
" cTitle: '文档介绍'" +
"});";
// 使用JavaScript代码作为参数创建PdfJavaScriptAction实例
PdfJavaScriptAction action = new PdfJavaScriptAction(jsCode);
// 将创建的JavaScript动作设置为文档打开时执行
pdf.AfterOpenAction = action;
// 保存文档
pdf.SaveToFile("output/PDFJavaScript动作.pdf");
pdf.Close();
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。