目录
前情提要
接触的事情奇奇怪怪,我学得东西也是奇奇怪怪。
我需要搭建环境测试代码是否能成功操作大型的pdf文件。
环境搭配
踩坑
visual studio code就别想了,这玩意没法下载相关的pdf的依赖库
IntelliJ IDEA也别想,这个不支持C#。
visual studio真是大爷,安装几台的虚拟机,都说不支持当前的windows 10系统。
要说为什么了话,因为这些坑,我自己一个个去趟过去。。。
采用环境
win10的2016企业版
visual studio2022
在visual studio2022中,工具->管理NuGet包->搜索“Free Spire.PDF”->点击安装
安装版本为7.8.9
代码实现
代码思路
PDF文档添加过期时间
- 创建PdfDocument类的对象,并通过PdfDocument.LoadFromFile(string filename)方法加载PDF文档。
- 通过JavaScript语句设置过期时间,过期警告信息并关闭文档等动作。
- 初始化PdfJavaScriptAction类的实例,并通过PdfDocument.AfterOpenAction属性设置PDF打开后执行JS语句命令。
- 最后,通过PdfDocument.SaveToFile(string filename, FileFormat fileFormat)方法保存PDF文档到指定路径。
-
using Spire.Pdf;
-
using Spire.Pdf.Actions;
-
using System.Drawing;
-
-
namespace
SetExpiryDate
-
{
-
class
Program
-
{
-
static void Main(string[] args)
-
{
-
//创建PdfDocument类的对象,并加载PDF文档
-
PdfDocument pdf =
new PdfDocument();
-
pdf.LoadFromFile(
"test.pdf");
-
-
//通过JavaScript设置过期时间,过期警告信息并关闭文档
-
string javaScript =
"var rightNow = new Date();"
-
+
"var endDate = new Date('June 20, 2021 23:59:59');"
-
+
"if(rightNow.getTime() > endDate) {"
-
+
"app.alert('该文档已过期。请联系管理人员获取最新文档!',1);"
-
+
"this.closeDoc(); }";
-
-
//根据JS创建PdfJavaScriptAction
-
PdfJavaScriptAction js =
new PdfJavaScriptAction(javaScript);
-
-
//将PdfJavaScriptAction设置为文档打开后的动作
-
pdf.AfterOpenAction = js;
-
-
//保存文档
-
pdf.SaveToFile(
"SetExpiryDate.pdf", FileFormat.PDF);
-
}
-
}
-
}
相关操作
新建项目,代码导入
制作个word,然后转pdf
将test.pdf导入到项目对应位置
然后点击运行
代码结果
然后回到之前放test.pdf文件的文件夹中,有个叫SetExpiryDate的文件,就是我们操作之后的文件。
双击打开
后期探查
在后期反复实验的时候,我发现pdf文档不能过大,我就直接用200与300多MB的PDF去测试,均以失败告终。
然后去调试,发现是FreeSpire.PDF的问题,它限制了PDF页数不能超过10页。
不过一般论文是可以成功运行的,我有去测试过。
转载:https://blog.csdn.net/m0_58138734/article/details/125853908
查看评论