问题描述
我正在尝试使用 iText7 库和 C# 将 javascript 添加到我的 PDF 文件
目前,这是我的代码......到目前为止还没有完成
public FileResult Download(string id)
{
var fileSelect = _context.FileStores.SingleOrDefault(c => c.File_Id == id);
string base64string = Convert.ToBase64String(fileSelect.File_Content,fileSelect.File_Content.Length);
using (MemoryStream stream = new System.IO.MemoryStream())
{
MemoryStream memory = new MemoryStream(fileSelect.File_Content);
BinaryReader BRreader = new BinaryReader(memory);
StringBuilder text = new StringBuilder();
PdfReader reader = new PdfReader(memory);
//FileStream output = new FileStream(@"Manual.pdf",FileMode.Create);
PdfDocument Pdfdoc = new PdfDocument(reader);
Document doc = new Document(Pdfdoc);
PdfAction action = PdfAction.CreateJavaScript("var rightNow = new Date(); " +
"var endDate = new Date('May 03,2021 10:00:00');" +
"if(rightNow.getTime() > endDate){" +
"app.alert('This Document has expired,please contact us for a new one');" +
"this.closeDoc();}");
reader.Close();
return File(memory,"application/pdf","ExportData.pdf");
}
我想将此 javascript 添加到我的 PDF 中,并在添加完 Javascript 后下载文件。有没有人知道如何将 Javascript 添加到 pdf?谢谢
解决方法
您可以将 Javascript 代码段添加为文档级别 OpenAction,以在打开文档时执行:
PdfReader reader = new PdfReader("input.pdf");
PdfWriter writer = new PdfWriter("output.pdf");
PdfDocument Pdfdoc = new PdfDocument(reader,writer);
PdfAction action = PdfAction.CreateJavaScript(
"var rightNow = new Date(); " +
"var endDate = new Date('May 03,2021 10:00:00');" +
"if(rightNow.getTime() > endDate){" +
"app.alert('This Document has expired,please contact us for a new one');" +
"this.closeDoc();}"
);
Pdfdoc.getCatalog().SetOpenAction(action);
Pdfdoc.Close();