向 pdf 文档添加交互元素,如导航按钮、弹窗提示以及文件打开按钮,可以显著增强用户的参与度和文档的功能性,同时使得文档更加专业。借助 spire.pdf for java 库,开发者能够轻松地将这些互动功能整合到 pdf 文档中,从而创造出既多样化又用户友好的文档内容。本文将介绍如何使用 spire.pdf for java 通过 java 代码在 pdf 文档中添加各种动作。
- 如何使用 spire.pdf for java 向 pdf 添加动作
- 使用 java 在 pdf 中创建文档内跳转动作
- 使用 java 在 pdf 中创建文件打开动作
- 使用 java 在 pdf 中创建音频播放动作
- 使用 java 在 pdf 中创建 javascript 动作
安装 spire.pdf for java
首先,您需要在 java 程序中添加 spire.pdf.jar 文件作为依赖项。jar 文件可以从此链接下载。如果您使用 maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而在应用程序中导入 jar 文件。
com.e-iceblue
e-iceblue
https://repo.e-iceblue.cn/repository/maven-public/
e-iceblue
spire.pdf
11.2.3
如何使用 spire.pdf for java 向 pdf 添加动作
spire.pdf for java 为开发者提供了向 pdf 文档添加各种动作的能力,例如文档内跳转动作、文件打开动作、音频播放动作和 javascript 执行动作。以下是常用动作对应的类及其描述的表格:
类名 | 描述 |
pdfgotoaction | 表示跳转到当前文档中的特定位置的动作 |
pdflaunchaction | 表示打开文件的动作 |
pdfjavascriptaction | 表示执行 javascript 代码的动作 |
pdfsoundaction | 表示播放音频的动作 |
有关更多动作类及其描述,请参考 spire.pdf for java 动作相关 api 文档。
向 pdf 文档添加动作主要通过以下两种方式:
1、使用注释添加动作
此方法通过创建一个动作并将其链接到页面上的注释来实现。当用户点击注释时,动作将被触发。
步骤:
- 创建 pdfdocument 实例,并使用 pdfdocument.loadfromfile() 方法加载 pdf 文档。
- 创建动作实例并设置其属性。
- (可选)绘制提示文本或图像以指示动作的位置。
- 使用动作实例创建 pdfactionannotation 实例,并指定其在页面上的位置。
- 使用 pdfpagebase.getannotations.add() 方法将动作注释添加到页面。
- 使用 pdfdocument.savetofile() 方法保存文档。
2、将动作分配到文档事件
动作还可以分配到文档级别的事件(例如打开、关闭或打印文档)。当指定的事件发生时,与其绑定的动作会自动触发。
步骤:
- 创建 pdfdocument 实例,并使用 pdfdocument.loadfromfile() 方法加载 pdf 文档。
- 创建动作实例并设置其属性。
- 使用以下方法将动作分配到文档事件:
- pdfdocument.setafteropenaction()
- pdfdocument.setafterprintaction()
- pdfdocument.setaftersaveaction()
- pdfdocument.setbeforecloseaction()
- pdfdocument.setbeforeprintaction()
- pdfdocument.setbeforesaveaction()
- 使用 pdfdocument.savetofile() 方法保存文档。
使用 java 在 pdf 中创建文档内跳转动作
开发者可以使用 pdfgotoaction 类在 pdf 文档中创建导航动作,让用户跳转到文档中的特定位置。以下是一个 java 代码示例,演示如何在 pdf 文档中创建导航动作。
- java
import com.spire.pdf.pdfdocument;
import com.spire.pdf.actions.pdfgotoaction;
import com.spire.pdf.annotations.pdfactionannotation;
import com.spire.pdf.general.pdfdestination;
import com.spire.pdf.graphics.pdfbrushes;
import com.spire.pdf.graphics.pdfstringformat;
import com.spire.pdf.graphics.pdftextalignment;
import com.spire.pdf.graphics.pdftruetypefont;
import java.awt.*;
import java.awt.geom.point2d;
import java.awt.geom.rectangle2d;
public class addnavigationactionpdf {
public static void main(string[] args) {
// 创建一个 pdfdocument 实例
pdfdocument pdf = new pdfdocument();
// 加载 pdf 文件
pdf.loadfromfile("示例.pdf");
// 创建一个 pdfdestination 对象
pdfdestination destination = new pdfdestination(2, new point2d.float(0, 0), 0.8f);
// 使用 pdfdestination 对象创建一个 pdfgotoaction 对象
pdfgotoaction gotoaction = new pdfgotoaction(destination);
// 在第一页上绘制一个矩形和提示文本
rectangle2d rect = new rectangle2d.float(20, 35, 100, 15);
pdf.getpages().get(0).getcanvas().drawrectangle(pdfbrushes.getlightgray(), rect);
pdftruetypefont font = new pdftruetypefont(new font("harmonyos sans sc", font.bold, 12), true);
pdfstringformat format = new pdfstringformat(pdftextalignment.center);
pdf.getpages().get(0).getcanvas().drawstring("点击跳转到第2页", font, pdfbrushes.getblack(), rect, format);
// 使用 pdfgotoaction 对象创建一个 pdfactionannotation 对象
pdfactionannotation actionannotation = new pdfactionannotation(rect, gotoaction);
// 将注释添加到第一页
pdf.getpages().get(0).getannotations().add(actionannotation);
// 保存文档
pdf.savetofile("output/pdf文档内跳转动作.pdf");
pdf.close();
}
}
使用 java 在 pdf 中创建文件打开动作
开发者可以使用 pdflaunchaction 类在 pdf 文档中创建文件打开动作。以下是一个 java 代码示例,展示如何向 pdf 文档添加文件打开动作。
- java
import com.spire.pdf.pdfdocument;
import com.spire.pdf.actions.pdffilepathtype;
import com.spire.pdf.actions.pdflaunchaction;
import com.spire.pdf.annotations.pdfactionannotation;
import com.spire.pdf.graphics.pdfbrushes;
import com.spire.pdf.graphics.pdfstringformat;
import com.spire.pdf.graphics.pdftextalignment;
import com.spire.pdf.graphics.pdftruetypefont;
import java.awt.*;
import java.awt.geom.rectangle2d;
public class addfileopenactionpdf {
public static void main(string[] args) {
// 创建一个 pdfdocument 实例
pdfdocument pdf = new pdfdocument();
// 加载 pdf 文件
pdf.loadfromfile("示例.pdf");
// 创建一个 pdflaunchaction 对象并设置文件路径
pdflaunchaction launchaction = new pdflaunchaction("c:/示例.pdf", pdffilepathtype.absolute);
// 在第一页上绘制一个矩形和提示文本
rectangle2d rect = new rectangle2d.float(20, 35, 100, 15);
pdf.getpages().get(0).getcanvas().drawrectangle(pdfbrushes.getlightgray(), rect);
pdftruetypefont font = new pdftruetypefont(new font("harmonyos sans sc", font.bold, 12), true);
pdfstringformat format = new pdfstringformat(pdftextalignment.center);
pdf.getpages().get(0).getcanvas().drawstring("点击打开文件", font, pdfbrushes.getblack(), rect, format);
// 使用 pdflaunchaction 对象创建一个 pdfactionannotation 对象
pdfactionannotation actionannotation = new pdfactionannotation(rect, launchaction);
// 将注释添加到第一页
pdf.getpages().get(0).getannotations().add(actionannotation);
// 保存文档
pdf.savetofile("output/pdf文件打开动作.pdf");
pdf.close();
}
}
使用 java 在 pdf 中创建音频播放动作
pdfsoundaction 类可用于在 pdf 文档中处理音频播放,从而实现背景音乐、语音提醒等功能。以下是一个 java 代码示例,演示如何在 pdf 文档中创建音频动作。
- java
import com.spire.pdf.pdfdocument;
import com.spire.pdf.actions.pdfsoundaction;
import com.spire.pdf.annotations.pdfactionannotation;
import com.spire.pdf.general.pdfsoundchannels;
import com.spire.pdf.general.pdfsoundencoding;
import com.spire.pdf.graphics.pdfimage;
import java.awt.geom.rectangle2d;
public class addsoundactionpdf {
public static void main(string[] args) {
// 创建一个 pdfdocument 实例
pdfdocument pdf = new pdfdocument();
// 加载 pdf 文件
pdf.loadfromfile("示例.pdf");
// 创建一个 pdfsoundaction 对象并设置音频属性
pdfsoundaction soundaction = new pdfsoundaction("wave.wav");
soundaction.setrepeat(false); // 禁用循环播放
soundaction.getsound().setbits(16); // 设置音频位数
soundaction.getsound().setchannels(pdfsoundchannels.stereo); // 设置立体声通道
soundaction.getsound().setencoding(pdfsoundencoding.signed); // 设置音频编码
soundaction.getsound().setrate(44100); // 设置采样率
// 在第一页上绘制声音图标
pdfimage image = pdfimage.fromfile("sound.jpg");
pdf.getpages().get(0).getcanvas().drawimage(image, new rectangle2d.float(40, 40, image.getwidth(), image.getheight()));
// 使用 pdfsoundaction 对象在声音图标的位置创建一个 pdfactionannotation 对象
rectangle2d rect = new rectangle2d.float(40, 40, image.getwidth(), image.getheight());
pdfactionannotation actionannotation = new pdfactionannotation(rect, soundaction);
// 将注释添加到第一页
pdf.getpages().get(0).getannotations().add(actionannotation);
// 保存文档
pdf.savetofile("output/pdf音频播放动作.pdf");
pdf.close();
}
}
使用 java 在 pdf 中创建 javascript 动作
pdfjavascriptaction 类允许开发者在 pdf 文档中创建 javascript 动作,从而实现动态表单的创建、用户输入的验证以及任务的自动化等功能。以下是一个 java 代码示例,展示如何向 pdf 文档添加 javascript 动作。
- java
import com.spire.pdf.pdfdocument;
import com.spire.pdf.actions.pdfjavascriptaction;
public class addjavascriptactionpdf {
public static void main(string[] args) {
// 创建一个 pdfdocument 实例
pdfdocument pdf = new pdfdocument();
// 加载 pdf 文件
pdf.loadfromfile("示例.pdf");
// 定义 javascript 代码,并使用它创建一个 pdfjavascriptaction 实例
string jscode = """
app.alert({
cmsg: '欢迎阅读销售数据分析报告!\\n\\n这份报告包含了公司在过去一年内的销售数据,包括销售额、产品类别、销售地区和销售人员等信息。希望这份报告能帮助您了解公司的销售情况,识别销售趋势并制定相应的决策。',
nicon: 3,
ctitle: '文档介绍'
});
""";
pdfjavascriptaction javascriptaction = new pdfjavascriptaction(jscode);
// 设置 javascript 动作为 pdf 文件打开后执行的动作
pdf.setafteropenaction(javascriptaction);
// 保存文档
pdf.savetofile("output/pdf javascript动作.pdf");
pdf.close();
}
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。