微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 iText7 C# 将 Javascript 添加到 PDF 文件

如何解决使用 iText7 C# 将 Javascript 添加到 PDF 文件

我正在尝试使用 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();

Javascript popup

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。